2012-12-22 20 views
2

我設置以下權限,無論是在我的身邊和應用的權限頁面:
(注意‘read_stream’)Facebook的:返回「500(內部服務器錯誤),」爲朋友信息請求

<fb:login-button autologoutlink="true" perms="read_stream, user_about_me, user_likes, user_location, user_birthday, user_education_history, user_work_history, friends_about_me, friends_likes, friends_location, friends_birthday, friends_education_history, friends_work_history"></fb:login-button> 


請求用戶的個人資料的偉大工程:

FB.api('/me/friends', { 
      fields: "id,username,name,first_name,last_name,location,link,education,work,statuses.limit(1).fields(message)" 
     }, function(res){ 
      console.log('FRIENDS', res.data); 
     }); 


然而,讓用戶的朋友不起作用一樣。
它給出了一個「500(內部服務器錯誤)」,其中facebook對象返回「未知錯誤」。

FB.api('/me/friends', { 
      fields: "id,username,name,first_name,last_name,location,link,education,work,statuses.limit(1).fields(message)" 
     }, function(res){ 
      console.log('FRIENDS', res.data); 
     }); 



我追蹤的問題到外地我要求。部分statuses.limit(1).fields(message)似乎是錯誤的來源,當刪除/me/friends返回數據。
但我不明白錯誤的原因。

  1. 它適用於/me
  2. 根據FB文檔read_steam應該是針對用戶的狀態和用戶的朋友的狀態。
  3. 通過上述字段,API Explorer可以讓我知道朋友的狀態,沒有任何問題。

我做錯了什麼,或者它是一個FB圖形API錯誤?

謝謝。

回答

1

這裏試試這個:

$user = $facebook->getUser(); 
if ($user){ 
      try { 
       $queries = array(
          array('method' => 'GET', 'relative_url' => '/'.$user), 
          array('method' => 'GET', 'relative_url' => '/'.$user.'/friends', 'name' => 'get-friends'), 
          array('method' => 'GET','relative_url' => '?ids={result=get-friends:$.data.*.id}'), 
          ); 

          // POST your queries to the batch endpoint on the graph. 
          try{ 
           $batchResponse = $facebook->api('?batch='.json_encode($queries), 'POST'); 
          }catch(Exception $o){ 
            error_log($o); 
          } 
          } 
         catch (FacebookApiException $e) { 
          error_log($e); //Checks if user is logged out and generate an exception if access token is invalid 
         } 
        } 
        else{ 
          $params = array(
            'scope' => 'friends_birthday, friends_education_history, read_stream, read_friendlists, user_birthday, //Requesting User Permissions through Facebook App 
            'redirect_uri' => 'specify yours here' //User is redirected after Login 
           ); 

         } 
$user_details = json_decode($batchResponse[0]['body'], true);// User Own Info 
$user_friends = json_decode($batchResponse[2]['body'], true);// User's Firend Info 

你會得到一個數組對象。

或者你可以使用FQL,在這裏:

$friends = $facebook->api(array(
             'method' => 'fql.query', 
             'query' => 'SELECT name, pic_big 
              FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())' 
            )); 

https://developers.facebook.com/docs/reference/fql/friend/

我的工作類似的東西,在這裏:http://agbcorplegal.com/profile_filter/

相關問題