Facebook Graph Api json缺少帖子

Ale*_*ska 13 facebook facebook-graph-api

我正在开发一个网络应用程序,连接到Facebook,获取帖子,以及用户喜欢的其他东西.我在使用新闻源(Grap API的家庭连接)从用户页面获取所有帖子时遇到问题.

在我的应用程序中为用户获取访问令牌时,我要求read_stream,user_activities和脱机访问权限.然后,当我使用该令牌时,获取json feed

    https://graph.facebook.com/me/home/?access_token=<retrived_access_token>
Run Code Online (Sandbox Code Playgroud)

一些帖子(显示在用户页面上)丢失了.我发现我的朋友的帖子只能由他们的朋友看到​​,不会显示在该Feed中.同样的问题是当前我订阅的用户帖子.

我正在搜索那段时间,我发现,当我使用来自http://developers.facebook.com/docs/reference/api/的链接来获取我的新闻源时,还有更多的帖子.它似乎使用为facebook api为测试控制台应用程序生成的令牌.

然后我尝试生成访问令牌,使用http://developers.facebook.com/tools/explorer?method=GET给我类似的结果.但即使我向生成的令牌提供所有可能的权限,我也无法使其正常工作,但仍有一些缺失的帖子.

我在那篇文章中读到了答案,Facebook图形API没有返回用户的所有帖子,这表明这是因为发布帖子的人员设置的权限,他们不希望应用程序检索他们的数据.我运行了一些快速测试,我发现更改该设置是有效的(当有人更改该设置时,她的帖子​​将从两个提要中消失 - 使用我的app标记为用户,以及在api参考页面上的链接下),但它不是案子.

似乎在api参考页面上生成的此令牌具有特殊权限.

我真的需要从用户页面获得尽可能多的帖子.我知道我不会被他们的作者阻止,但是由于我的许多用户订阅了其他用户,我真的需要访问用户页面上显示的那种帖子.

我还阅读了Facebook图形API:json响应中缺少的feed,但它也没有帮助.

我真的很感激任何帮助.

zac*_*lia 4

不可能从 feed / home Graph API 获取完整的帖子列表,但您可以使用 FQL 查询表stream以获取朋友发布的几乎所有帖子,这里有一个快速示例,说明如何使用 javascript 执行此操作开发工具包:

var query = 'SELECT post_id FROM stream WHERE filter_key = "others"';
FB.api('fql', {'q': query}, function(posts) { console.log(posts.data); });
Run Code Online (Sandbox Code Playgroud)

这将为您提供帖子 ID,然后您可以将其与图形 api 一起使用来获取其余的帖子信息。或者您可以在此处获取完整的字段列表,您无法在 FQL 中选择 *,因此您必须列出您想要的每个部分,然后分别获取评论、喜欢和名称。

  • @studgeek这是不可能的,因为Facebook拒绝返回所有未经过滤的帖子,并且因为朋友的隐私设置专门阻止来自应用程序的对象,即使它们在常规Facebook上没有被阻止 (2认同)