2011-10-05 84 views
13

我正在开发一个Web应用程序,它连接到Facebook,以获得帖子,以及用户喜欢的其他东西。我有使用新闻提要(家庭连接的Grap API)从用户页面获取所有帖子的问题。Facebook Graph Api json丢失的文章

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

https://graph.facebook.com/me/home/?access_token=<retrived_access_token> 

某些帖子(显示在用户页面上)缺失。我发现我的朋友的帖子,只有他们的朋友才能看到,并未显示在该Feed中。同样的问题是当前我正在订阅的用户帖子。

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

然后我试图生成访问令牌,这会给我使用http://developers.facebook.com/tools/explorer?method=GET类似的结果。但即使我给生成的令牌所有可能的权限,我无法让它工作良好,仍然有一些丢失的帖子。

我阅读该帖子中的回复,Facebook graph API does not return all posts for user,这表明这是由于我的发布帖子的人员设置的权限,他们不希望他们的数据被应用程序检索到。我运行了一些快速测试,发现改变设置正在工作(当有人更改设置时,她的帖子​​将从两个Feed中消失 - 即使用我的应用令牌给用户,并在api参考页面上的链接下),但它不是案子。

看来,这个标记在API参考页面上生成有一个特殊的权限。

我真的需要从用户页面获得尽可能多的帖子。我知道我不会让他们的作者被封锁,但是我的许多用户订阅了其他用户,我真的需要访问用户页面上显示的帖子。

我也读Facebook graph API: feeds missing in json response但它也没有帮助。

我会很感激任何帮助。

+1

我已经设法回答了我的大部分问题[here](http:// stackoverflow。com/questions/6214535/what-is-the-difference-between-feed-posts-and-statuses-in-facebook-graph-api/7983267#7983267),但是我仍然会奖励任何明确而有用的答案这可以补充这些信息。 –

回答

4

要从Feed/Home Graph API获取完整帖子列表是不可能的,但您可以使用FQL查询stream表以获取几乎每个朋友发布的帖子,下面是一个快速示例做到这一点使用JavaScript SDK:

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

这将让你的帖子的ID,然后你就可以用图形API使用来获取信息后的剩余部分。或者你可以在这里得到完整的字段列表,你不能在FQL中选择*,因此你必须列出你想要的每一个片段,然后分别获得评论和喜好和名字。

+0

另外,FQL支持您需要添加以获得更多结果的LIMIT – zachallia

+0

你知道为什么它几乎不可能吗?我似乎无法找到明确的答案。 – studgeek

+2

@studgeek这是不可能的,因为Facebook拒绝未经过滤的所有帖子,并且因为朋友拥有隐私设置,即使他们没有在正常的Facebook – zachallia