【问题标题】:FQL and Graph API: Find Mutual Friends Between All Facebook FriendsFQL 和 Graph API:查找所有 Facebook 好友之间的共同好友
【发布时间】:2012-09-09 20:20:31
【问题描述】:

我正在尝试获取用户与其每个朋友之间的共同朋友的数量。

我已经广泛研究了 graph api 和 fql 来尝试解决这个问题。我看过图apime/mutualfriends/<uid>

但是,如果对大量朋友 (>1k) 执行此操作,那么在每个朋友之间请求共同朋友就太过分了。

然后我使用 FQL 和 Graph API 对批处理请求(一次最多 50 个)进行了尝试。这仍然会导致一次查询来获取所有朋友,然后 N 次查询与每个朋友的共同朋友。即使一次批处理 50 个,这也需要相当长的时间。

这是主要的 FQL 查询:

select uid1 from friend where uid2 = FRIEND_ID and uid1 in (select uid2 from friend where uid1 = me())';

这是图形 api 网址:

/me/mutualfriends/FRIEND_ID

我正在使用批处理,例如:

$facebook->api('/?batch='.json_encode($batch), 'POST');

批处理中的每个查询都是一个数组,例如:

$cur = array('method'=>'GET', 'relative_url'=> $relative_url);

使用graph api而不是fql似乎更快,但是有没有办法在一个查询中为所有朋友获取共同的朋友?或者实际上有更快的方法来做到这一点?我已经在 SO 的不同部分阅读了有关相互朋友计数的信息,但还没有让它发挥作用。

【问题讨论】:

    标签: facebook api batch-processing


    【解决方案1】:

    我让mutual_friend_count 工作,如此处所示。但是,我仍然很好奇您是否可以构建单个 FQL 查询来获取这些数据。

    $fql = "SELECT name,mutual_friend_count FROM user WHERE uid IN(SELECT uid2 FROM friend WHERE uid1=me())";
    
    $response = $facebook->api(array(
        'method' => 'fql.query',
        'query' =>$fql,
    ));     
    

    来自Friend with the highest number of mutual friends

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多