5

我正在开发一个 Facebook 应用程序。我想知道如何按照共同朋友的数量来获得朋友。是否可以使用 FQL 或任何其他方法?

4

4 回答 4

6

更新

我找不到使用图形 API 在一个请求中执行此操作的方法,但可以在 Ruby 中通过获取朋友列表然后使用用户上下文为每个朋友发送请求来完成示例

原始答案

这是要使用的 FQL 查询,仅适用于 < v2.1 的 api 版本

SELECT uid, mutual_friend_count from user where uid in (SELECT uid2 FROM friend WHERE uid1=me()) ORDER BY mutual_friend_count desc

你可以在资源管理器中试试

https://developers.facebook.com/tools/explorer?method=GET&path=fql%3Fq%3DSELECT%20uid%2C%20mutual_friend_count%2C%20friend_count%20from%20user%20where%20uid%20in%20%28SELECT%20uid2% 20FROM%20friend%20WHERE%20uid1%3Dme%28%29%29%20ORDER%20BY%20mutual_friend_count%20desc

于 2013-05-01T01:14:00.130 回答
2

理论上,您可以使用以下方法获取用户的朋友列表:

$friendsOfFriend = $facebook->api('/'.$yourFriendsFacebookId.'/friends');

然后你可以检查每个结果,看看他们是否也是你的朋友。

$isMyFriend = $facebook->api('/me/friends/'.$someonesFacebookId);

...并跟踪计数。

但是我的测试还没有返回任何结果。我试图获取我的一些 facebook 朋友的朋友,但它返回一个异常:Can't lookup all friends of {friend's_facebook_ID}. Can only lookup for the logged in user {my_facebook_ID}, or friends of the logged in user with the appropriate permission. 所以这里可能存在权限问题。

于 2011-10-16T10:12:51.250 回答
1

我不认为可以通过 FQL 获得共同的朋友,因此您必须努力做到这一点:为每个朋友循环调用图形 api 并获取共同朋友的数量。图形 api 方法是:/me/mutualfriends/yourFriendsId,您可以一次执行 20 个批处理请求以帮助加快速度。如果您能找到使用 FQL 的方法,那将是您最快的路线。

于 2011-10-17T05:05:56.837 回答
0

这只是部分答案,因为它们并不都在一个地方,还没有找到将它们放在一个页面上的方法,但这是一个开始,可以通过您的朋友列表以编程方式循环运行......

https://www.facebook.com/browse/mutual_friends/?uid=xxxxxxxxxxxx

因为如果您不提供 uid 它会返回错误...我只是想在一个页面上获取我所有朋友的列表,但没有骰子。荒谬的。

于 2015-10-28T11:19:39.180 回答