2012-08-02 24 views
7

के बारे में जानकारी पूछने के लिए एक सक्रिय एक्सेस टोकन का उपयोग किया जाना चाहिए, मैं ग्राफ़ एपीआई का उपयोग करके फेसबुक उपयोगकर्ता स्थिति अपडेट करने का प्रयास कर रहा हूं। मेरे कोडवर्तमान उपयोगकर्ता-ग्राफ़ एपीआई अपवाद

<?php 
    require 'facebook.php'; 
    $facebook = new Facebook(array( 
    'appId' =>'389694921095423', 
    'secret' =>'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 
    'cookie' => true 
    )); 
    $access_token = $facebook->getAccessToken(); 
    echo($access_token); 
    $me = null; 

    try 
    { 
     $uid = $facebook->getUser(); 
     $me = $facebook->api('/me'); 
     echo "Welcome User: " . $me['name'] . "<br />"; 
     //access permission 
     $permissions_needed = array('publish_stream', 'read_stream', 'offline_access', 'manage_pages'); 
     foreach($permissions_needed as $perm) 
     { 
      if(!isset($permissions_list['data'][0][$perm]) || $permissions_list['data'][0][$perm] != 1) 
      {  
      $login_url_params = array(
       'scope' => 'publish_stream,read_stream,offline_access,manage_pages',   
       'fbconnect' => 1,   
       'display' => "page",   
       'next' => 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']  
       );  
      $login_url = $facebook->getLoginUrl($login_url_params); 
      header("Location: {$login_url}"); 
      exit(); 
      } 
     } 
     //Access permission 

     $post_id = $facebook->api("/$uid/feed", "post", array("message"=>"Hello World!")); 
     if(isset($post_id)) 
     { 
      echo "A new post to your wall has been posted with id: $post_id"; 
     } 
    } 
    catch (FacebookApiException $e) 
    { 
     echo($e); 
    } 
?> 

है समस्या यह है कि यह गंभीर त्रुटि की तरह एक रन टाइम त्रुटि से पता चलता है: Uncaught OAuthException: एक सक्रिय पहुँच टोकन वर्तमान उपयोगकर्ता के बारे में जानकारी क्वेरी करने के लिए इस्तेमाल किया जाना चाहिए। मैंने एक्सेस टॉकन जेनरेट किया है।

$me = $facebook->api('/me'); 

को
$me = $facebook->api('/'.$uid); 

इसके अलावा, अगर आप नवीनतम उपयोग नहीं कर रहे अपने SDK अपग्रेड करने का प्रयास: मैं कहाँ उपयोग करने के लिए है कि पहले से इस अपवाद धन्यवाद निकालना पड़

+0

_ "मैं पहुँच Tocken जेनरेट किया है।" _ - जहां और _when_ तुमने किया था इसे बनाओ? लगता है जैसे आप पहले से ही समाप्त हो चुके टोकन का उपयोग कर रहे हैं। आप यह जांचने के लिए डीबग टूल का उपयोग कर सकते हैं कि आपका टोकन अभी भी मान्य है या नहीं: https://developers.facebook.com/tools/debug – CBroe

+1

ऐसा इसलिए है क्योंकि $ facebook-> getUser() 0 वापस आ गया है, और उपयोगकर्ता नहीं है लॉग इन करें। –

उत्तर

32

लाइन बदलने का प्रयास करें संस्करण और यदि आपने अभी एसडीके को अपग्रेड किया है और इससे समस्या उत्पन्न हुई है, तो आप संस्करण को डाउनग्रेड करने और जांचने का प्रयास कर सकते हैं।

+1

किसी भी कारण से यह मेरे/मेरे विरोध में क्यों काम करेगा? – Mike

+0

यकीन नहीं है, लेकिन यह मेरे लिए काम किया ... – happyhardik

+5

अच्छा, यह फेसबुक है! बिज़ारे त्रुटियां, और सबसे बड़ी समस्या यह है कि यह त्रुटि कई अन्य समस्याओं के कारण भी हो सकती है। –

5

स्पष्ट अपने कैश & कुकीज़ (आप जांच करना है कि कर रहे हैं या विकासशील आवेदन) और कृपया इस प्रकार कार्य करें: -

try 
{ 
    $fb_user_info = $facebook->api('/me'); 
} catch (Exception $ex) 
{ 
    $facebook->destroySession(); 
    $params = array(
     'scope' => 'YOUR_PERMISSIONS', 
     'redirect_uri' => 'YOUR_SITE_URL' 
); 
    $fb_login_url = $facebook->getLoginUrl($params); 
    header("Location:" . $fb_login_url); 
} 
+0

* sidenote: * 'हेडर' के बाद 'निकास' को कॉल करना याद रखें; '' स्थान: $ url '); ' – Raptor

+1

टाइपो त्रुटि आपके पक्ष में नोट: यह हेडर होना चाहिए ('स्थान:'। $ यूआरएल); हम सिंगल कोट्स में चर का उपयोग नहीं कर सकते हैं या यह डबल कोट्स –

+0

हां में होना चाहिए। यह एक बेवकूफ टाइपो है। अनुस्मारक के लिए धन्यवाद। (हालांकि संपादित नहीं कर सकते हैं) – Raptor

संबंधित मुद्दे