【问题标题】:How to get friends likes via Facebook API如何通过 Facebook API 获得好友点赞
【发布时间】:2015-06-05 07:43:12
【问题描述】:

这样可以让我所有的朋友都喜欢吗?现在,我分两步完成:

  1. 获取我所有的朋友列表
  2. 通过迭代这些列表,我得到了所有个人的赞,

但这似乎是一个很大的过程,有人有想法提高这项任务的性能吗?

【问题讨论】:

    标签: facebook facebook-graph-api facebook-fql


    【解决方案1】:

    在查看 Facebook API 文档 2 周后,我终于找到了它

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

    【讨论】:

    • 这里的FB是什么。我需要同样的 android。
    • FB 是 javascript Facebook SDK。 The SDK page is located here.
    • 这仍然适用于新的 fb graph api 吗?如果我传入一个 id,我一直没有得到任何数据。
    【解决方案2】:

    使用FQL 将比遍历 Graph API 结果更快。您可以获得您朋友喜欢的页面的 ID,但不幸的是,FQL 不会返回除此之外的信息(即名称)。请看以下内容。

    这假设您使用具有 friends_likes 权限的 PHP SDK。

    // 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。

    【讨论】:

      【解决方案3】:

      我相信这是唯一的方法。几周前我看过这个问题。不要认为他们改变了 API。

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

      编辑: 我不确定我是否理解你的意思......如果你的意思是你想获得用户喜欢的帖子列表,你需要做的是:

      1. 获取好友的所有帖子
      2. 检查是否喜欢他们的任何帖子
      3. 获取
      4. 的所有帖子
      5. 检查是否喜欢他/她自己的任何帖子
      6. 合并结果

      这是你想要的吗?

      【讨论】:

      • 感谢您的回答。但实际上我连这种方式都无法实现!如何获得用户喜欢的帖子?我找不到任何方法来做到这一点。 developers.facebook.com/docs/reference/api/user 中只有“赞”,但这些是用户赞的页面,而不是帖子。
      • 我不敢相信有更有效的方法来做到这一点。我刚刚玩了很多 FQL,就我的知识水平而言,我认为确实需要先获取朋友列表,然后为每个朋友打一个额外的赞。这可能是一个非常非常漫长的过程。这真的是唯一的方法吗?
      • @Sven 不久前我正在处理一个类似的问题 (stackoverflow.com/questions/4874014/…),似乎没有人真正知道答案。我想如果它没有记录在案,我们应该假设它不存在。
      • 谢谢。我会在接下来的几个小时里考虑这个问题。我的一个想法是首先获取所有朋友的 ID。然后,使用多请求,我将尝试获得喜欢。如果可行,我会让大家知道。
      猜你喜欢
      • 1970-01-01
      • 2015-07-31
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多