Facebook图谱API - 使用应用程序的好友

6
Facebook.php库中是否有一个函数,可以获取用户在某个应用程序中的好友列表。类似于以下代码:
$friends = $facebook->api('me/friends?access_token=' . $access_token);

但是它并不列出所有的朋友,而只列出使用相同应用程序的朋友。

1
我很想拥有你的问题 :-) 当我在 obj-c 中运行此命令时,我会得到所有朋友,但我只想要使用应用程序的朋友...... 真是太烦人了....我一直在使用旧的 REST API 中的 "facebook.friends.getAppUsers",但现在似乎在最新的 API 更新中无法工作 - 我想使用来自 Graph API 的命令。 - Ryan Bavetta
2个回答

17

你应该能够使用 FQL 完成这个操作:

select uid, name, is_app_user from user where uid in (select uid2 from friend where uid1=me()) and is_app_user=1

我应该将查询传递给库中的哪个函数? - diggersworld
$fql_query = array( 'method' => 'fql.query', 'query' => 'select uid, name, is_app_user from user where uid in (select uid2 from friend where uid1=me()) and is_app_user=1' ); $fql_info = $facebook->api($fql_query); - diggersworld
@serg:不,我得到了这个错误:在mysite.com/src/facebook.php的第413行抛出未捕获的异常:104:需要有效签名。 - diggersworld
@diggersworld 你是否在某处传递了access_token?也许尝试将其作为参数添加到该数组中。抱歉,我对PHP API不是很熟悉。 - serg
1
我尝试调整代码,但没有成功...所以我放弃使用库,改为手动操作。基本上是从Facebook获取所有用户的好友,然后将它们与我的数据库系统中的内容进行匹配。 - diggersworld

2

您可以始终使用应用程序令牌向以下URL发出请求:

https://graph.facebook.com/user_id/friends?fields=id,name,installed

然后只需按照安装参数过滤用户。对于用户的朋友,您可以使用客户端令牌进行相同操作。


你好...在多个帖子中发布相同的重复答案并不是很有用,特别是当这些问题已经很旧并且已经有了被接受的答案时。这种活动看起来有点像垃圾邮件,对我们的社区来说并不好。谢谢。 - Kev
1
这个问题涉及到两个不同的主题(可能还有更多),由于我正在处理相同的问题,所以我发布了它。所以这不是垃圾邮件。 至于答案,它已经过时了。 - Andrey Nikishaev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接