是的,您可以获得每个用户的好友列表。这是我将如何做到的。
在注册时,如果用户在 Facebook 上注册,您将他们的 ID 存储在数据库中。
当经过身份验证的用户查看您的一条记录时,通过 API 发出此 FQL 查询:
SELECT uid, name, pic_square, mutual_friend_count FROM user
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())
AND is_app_user
ORDER BY mutual_friend_count DESC
这将使您返回您的应用程序的其他用户,这些用户与当前用户是朋友,按您的应用程序用户和每个朋友之间的共同朋友计数排序(假设更亲密的朋友有更多的共同朋友)。
您可以通过将此查询的结果与数据库中存储的 Facebook id 进行比较,将此列表与数据库中的任何其他指标进行比较。
显示朋友的朋友是一个更棘手的提议。如果您尝试此查询:
SELECT uid2 FROM friend WHERE uid1 IN
(SELECT uid2 FROM friend WHERE uid1 = me() LIMIT 1)
它会引发权限错误。Facebook 不允许你交朋友的朋友。
如果它对您的应用很重要,您可以通过在每次登录时缓存每个应用用户的最新朋友列表(或者如果您还要求提供扩展访问令牌,则按计划)并查询此表以查看是否与所有用户的朋友有共同的朋友。您需要仔细查看 TOS 以了解其合法性。