2011-04-27 82 views
2

我如何獲得從我的朋友通過facebook api查看更新的權限?開發wiki並沒有真正幫助我進一步...我只需要一個代碼示例...訪問Facebook的朋友更新

回答

2

您需要爲您的用戶提供read_stream擴展權限。 http://developers.facebook.com/docs/authentication/permissions/

如果您在活動的用戶會話期間(例如,未利用offline_access擴展權限)執行此操作,則讀取更新將變得非常簡單。

例子(使用PHP):

<?php 
require 'facebook.php'; 

// Create our Application instance (replace this with your appId and secret). 
$facebook = new Facebook(array(
    'appId' => 'YOUR APP ID', 
    'secret' => 'YOUR APP SECRET', 
    'cookie' => true, 
)); 

try 
{ 
    $user_feed = $facebook->api('/me/home/'); 

    /** 
    * You now have the users's news feed, you can do with it what you want. 
    * If you want to prune it for friends only...you need to do a little more 
    * work.. 
    **/ 
    $friend_only_feed = array(); 

    if (!empty($user_feed['data'])) 
    { 
     $user_feed_pagination = $user_feed['paging']; 
     $user_feed = $user_feed['data']; 

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

     $friend_list = array(); 

     if (!empty($friends['data'])) 
     { 
      $friends = $friends['data']; 


      foreach ($friends as $friend) 
      { 
       $friend_list []= $friend['id']; 
      } 
     } 

     $friend_only_feed = array(); 
     foreach ($user_feed as $story) 
     { 
      if (in_array($story['from']['id'], $friend_list)) 
      { 
       $friend_only_feed []= $story; 
      } 
     } 
    } 

} 
catch (FacebookApiException $e) 
{ 
    /** 
    * you don't have an active user session or required permissions 
    * for this user, so rdr to facebook to login. 
    **/ 

    $loginUrl = $facebook->getLoginUrl(array(
     'req_perms' => 'publish_stream' 
    )); 

    header('Location: ' . $loginUrl); 
    exit; 
} 


print_r($friend_only_feed); 

這應該討論如何獲取用戶的新聞源,並從他們的朋友(不包括網頁更新)獲得他們的所有帖子。如果您沒有訪問權限,它將重定向用戶登錄並授予您訪問權限。

還值得注意的是,默認的home端點只能讓您回到最近的25個故事。如果你需要返回更遠的位置,那麼facebook響應中的paging鍵可以讓您執行多個請求以返回更遠,或者您可以將數組傳遞給api()方法,告訴Facebook您想要更大的限制。

<?php 
$user_feed = $facebook->api('/me/home/', 'GET', array(
    'limit' => 500 
)); 
+0

這工作,但如果我想狀態更新也是,甚至posible? – DaDu 2011-04-28 12:10:49

+0

@DaDu狀態更新被定義爲用戶發佈的與其沒有任何附件的任何內容。這意味着,用戶發佈的任何內容不是鏈接,視頻,照片等。該圖實際上使用每個元素的「類型」鍵來標識每個元素在/ home終點上的發佈類型。希望有所幫助! – 2011-04-28 18:54:36