2011-01-24 66 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。

相关问题