2011-01-24 63 views
13

這可能讓所有的朋友都喜歡?現在,我通過2步得到這個:如何通過Facebook API獲取朋友喜歡

  1. 拿走我所有的朋友列表
  2. 通過重複這些名單我得到的所有個人喜歡,

但它似乎非常大的過程中,任何人有想提高這項任務的表現?

回答

14

最後我找到了它2周後在看Facebook的API文檔

FB.api("/likes?ids=533856945,841978743") 

FB.api("me/friends",{ 
    fields:'id', 
    limit:10 
},function(res){ 
    var l='' 
    $.each(res.data,function(idx,val){ 
    l=l+val.id+(idx<res.data.length-1?',':'') 
    }) 
    FB.api("likes?ids="+l,function(res){ 
     console.log(res); 
    }) 
}) 
0

我相信這是唯一的方法。幾周前我看了這個問題。不要以爲他們已經改變了API。

http://developers.facebook.com/docs/reference/api/

編輯: 我不知道我的理解不夠好,你的意思......如果你的意思是你想獲得用戶喜歡的職位,你必須做的事情的清單是這樣的:

  1. 通過朋友得到所有的職位
  2. 檢查是否喜歡他們的任何職位
  3. 通過
  4. 檢查獲取所有的帖子像š任何他/她自己的訊息
  5. 合併結果

這是你想要的嗎?

+0

感謝您的回答。但實際上我不能這樣實現!我如何獲得用戶喜歡的帖子?我找不到任何辦法。 http://developers.facebook.com/docs/reference/api/user/中只有「喜歡」,但這些是用戶喜歡的頁面,而不是帖子。 – maxgrinev 2011-01-27 12:32:40

+0

看到我的編輯。那是你要的嗎? – 2011-01-27 22:16:32

5

使用FQL將是比通過圖形API結果循環更快。您可以獲取朋友喜歡的頁面的ID,但不幸的是FQL不會返回除此之外的其他信息(即名稱)。看看下面的內容。

此處假設您使用PHP SDK與friends_likes權限。

// hold on to your user ID 
$user_id = $facebook->getUser(); 

// query your friend's likes based on their ID 
$query = "SELECT uid, page_id FROM page_fan WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = $user_id)"; 
$result = $fb->api(array(
    'method' => 'fql.query', 
    'query' => $query, 
)); 

// optionally group the results by each friend ID 
function arraySort($input, $sortkey){ 
    foreach ($input as $key => $val) { 
    $output[ $val [ $sortkey ] ][] = $val; 
    } 
    return $output; 
} 
$friendLikes = arraySort($result,'uid'); 

// output the results 
echo sprintf('<pre>%s</pre>', print_r($friendLikes,TRUE)); 

這樣做的好處是您只能進行一次API調用。您必須分別撥打電話才能獲取好友的姓名,而另一個電話會顯示喜歡的頁面詳細信息,但您現在可以直接使用該ID。

相關問題