拥有最多共同朋友的朋友

Sha*_*our 3 facebook facebook-fql fql.multiquery facebook-graph-api

我想找到我和他们分享最多的共同朋友的朋友.
我尝试使用FQL和图形API以下列方式:

  1. 获取当前登录用户的好友列表.
    FQL:SELECT uid1 FROM friend WHERE uid2="MY_USER_ID" and uid1 IN (SELECT uid1 FROM friend WHERE uid2=me())
    图形API:$facebook->api('/me/friends?format=json&limit=5000')

  2. 对于列表中的每个uid,我可以获得共同朋友的列表并计算它.
    FQL:SELECT uid1 FROM friend WHERE uid2="OTHER_USER" and uid1 IN (SELECT uid1 FROM friend WHERE uid2=me())
    图形API:$facebook->api('me/mutualfriends/OTHER_USER')

无论其,它需要的时间,通过我所有的朋友来运行这个......
你熟悉一个更好的方式来做到这一点?

mkt*_*kto 9

如果您的目标只是获得共享朋友数量最多的朋友列表,即您不关心这些共同朋友是谁,那么实际上Geoff的FQL调用提供了太多您需要的信息.

我还注意到Geoff的FQL返回了如此多的数据,Facebook实际上截断了数据.

此外,你可能想要在同一个FQl调用中获取这些朋友的名字......

另一种看起来更好的FQL是:

SELECT name,mutual_friend_count FROM user WHERE uid IN(
SELECT uid2 FROM friend WHERE uid1=me())
Run Code Online (Sandbox Code Playgroud)

这将返回朋友列表中共同朋友的数量.因此,如果您有500个朋友,您将只收到500个对象的回复.