0

我正在制作一个 Facebook 应用程序,我需要登录用户的共同朋友。旧 APIfriends.getMutualFriends可以完成这项工作,但速度很慢。我想知道是否有任何其他方法可以获得共同朋友的名单。

而且,像 SocialGraph 这样的应用程序加载速度非常快,那么他们使用什么功能可以这么快地抓住共同的朋友呢?

4

3 回答 3

1

我找到了解决方案:)
使用friends.getMutualFriends,它需要n^3 API,这是一个巨大的数字。我也尝试了 areFriends,但也没有更好。所以我通过 FQL 查询获取数据如下:

//Create Query
$params = array(
    'method' => 'fql.query',
    'query' => "  SELECT uid1, uid2 FROM friend 
WHERE uid1 IN 
(SELECT uid2 FROM friend WHERE uid1= $match)
AND uid2 IN 
(SELECT uid2 FROM friend WHERE uid1= $match)",
);

//Run Query
$result = $facebook->api($params);

不到一秒就搞定了共同好友!

于 2011-08-26T09:34:09.900 回答
0

截至 2011 年 9 月,对此有一个新的 api 调用:

本周我们为 User 对象添加了一个连接,它允许您获取两个用户之间的共同好友列表。要使用它,只需获取当前用户的访问令牌并发出 GET 请求:

https://graph.facebook.com/me/mutualfriends/FRIEND_ID

平台更新:运维开发者之爱

于 2013-07-12T03:34:00.047 回答
0

如果您担心速度,我建议您调用一次信息并找到缓存数据的方法。Facebook 现在为您提供了“合法”这样做的能力。您可以将 memcached 用于此类事情或将其临时保存在数据库中。

于 2011-08-25T10:53:00.593 回答