如何按照共同朋友的数量获得朋友?

Kri*_*son 5 facebook facebook-fql facebook-apps

我正在开发一个Facebook应用程序.我想知道如何按照共同朋友的数量顺序结交朋友.有可能使用FQL或任何其他方法吗?

Mou*_*mir 6

更新

我不能找到一种方法,使用图形API做一个请求,但它可以在Ruby中通过获取好友列表,然后利用为每个朋友发送请求进行用户环境这个例子

原始答案

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

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

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

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

  • 对于其他新手:我需要从`Graph API`切换到`FQL Query`,以便在资源管理器中工作.否则我收到了一个`"(#601)Parser错误:意外结束查询."`错误.:) (2认同)
  • 我认为API已经改变了.此查询现在返回`{"error":{"message":"(#12)对于版本v2.1及更高版本,不推荐使用fql","类型":"OAuthException","code":12}}` (2认同)

Sal*_*man 2

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

$friendsOfFriend = $facebook->api('/'.$yourFriendsFacebookId.'/friends');
Run Code Online (Sandbox Code Playgroud)

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

$isMyFriend = $facebook->api('/me/friends/'.$someonesFacebookId);
Run Code Online (Sandbox Code Playgroud)

...并记录计数。

然而我的测试还没有返回任何结果。我试图获取我的一些 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。所以这里可能存在权限问题。