PHP to Yahoo Messenger

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    PHP to Yahoo Messenger

    This class can be used to send an instant message to Yahoo Messenger user.

    It can send HTTP requests to the Yahoo Messenger Web server to authenticate as a given user and then sends a message to another given user.

    php2ym.php
    Code:
    /** 
    * PHP to Yahoo Messenger 
    * @version 1.0 
    * @author Halim PN <halimpn@gmail.com> 
    * @copyright (c) 2010 http://www.jogjashop.com 
    * @license http://www.gnu.org/licenses/gpl-3.0.txt 
    **/ 
    
    class ymMobile 
        { 
        function ymLogin($ymdata) 
            { 
            //pisahkan user dan password 
            $ymdata = explode('l', $ymdata); 
            if(count($ymdata)<>2) die("Data ID YM/Password wajib diisikan"); 
    
            //lakukan proses dekode 
            $this->id_ym    = $this->dekode($ymdata[0]); 
            $this->password_ym = $this->dekode($ymdata[1]); 
    
            $xml = $this->phpSend('http://us.m.yahoo.com/w/bp-messenger', '', '', getcwd() . '/cookies_yahoo_messenger.cookie'); 
    
            $xmlDoc = new DOMDocument(); 
            @$xmlDoc->loadHTML($xml); 
    
            $login_URL = $xmlDoc->getElementsByTagName("form")->item(0)->getAttribute("action"); 
    
            foreach ($xmlDoc->getElementsByTagName("input") as $input)  
                { 
                if($input->getAttribute("name") == "_done")  
                    { 
                    $_done = $input->getAttribute("value"); 
                    } 
                if($input->getAttribute("name") == "_ts")  
                    { 
                    $_ts = $input->getAttribute("value"); 
                    } 
                if($input->getAttribute("name") == "_crumb")  
                    { 
                    $_crumb = $input->getAttribute("value"); 
                    } 
                } 
    
            // lakukan proses login 
            $this->curlData = $this->phpSend($login_URL, "_authurl=auth&_done=" . $_done . "&_sig=&_src=&_ts=" . $_ts . "&_crumb=" . $_crumb . "&_pc=&_send_userhash=0&_partner_ts=&id=" . $this->id_ym . "&password=" . $this->password_ym . "&__submit=Sign+in", getcwd() . '/cookies_yahoo_messenger.cookie', getcwd() . '/cookies_yahoo_messenger.cookie'); 
    
            $error = strpos($this->curlData, 'Invalid ID/Password'); 
            if($error>0) die("ID Yahoo/Password salah"); 
            } 
    
        function kirimPesan($ym_tujuan, $pesan) 
            { 
            if(!empty($this->curlData)) 
                { 
                $msg_URL = $this->curlData; 
                $msg_URL = substr($this->curlData, strpos($this->curlData, "<a href=\"/w/bp-messenger/sendmessage") + 9); 
                $msg_URL = substr($msg_URL, 0, strpos($msg_URL, "\"")); 
                $msg_URL = str_replace("&amp;", "&", $msg_URL); 
                $msg_URL = "http://us.m.yahoo.com" . $msg_URL; 
                 
                //buka alamat pengiriman pesan 
                $xml = $this->phpSend($msg_URL, '', getcwd() . '/cookies_yahoo_messenger.cookie', getcwd() . '/cookies_yahoo_messenger.cookie'); 
    
                $xmlDoc = new DOMDocument(); 
                @$xmlDoc->loadHTML($xml); 
    
                $sendmsg_URL = $xmlDoc->getElementsByTagName("form")->item(0)->getAttribute("action"); 
                $sendmsg_URL = "http://us.m.yahoo.com" . $sendmsg_URL; 
    
                //kirim pesan 
                $this->phpSend($sendmsg_URL, "id=" . $ym_tujuan . "&message=" . $pesan . "&__submit=Send", getcwd() . '/cookies_yahoo_messenger.cookie', getcwd() . '/cookies_yahoo_messenger.cookie'); 
                } 
                else die("Gagal mengakses server Yahoo!"); 
            } 
    
        function phpSend($url, $post, $cookie, $cookie2) 
            { 
            if(function_exists(curl_init)) 
                { 
                $curl = curl_init(); 
                curl_setopt($curl, CURLOPT_URL, $url); 
                curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); 
                curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
    
                if(!empty($post)) 
                    { 
                    curl_setopt($curl, CURLOPT_POST, 1); 
                    curl_setopt($curl, CURLOPT_POSTFIELDS, $post); 
                    } 
    
                curl_setopt($curl, CURLOPT_ENCODING, ""); 
                curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6"); 
    
                if(!empty($cookie)) 
                    { 
                    curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie); 
                    } 
    
                if(!empty($cookie2)) 
                    { 
                    curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie2); 
                    } 
    
                $curlData = curl_exec($curl); 
                curl_close($curl); 
    
                return $curlData; 
                } 
                else die("cURL not active");         
            } 
    
        function encrypt($pwd, $data) 
            { 
            $key[] = ''; 
            $box[] = ''; 
            $pwd_length = strlen($pwd); 
            $data_length = strlen($data); 
            for ($i = 0; $i < 256; $i++) 
                { 
                $key[$i] = ord($pwd[$i % $pwd_length]); 
                $box[$i] = $i; 
                } 
            for ($j = $i = 0; $i < 256; $i++) 
                { 
                $j = ($j + $box[$i] + $key[$i]) % 256; 
                $tmp = $box[$i]; 
                $box[$i] = $box[$j]; 
                $box[$j] = $tmp; 
                } 
            for ($a = $j = $i = 0; $i < $data_length; $i++) 
                { 
                $a = ($a + 1) % 256; 
                $j = ($j + $box[$a]) % 256; 
                $tmp = $box[$a]; 
                $box[$a] = $box[$j]; 
                $box[$j] = $tmp; 
                $k = $box[(($box[$a] + $box[$j]) % 256)]; 
                $cipher .= chr(ord($data[$i]) ^ $k); 
                } 
            return $cipher; 
            } 
    
        function decrypt($pwd, $data) 
            { 
            return $this->encrypt($pwd, $data); 
            } 
    
        function hex2bin($kodehexa) 
            { 
            for ($i=0;$i<strlen($kodehexa);$i+=2) 
                { 
                $biner.=chr(hexdec(substr($kodehexa,$i,2))); 
                } 
            return $biner; 
            } 
    
        function enkode($u) 
            { 
            $p = 'www.jogjashop.com'; 
            $u = htmlspecialchars($u); 
            $a = $this->encrypt($p, $u); 
            $d = bin2hex($a); 
            return $d; 
            } 
    
        function dekode($u) 
            { 
            $p = 'www.jogjashop.com'; 
            $u = $this->hex2bin($u); 
            $a = $this->decrypt($p, $u); 
            $a = html_entity_decode($a); 
            return $a; 
            } 
        }
    sample.php
    Code:
    <?php 
    include("php2ym.php"); 
    $encrypted_data = 'fill_with_encrypted_username_password_separated_by_l_(lowercase_of_L)'; 
    //ie: $encrypted_data = '2345abcdel5432edcba'; --> ID YM (encrypted) = 2345abcde and password (encrypted) = 5432edcba 
    
    $ym = new ymMobile; 
    $ym->ymLogin($encrypted_data); 
    $ym->kirimPesan('gadis_cantik@ymail.com', 'This is a chat message sent by PHP on '.date("d-m-Y / H|i|s")); 
    ?>
    ________________
    Jacques
    jacques@gw-designs.co.za
    http://coding.biz.tm
    Come join and lets make it a place to learn all the noobies how to code
    __________________

    NEVER FORGET TO CLICK THE TANX BUTTON IF U LIKE WHAT IM SHARING OR HELPING WITH

    #2
    can you give me a demo ??

    Comment

    Working...
    X