Facebook图形API:json响应中缺少feed

时间:2011-01-07 02:48:46

标签: facebook facebook-graph-api

我尝试通过Android应用程序中的图形api获取用户的Feed。它通常有效但在json响应中缺少我可以在墙上看到的一些馈送。

我通过使用Android Facebook SDK方法调用网址http://graph.facebook.com/someUserId/feed,因此应该自动提供访问令牌,但在我的情况下,它与我认为并不相关。然而,我的应用程序的用户通过OAuth进行身份验证。

我已经检查了以下内容:

  • 所有用户的供稿均可供所有人/公众使用(在隐私设置中设置)
  • 我的浏览器没有缓存json响应
  • 我知道分页,但这不是问题。问题不在于我没有获得最老的Feed,而是某些Feed只是缺少介于之间。
  • 我注册了一个新的Facebook用户,该用户没有连接到我想要检索墙上供稿的用户,当我打开相应的墙时,我会看到所有的Feed,正如预期的那样,因为它们都是公开给所有人的。然而,当我打开相同的相关json url unter http://graph.facebook.com/someUserId/feed时,会丢失一些Feed。

这是问题的一个例子 - 由于我的所有帖子都是公开的,我可以直接在浏览器中调用json url来进行测试。

我想从用户那里获得墙信息: http://www.facebook.com/mathias.lin

屏幕截图1:记下3个标记的帖子,全部由我自己发布

alt text

在这里json响应,正如你所看到的,第1和第3个墙贴包含在json中,但第2个帖子不包含在json中。为什么呢?

相关的json网址是: http://graph.facebook.com/mathias.lin/feed

alt text

当我向网址添加access_token时,我收到了“丢失”的Feed,但为什么呢?已发布的Feed有“每个人”的隐私设置?

这是我在使用access_token时缺少的Feed:

{"id":"504063796_485195138796","from":{"name":"Mathias Lin","id":"504063796"},"message":"Photo test upload from Android","picture":"http:\/\/photos-e.ak.fbcdn.net\/hphotos-ak-snc6\/hs021.snc6\/165194_485195123796_504063796_6062399_1841907_s.jpg","link":"http:\/\/www.facebook.com\/photo.php?fbid=485195123796&set=a.485195118796.256450.504063796","name":"Torres Photos","icon":"http:\/\/static.ak.fbcdn.net\/rsrc.php\/yz\/r\/StEh3RhPvjk.gif","actions":[{"name":"Comment","link":"http:\/\/www.facebook.com\/504063796\/posts\/485195138796"},{"name":"Like","link":"http:\/\/www.facebook.com\/504063796\/posts\/485195138796"}],"privacy":{"description":"Everyone","value":"EVERYONE"},"type":"photo","created_time":"2011-01-06T05:10:43+0000","updated_time":"2011-01-06T09:00:23+0000","likes":6,"comments":{"data":[{"id":"504063796_485195138796_3607414","from":{"name":"Mathias Lin","id":"504063796"},"message":"Awesome, photo upload now works as well. Not so much fun working with the Facebook SDK for Android, would have expected more functionality beyond that just very very simple graph api wrapper. But need to be considered that the android sdk development was part of an internship - but since it's it's open source, it can luckily be modified. Which has to be done due to some bugs (mixing up the bundle parameters for a post, getString, getByteArray). Api documentation could be improved.","created_time":"2011-01-06T05:26:04+0000"},{"id":"504063796_485195138796_3608020","from":{"name":"Renate Hermanns","id":"628810487"},"message":"Wow
, how fast time passes by. Your daughter is nearly grown up ;-).","created_time":"2011-01-06T09:00:23+0000"}],"count":2},"attribution":"Torres"}

我已经将问题发布到FB开发论坛,等待回复。

相关主题:

http://forum.developers.facebook.net/viewtopic.php?id=81365

http://forum.developers.facebook.net/viewtopic.php?id=75984

Facebook Graph API "/userid/feed" returning Blank

3 个答案:

答案 0 :(得分:4)

您的方法是正确的,我已经看过JSON,是的,它错过了第二个,我认为它上传应用程序形式为adroid,请尝试检查此应用程序的应用程序设置。或者如果你试图检索墙FQL是一个更好的方法

SELECT post_id, actor_id, target_id, message FROM stream WHERE source_id in (SELECT target_id FROM connection WHERE source_id=<uid> AND is_following=1) AND is_hidden = 0 

答案 1 :(得分:0)

我经历过这种情况,Facebook 分类他们的权限的方式在某种程度上是误导性的,例如Publicly available可能听起来像Available to everyone on Facebook,但显然不是。{1}}。

现在,如果您已经对用户进行了身份验证,请尝试使用:

/me/feed

我想这是唯一一种在网址中不需要access_token的情况。

答案 2 :(得分:0)

我有类似的问题。但对我来说,问题与首次登录时未正确设置范围(授权应用程序)有关。我发布了一个类似的问题,得到了一个对我有用的答案:

Facebook API how to get all wall items