/
  • با فیـــــس بـــــوک و دوستانمان د ارتباط باشیم

  • ارسال پاسخ   امتیاز موضوع:
    • 1 رأی - میانگین امیتازات: 5
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی با فیـــــس بـــــوک و دوستانمان د ارتباط باشیم
    نویسنده پیام
    Alimokhlesi آفلاین
    مدیر کل
    **********

    ارسال‌ها: 457
    تاریخ عضویت: ۱۳۸۷ آذر ۲۵
    اعتبار: 13
    تشکرها : 602
    ( 1126 تشکر در 412 ارسال )
    ارسال: #1
    با فیـــــس بـــــوک و دوستانمان د ارتباط باشیم
    PHPClass امروز یه کلاس برای ارتباط با دوستان فیـــــس بـــــوکیمون گذاشته
    این کلاس پلاگینی از OpenInviter هست.
    در این کلاس یا بهتره بگم کلاس ها شما می تونید به دوستتون پیام هم بدید.
    خلاصه خیلی کارش درسته
    کد PHP:
    <?php
    /*Import Friends from Facebook
     * You can send message to your Friends Inbox
     */
    $_pluginInfo=array(
        
    'name'=>'Facebook',
        
    'version'=>'1.1.2',
        
    'description'=>"Get the contacts from a Facebook account",
        
    'base_version'=>'1.6.3',
        
    'type'=>'social',
        
    'check_url'=>'http://m.facebook.com/index.php'
        
    );
    /**
     * FaceBook Plugin
     * 
     * Imports user's contacts from FaceBook and sends
     * messages using FaceBook's internal system.
     * 
     * @author OpenInviter
     * @version 1.0.8
     */
    class facebook extends OpenInviter_Base
        
    {
        private 
    $login_ok=false;
        public 
    $showContacts=true;
        public 
    $requirement='email';
        public 
    $internalError=false;
        public 
    $allowed_domains=false;
        protected 
    $timeout=100;
        
        public 
    $debug_array=array(
                    
    'initial_get'=>'pass',
                    
    'login_post'=>'accesskey="2"',
                    
    'url_friends'=>'accesskey="9"',
                    
    'get_friends'=>'nd header',
                    
    'url_message'=>'body',
                    
    'send_message'=>'notice'
                    
    );
        
        
    /**
         * Login function
         * 
         * Makes all the necessary requests to authenticate
         * the current user to the server.
         * 
         * @param string $user The current user.
         * @param string $pass The password for the current user.
         * @return bool TRUE if the current user was authenticated successfully, FALSE otherwise.
         */
        
    public function login($user,$pass)
            {
            
    $this->resetDebugger();
            
    $this->service='facebook';
            
    $this->service_user=$user;
            
    $this->service_password=$pass;
            if (!
    $this->init()) return false;
            
            
    $res=$this->get("http://m.facebook.com/",true);
            if (
    $this->checkResponse("initial_get",$res))
                
    $this->updateDebugBuffer('initial_get',"http://www.facebook.com/",'GET');
            else
                {
                
    $this->updateDebugBuffer('initial_get',"http://www.facebook.com/",'GET',false);
                
    $this->debugRequest();
                
    $this->stopPlugin();
                return 
    false;
                }
                
            
    $form_action=str_replace("&amp;","&",urldecode($this->getElementString($res,'action="','"')));
            
    $post_elements=array('email'=>$user,'pass'=>$pass,'login'=>'Login In');
            
    $res=$this->post($form_action,$post_elements,true,true);
            if (
    $this->checkResponse("login_post",$res))
                
    $this->updateDebugBuffer('login_post',"{$form_action}",'POST',true,$post_elements);
            else
                {
                
    $this->updateDebugBuffer('login_post',"{$form_action}",'POST',false,$post_elements);
                
    $this->debugRequest();
                
    $this->stopPlugin();
                return 
    false;
                }
            
            
    $url_friends_array=$this->getElementDOM($res,"//a[@accesskey='2']",'href');
            
    $url_friends='http://m.facebook.com'.$url_friends_array[0];
            
    $res=$this->get($url_friends,true);
            if (
    $this->checkResponse("url_friends",$res))
                
    $this->updateDebugBuffer('url_friends',$url_friends,'GET');
            else
                {
                
    $this->updateDebugBuffer('url_friends',$url_friends,'GET',false);
                
    $this->debugRequest();
                
    $this->stopPlugin();
                return 
    false;
                }
            
            
    $url_my_friends_array=$this->getElementDOM($res,"//a[@accesskey='9']",'href');
            
    $url_my_friends='http://m.facebook.com'.$url_my_friends_array[0];
            
            
    $this->login_ok=$url_my_friends;
            return 
    true;
            }
        
        
    /**
         * Get the current user's contacts
         * 
         * Makes all the necesarry requests to import
         * the current user's contacts
         * 
         * @return mixed The array if contacts if importing was successful, FALSE otherwise.
         */    
        
    public function getMyContacts()
            {
            if (!
    $this->login_ok)
                {
                
    $this->debugRequest();
                
    $this->stopPlugin();
                return 
    false;
                }
            else 
    $url=$this->login_ok;
            
            
    $res=$this->get($url,true);
            if (
    $this->checkResponse("get_friends",$res))
                
    $this->updateDebugBuffer('get_friends',$url,'GET');
            else
                {
                
    $this->updateDebugBuffer('get_friends',$url,'GET',false);
                
    $this->debugRequest();
                
    $this->stopPlugin();
                return 
    false;
                }

            
    $contacts=array();$nextPage=true;$curentPage=2;$start=10;
            while(
    $nextPage) {    
                
    $nextPage=false;
                
    $doc=new DOMDocument();
                
    libxml_use_internal_errors(true);
                if (!empty(
    $res)) $doc->loadHTML($res);
                
    libxml_use_internal_errors(false);
                
    $xpath=new DOMXPath($doc);
                
    $query="//tr[@valign='top']";
                
    $data=$xpath->query($query);
                
                foreach(
    $data as $node) {
                    
    $name=$node->childNodes->item(1)->firstChild->nodeValue;
                    
    $tdNodes=$node->childNodes->item(1)->childNodes;
                    foreach(
    $tdNodes as $childNode)
                        if (
    $childNode->nodeName=='small') if ($childNode->hasChildNodes()) if ($childNode->firstChild->nodeName=='a'$href=$childNode->firstChild->getAttribute('href');
                    if (!empty(
    $href)) $contacts[$href]=$name;
                }
                
                
    $query="//a[@href]";
                
    $data=$xpath->query($query);            
                foreach (
    $data as $node) {                
                    if (
    strpos($node->getAttribute('href'),'a&f='.$start)!==false) {
                        
    $start $start 10
                        echo 
    $nextPage="http://m.facebook.com/".$node->getAttribute('href');
                        break;
                    }
                }
                
                
    $curentPage++;
                
    $res=$this->get($nextPage,true);
            }
            return 
    $contacts;
        }

        
    /**
         * Send message to contacts
         * 
         * Sends a message to the contacts using
         * the service's inernal messaging system
         * 
         * @param string $session_id The OpenInviter user's session ID
         * @param string $message The message being sent to your contacts
         * @param array $contacts An array of the contacts that will receive the message
         * @return mixed FALSE on failure.
         */
        
    public function sendMessage($session_id,$message,$contacts)
            {
            
    $countMessages=0;
            foreach (
    $contacts as $href=>$name)
                {            
                
    $countMessages++;
                
    $formatedHref='http://m.facebook.com'.str_replace('&amp;','&',$href);
                
    $res=$this->get($formatedHref,true);
                if (
    $this->checkResponse("url_message",$res))
                    
    $this->updateDebugBuffer('url_message',$formatedHref,'GET');
                else
                    {
                    
    $this->updateDebugBuffer('url_message',$formatedHref,'GET',false);
                    
    $this->debugRequest();
                    
    $this->stopPlugin();
                    return 
    false;
                    }
                
                
    $form_action='http://m.facebook.com'.str_replace('&amp;','&',$this->getElementString($res,'action="','"'));
                
    $post_elements=array('subject'=>$message['subject'],
                                    
    'body'=>$message['body'],
                                    
    'send'=>$this->getElementString($res,'name="send" value="','"'),
                                    
    'post_form_id'=>$this->getElementString($res,'name="post_form_id" value="','"'),
                                    
    'compose'=>1,
                                    
    'ids'=>$this->getElementString($res,'name="ids" value="','"'),
                                    );
                
    $res=$this->post($form_action,$post_elements,true);
                if (
    $this->checkResponse("send_message",$res))
                    
    $this->updateDebugBuffer('send_message',"{$form_action}",'POST',true,$post_elements);
                else
                    {
                    
    $this->updateDebugBuffer('send_message',"{$form_action}",'POST',false,$post_elements);
                    
    $this->debugRequest();
                    
    $this->stopPlugin();
                    return 
    false;
                    }
                
    sleep($this->messageDelay);
                if (
    $countMessages>$this->maxMessages) {$this->debugRequest();$this->resetDebugger();$this->stopPlugin();break;}
                }
            }

        
    /**
         * Terminate session
         * 
         * Terminates the current user's session,
         * debugs the request and reset's the internal 
         * debudder.
         * 
         * @return bool TRUE if the session was terminated successfully, FALSE otherwise.
         */    
        
    public function logout()
            {
            if (!
    $this->checkSession()) return false;
            
    $res=$this->get("http://m.facebook.com",true);
            if (!empty(
    $res))
                {
                
    $url_logout="http://m.facebook.com/logout.php".str_replace('&amp;','&',$this->getElementString($res,'/logout.php','"'));
                
    $res=$this->get($url_logout,true);
                }
            
    $this->debugRequest();
            
    $this->resetDebugger();
            
    $this->stopPlugin();
            return 
    true;    
            }
        }    

    ?>

    http://www.phpclasses.org/browse/file/28536.html


    فایل‌(های) پیوست شده
    .php  facebook.php (اندازه: 7.4 KB / تعداد دفعات دریافت: 14)
    __________________________________________________________________________
    علم تاج افتخار دنیا و یادگار پس از مرگ است
    (آخرین ویرایش در این ارسال: ۱۳۸۸ شهريور ۳۱ ۰۴:۰۸ عصر، توسط Alimokhlesi.)
    ۱۳۸۸ شهريور ۳۱ ۰۴:۰۶ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : Y.P.Y zoghal HiddeN
    Y.P.Y آفلاین
    ناظم کل
    *******

    ارسال‌ها: 2,837
    تاریخ عضویت: ۱۳۸۷ دي ۲۸
    اعتبار: 89
    تشکرها : 2098
    ( 4608 تشکر در 2106 ارسال )
    ارسال: #2
    RE: با فیـــــس بـــــوک و دوستانمان د ارتباط باشیم
    بازم بیا اینور بازار که آتیش زدم به مالم Big Grin
    FACEBOOK Official PHP client library
    http://wiki.developers.facebook.com/index.php/PHP
    __________________________________________________________________________
    وبلاگ: Yousha.Blog.ir

    کسی که دین را با شخصیت ها بشناسد، همان شخصیت ها او را از دین خارج می سازند. امام صادق (ع)

    یادمون نره اون مغز کوچیک هایی که موقع اشغال افغانستان میگفتن حالا که آمریکا اومده چند سال دیگه افغانستان بهشت منطقه میشه...
    15سال گذشت!
    ۱۳۸۸ شهريور ۳۱ ۰۴:۵۰ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : zoghal admin
    « قدیمی تر | تازه‌ تر »

    ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS