我正在提出以下请求:
https://graph.facebook.com/USER_ID/posts?access_token=TOKEN
当TOKEN来自Graph API资源管理器(来自我自己的用户帐户登录的https://developers.facebook.com/tools/explorer)时,我会看到大多数用户的一些帖子。
当TOKEN是我自己的应用程序的用户令牌和我自己的用户帐户(由客户端流程[*]产生)时,我看到几乎每个人都有{ "data": [] }
。
可能导致差异的原因是什么?据我所知,这两个令牌被赋予了相同的权限(我从https://graph.facebook.com/me/permissions?access_token=TOKEN得到两个令牌的相同回报)。
我能想到的是,我正在寻找的帖子的用户不是我的应用的用户,但也许每个人都神奇地是API Explorer的用户。但是我想看到的关于它们的信息在我们的用户页面和使用API Explorer令牌的Graph中都是可见的,所以这肯定不是安全限制:我可以得到一个令牌显示我想要的信息,但我的应用程序不能。因此:
/posts
查看公共数据?答案 0 :(得分:1)
我看到你在说什么,我自己测试了,我得到了同样的结果。 这就是我的想法,但这只是猜测。
根据我刚刚测试的内容,使用图形浏览器应用程序时返回的数据是用户的公共数据,如新朋友和公共帖子。 如果我在Facebook中查看用户的个人资料,我可以看到相同的确切数据。
为什么您的应用无法获取该公开数据? 好吧,Facebook授予某些应用程序特殊权限,而对于图形资源管理器,这是他们的应用程序,认为他们就是这样做并不遥远。 为了测试这个理论,我删除了我对图浏览器的所有权限,并尝试获取不是我朋友的用户的帖子,实际上我得到了相同的结果。 当我用“我/帖子”测试它时,我得到了我的帖子,而不仅仅是公开的帖子。 如果您从自己的应用中删除了权限,那么即使您的帖子也会返回数据:[] 。
您的应用只能获取登录用户及其朋友的数据。