可能重复:
在 facebook 上获取朋友的朋友列表
我需要获取某人的朋友(1 级)、他们朋友的朋友(2 级)和他们朋友的朋友的朋友(3 级)的计数。FQL 或 Graph API 是否可以实现这一点,如果可以,如何实现?
到目前为止,我知道我可以使用这个 FQL 查询获得第一级计数:
SELECT friend_count FROM user WHERE uid = me()
但我不确定如何进一步,或者即使有可能这样做。
可能重复:
在 facebook 上获取朋友的朋友列表
我需要获取某人的朋友(1 级)、他们朋友的朋友(2 级)和他们朋友的朋友的朋友(3 级)的计数。FQL 或 Graph API 是否可以实现这一点,如果可以,如何实现?
到目前为止,我知道我可以使用这个 FQL 查询获得第一级计数:
SELECT friend_count FROM user WHERE uid = me()
但我不确定如何进一步,或者即使有可能这样做。
不,这不能使用 Graph API 或 FQL 完成。您可以获得的最远距离是从用户表中选择与您的朋友相关的信息,例如他们的朋友数量,方法是在您的查询中执行子选择,如下所示:
SELECT uid, friend_count
FROM user
WHERE uid IN (
SELECT uid1
FROM friend
WHERE uid2 = me()
)
但这甚至不会使您在最初的问题中达到 2 个级别,因为您的许多朋友会有共同的朋友,因此这些计数的总和将远远超过您拥有的朋友的朋友的数量。为了获得您需要的信息,您需要做的是提取朋友的朋友的 id 列表,然后通过执行这样的查询自己计算他们
SELECT uid1
FROM friend
WHERE uid2 in (
SELECT uid1
FROM friend
WHERE uid2 = me()
)
但是,如果您尝试执行 this,您将收到类似于以下内容的错误:
{
"error": {
"message": "Can't lookup all friends of 36807322. Can only lookup for the logged in user or the logged in user's friends that are users of your app.",
"type": "NoIndexFunctionException",
"code": 604
}
}
如果您尝试在 Graph API 上一一查询您朋友的好友列表,您将收到相同的错误消息,如此处所述(感谢 Igy 提供此链接)。
因此,没有任何方法可以使用现有的 API 来做您想做的事情(当然,除非您为 Facebook 应用程序获得了足够庞大的用户群,您可以使用以下方法逐步构建用户的朋友的朋友图)您的应用程序的众多其他用户的访问令牌 - 但我认为这样的“解决方案”对您没有帮助!)