在我的应用程序中,大多数公开帖子在通过Graph API访问时似乎都返回'false'。
示例:https://graph.facebook.com/1543370206_2215254431220?access_token=XXXX
该帖子是公开可见的,但查询上述内容始终返回false。
根据StackOverflow上的类似问题,我尝试使用应用程序访问令牌和使用offline_access的几个不同的oAuth 2.0用户访问令牌,但没有成功。
我也尝试使用profileid_postid ID格式(如上所述)和postid格式(https://graph.facebook.com/2215254431220?access_token=XXXX)访问它,但没有运气。
我也在24小时后重试,以确保我没有超过任何API限制。
我已经测试了超过1,000个公开帖子(我知道它们是公开的,因为我是使用搜索方法从Graph API获得的,但我也在浏览器中做了一些随机抽样以确定)。 75%返回false(无论我是否使用了应用程序访问令牌或用户访问令牌)。
答案 0 :(得分:9)
我想我已经解决了。
返回虚假的帖子并非“公开”。它们似乎对任何Facebook用户都是可见的,无论他们是否是作者的朋友。但是,如果您没有登录Facebook,则无法看到它们。
成功的职位真正公开。他们中的大多数属于公司等,你可以看到他们是否登录到Facebook。
我想Graph API区分了这两种类型的可见性,例如: “Facebook上的每个人”和“互联网上的每个人”。我查看了我的隐私设置,但无法弄清楚这是如何完成的。
无论如何,这在Graph API文档中没有详细记录。也不是回归'假'来处理这个错误的优雅方式。允许我通过搜索查看帖子,但不直接查询对象也不一致。
答案 1 :(得分:1)
我知道这个问题已经超过一年了 - 但如果您使用页面访问令牌,Graph将返回正确的对象。
通过询问用户MANAGE_PAGES
权限,然后获取用户的/ Account连接,可以获得这些权限。连接中的每个条目都将包含一个pageid和一个特定于页面的访问令牌 - 此令牌将允许您从图中获取所有页面对象。如果您使用自己的app-token或用户拥有的令牌,则会返回false
。
答案 2 :(得分:0)
您应该考虑向Facebook提交错误报告。为了解决这个问题,我注意到这些公开帖子只有在用户对象发布时才会返回false。页面对象的帖子按预期工作。你没有做错任何事,因为这发生在Facebook's Graph API Explorer中(这是Facebook在其API文档中提供的用于查询公共帖子的示例)。