Avatar billede chriz7913 Nybegynder
26. august 2008 - 11:08 Der er 18 kommentarer og
1 løsning

Login til windows live messenger

Hej Eksperter :D
Har set rundt omkring at der er flere hjemmesider (arto.dk, facebook.com, privatfesten.dk, netlog.com m.m.) der bruger den funktion at brugerne kan logge på deres msn fra hjemmesiden og finde de venner fra deres msn der også har en bruger på pågældende hjemmeside og invitere dem der ikke har med en mail. Hvor & hvordan kan man få en sådan funktion på sin hjemmeside?
Og hvordan skal min hjemmeside sættes op sikkerhedsmæssig?
På forhånd tak :)
Avatar billede w13 Novice
26. august 2008 - 12:03 #1
Dér skal du nok kontakte MSN og høre dem om en aftale. Formodentlig betaler de nævnte hjemmesider for et "abonnement" på denne service til MSN.
Avatar billede jakobdo Ekspert
26. august 2008 - 12:04 #2
Avatar billede jakobdo Ekspert
26. august 2008 - 12:04 #3
Jeg tror ikke det er abo.
Jeg tror de logger ind som brugeren og henter info den vej.
Avatar billede cronick Nybegynder
26. august 2008 - 12:27 #4
Jakob har ret. De behøver ikke at have en aftale med MSN, for at hente information for en given adresse. Hvorvidt de dog af lovmæssige krav, eller lign. har en sådan aftale i hus, ved jeg ikke. Men det er helt klart værd at undersøge :-)
Avatar billede cronick Nybegynder
26. august 2008 - 12:28 #5
Nå, ja. Hvad sker det forresten lige med kommentarene til MSN-classen, som jakobdo henviste til?
Avatar billede jakobdo Ekspert
26. august 2008 - 12:36 #6
Dejlig læsbare... :o)
Avatar billede w13 Novice
26. august 2008 - 14:35 #7
En skam, man ikke kan kinesisk.
Avatar billede jakobdo Ekspert
26. august 2008 - 14:50 #8
Jeg har selv forsøgt mig lidt frem her:

<?php

$host = 'messenger.hotmail.com';
$path = '/';
$port = '1863';

class MSN{
    private $buffer = '';
    private $socket;
    private $socketSSL;
    private $username;
    private $password;
    private $number = 0;
    private $host = 'messenger.hotmail.com';
    private $port = 1863;
    private $path = '/rdr/pprdr.asp';
    private $auth;
   
    public function __construct($username,$password)
    {
        $this->username = $username;
        $this->password = $password;
        $this->connect();
        $this->communicate(1);
        $this->connect();
        $this->communicate(2);
        $this->connect(true);
        $this->nexus();
        $this->connect(true);
        $this->login();
        $this->communicate(3);
    }
   
    private function connect($ssl=false)
    {
        if($ssl)
        {
            if(isset($this->socketSSL))
            {
                fclose($this->socketSSL);
            }
           
            $this->socketSSL = fsockopen('ssl://' . $this->host, $this->port, $errno, $errstr, 30);
            if (!$this->socket)
            {
                return false;
            }
        }
        else
        {
            if(isset($this->socket))
            {
                fclose($this->socket);
            }
           
            $this->socket = fsockopen('tcp://' . $this->host, $this->port, $errno, $errstr, 30);
            if (!$this->socket)
            {
                return false;
            }
        }
    }
   
    private function communicate($sequence)
    {
        switch($sequence)
        {
            case 1:
            case 2:
                $this->send('VER '.++$this->number.' MSNP8 CVR0');
                $this->send('CVR '.++$this->number.' 0x0409 win 4.10 i386 MSNMSGR 5.0.0544 MSMSGS '.$this->username.'@hotmail.com');
                $this->send('USR '.++$this->number.' TWN I '.$this->username.'@hotmail.com');
                break;
            case 3:
                $this->send('USR '.++$this->number.' TWN S t='.$this->auth);
                break;
        }
    }
   
    private function send($command,$ssl=false)
    {
        echo $command . "\r\n";
        if($ssl)
        {
            fwrite($this->socketSSL,$command . "\r\n");
        }
        else
        {
            fwrite($this->socket,$command . "\r\n");
        }
        $this->recv($ssl);
    }
   
    private function recv($ssl=false)
    {
        $this->buffer='';
        if($ssl)
        {
            while(!feof($this->socketSSL))
            {
                $this->buffer .= fread($this->socketSSL,4096);
                if(preg_match("/\r\n/",$this->buffer))
                {
                    break;
                }
            }
        }
        else
        {
            while(!feof($this->socket))
            {
                $this->buffer .= fread($this->socket,4096);
                if(preg_match("/\r\n/",$this->buffer))
                {
                    break;
                }
            }
           
            echo $this->buffer;
            flush();
        }
        $this->parse();
    }
   
    private function parse()
    {
        switch($this->number)
        {
            case 3:
                if(preg_match('/\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}/', $this->buffer, $match))
                {
                    $this->host = $match[0];
                }
                break;
            case 6:
                if(preg_match('%DALogin=(.+?)/(.+?),%', $this->buffer, $match))
                {
                    $this->host = $match[1];
                    $this->path = $match[2];
                    $this->port = 443;
                }
                elseif(preg_match('/tpf=(.+?)\\r\\n/', $this->buffer, $match))
                {
                    $this->host = 'nexus.passport.com';
                    $this->port = 443;
                    $this->auth = $match[1];
                }
                elseif(preg_match('/\\\'t=(.+)\\\'/', $this->buffer, $match))
                {
                    $this->auth = $match[1];
                }
                break;
        }
    }
   
    private function nexus()
    {
        $this->send('GET '.$this->path.' HTTP/1.0'."\r\n",true);
    }
   
    private function login()
    {
        $this->send('GET /'.$this->path.' HTTP/1.1'."\r\n".'Authorization: Passport1.4 OrgVerb=GET,OrgURL=http%3A%2F%2Fmessenger%2Emsn%2Ecom,sign-in='.$this->username.'%40hotmail.com,pwd='.$this->password.',lc=1033,id=507,tw=40,fs=1,ru=http%3A%2F%2Fmessenger%2Emsn%2Ecom,ct=1062764229,kpp=1,kv=5,ver=2.1.0173.1,tpf='.$this->auth."\r\n".'Host: '.$this->host."\r\n",true);
    }
}

echo '<pre>';
$myMSN = new MSN('BRUGERNAVN','KODEORD');
echo '</pre>';

/*
http://www.hypothetic.org/docs/msn/notification/authentication-example.php
http://www.hypothetic.org/docs/msn/notification/example_session.php
*/

?>
Avatar billede chriz7913 Nybegynder
26. august 2008 - 22:52 #9
Tak fordidu prøver jakobdo
Men når jeg prøver dit eksempel, får jeg fejl http://avaz.dk/msn_fail.JPG
Er der noget jeg skal ændre/indsætte? :)
Avatar billede jakobdo Ekspert
26. august 2008 - 22:58 #10
Din server/webhotel ser ud til ikke at understøtte ssl "opkald" ud af "huset". :o)
Avatar billede chriz7913 Nybegynder
27. august 2008 - 07:39 #11
Har afprøvet den på lokalhost, ville det hjælpe hvis jeg lagde den op på avaz.dk og afprøvede den der?:)
Avatar billede jakobdo Ekspert
27. august 2008 - 08:00 #12
Du kan jo give det et forsøg! :o)
Avatar billede chriz7913 Nybegynder
27. august 2008 - 09:52 #13
Har lagt det op her www.avaz.dk/msn.php og det virker stadig ikke, er det webhotellet? :/
Avatar billede jakobdo Ekspert
27. august 2008 - 10:05 #14
Så kan du ikke forbinde ud på denne : Warning:  fsockopen() [function.fsockopen]: unable to connect to tcp://messenger.hotmail.com:1863 (Connection timed out)

Så du er kommet noget videre, men ikke helt. :o)
Avatar billede chriz7913 Nybegynder
30. august 2008 - 20:02 #15
Hvordan kommer jeg så videre? (:
Avatar billede jakobdo Ekspert
30. august 2008 - 21:33 #16
Får åbnet for den port.
Ellers kommer du jo ikke videre...
Andre script skal samme vej.
Avatar billede chriz7913 Nybegynder
26. september 2008 - 19:49 #17
Okay, jakobdo; er kommet lidt videre
Har download et script som jeg har sat op på min localhost, når jeg kører det udskriver den følgende:
============
>>> VER 1 MSNP9 CVR0
<<< VER 1 MSNP9
>>> CVR 2 0x0409 win 4.10 i386 MSNMSGR 7.0.0816 MSMSGS MinEmail@hotmail.com
<<< CVR 2 7.0.0820 7.0.0820 7.0.0820 http://msgruser.dlservice.microsoft.com/download/9/7/6/976085F9-D0F8-4D96-9208-FC1B461CD3D7/Install_MSN_Messenger_DL.exe http://messenger.msn.com
>>> USR 3 TWN I MinEmail@hotmail.com
<<< XFR 3 NS 207.46.110.21:1863 0 65.54.239.21:1863
>>> VER 1 MSNP9 CVR0
<<< VER 1 MSNP9
>>> CVR 2 0x0409 win 4.10 i386 MSNMSGR 7.0.0816 MSMSGS MinEmail@hotmail.com
<<< CVR 2 7.0.0820 7.0.0820 7.0.0820 http://msgruser.dlservice.microsoft.com/download/9/7/6/976085F9-D0F8-4D96-9208-FC1B461CD3D7/Install_MSN_Messenger_DL.exe http://messenger.msn.com
>>> USR 3 TWN I MinEmail@hotmail.com
<<< USR 3 TWN S ct=1222451108,rver=5.5.4177.0,wp=FS_40SEC_0_COMPACT,lc=1033,id=507,ru=http:%2F%2Fmessenger.msn.com,tw=0,kpp=1,kv=4,ver=2.1.6000.1,rn=1lgjBfIL,tpf=b0735e3a873dfb5e75054465196398e0

Fatal error: Call to undefined function curl_init() in W:\www\3\Msn\msnp9.class.php on line 257
============
Jeg har ændret MinEmail@hotmail.com til min rigtige email, men hvad kan jeg gøre med Fatal error: Call to undefined function curl_init() in W:\www\3\Msn\msnp9.class.php on line 257? :)
Avatar billede jakobdo Ekspert
26. september 2008 - 19:55 #18
Det kræver din server har curl installeret.
Og det tyder det så på du ikke har.
Avatar billede chriz7913 Nybegynder
22. november 2010 - 15:31 #19
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester