How to get friends likes via Facebook API

微笑、不失礼 提交于 2019-11-28 17:39:02
dupdup

At last I found it after 2 weeks looking at Facebook API documentation

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);
  })
})
Carson

Using FQL is going to be faster than looping through the Graph API results. You can get the ID of the pages your friends like, but unfortunately FQL does not return info other than that (ie the name). Take a look at the following.

This assumes you are using the PHP SDK with the friends_likes permission.

// 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));

The benefit of this is that you only make one API call. You will have to make separate calls to get the friend names and another for the liked page details, but you have the IDs to work with now in a straight forward approach.

I believe that is the only way. I looked at this problem a few weeks ago. Don't think they've changed the API.

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

EDIT: I'm not sure I understand well enough what you mean... If you mean that you want to get a list of the posts that a user likes, what you have to do is this:

  1. Get all the posts by friends
  2. Check if likes any of their posts
  3. Get all the posts by
  4. Check if likes any of his/her own posts
  5. Combine the results

Is that what you want?

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!