我想获得用户和他或她的每个朋友之间的共同朋友的数量。FQL和图形API:找到所有Facebook朋友之间的共同朋友
我已经广泛地研究了图api和fql来尝试解决这个问题。我已经看过图表api me/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);
使用图形API而不是fql似乎更快,但是有没有办法在一个查询中获得所有朋友的共同朋友?或者是否有更快的方法来做到这一点?我已经阅读了关于SO的不同部分的mutual_friend_count,但还没有得到这个工作。