【发布时间】:2023-03-28 13:43:02
【问题描述】:
我提出如下请求:
https://graph.facebook.com/USER_ID/posts?access_token=TOKEN
当 TOKEN 来自 Graph API Explorer(来自 https://developers.facebook.com/tools/explorer 以我自己的用户帐户登录)时,我会看到大多数用户的一些帖子。
当 TOKEN 是我自己的应用程序和我自己的用户帐户的用户令牌时,由客户端流程 [*] 产生,我几乎可以看到 { "data": [] }。
什么可能导致差异?据我所知,这两个令牌被赋予了相同的权限(对于这两个令牌,我从https://graph.facebook.com/me/permissions?access_token=TOKEN 获得了相同的回报)。
我能想到的是,我正在寻找的帖子的用户不是我的应用程序的用户,但也许每个人都神奇地成为了 API Explorer 的用户。但是我想看到的关于他们的信息对我来说是可见的,无论是在他们的用户页面上,还是从使用 API Explorer 令牌的 Graph 中,所以这肯定不是安全限制:我可以获得向我显示我想要的信息的令牌,但我的应用程序不能。因此:
- 为什么我在使用我的应用时看不到帖子?
- 我该怎么办?
- 我们目前的理论是 API Explorer 具有访问公共数据的特权,而其他应用程序无法获得。真的是这样吗,或者我可以对我的应用做些什么来通过
/posts查看公共数据?
【问题讨论】:
-
您确定您的应用具有“read_stream”扩展权限吗?
-
@NitzanTomer: graph.facebook.com/me/permissions 表示我的应用程序的用户令牌具有
"installed": 1, "read_stream": 1, "read_requests": 1, "manage_pages": 1, "user_location": 1, "user_activities": 1。我是否还需要我正在查询的用户给我read_stream权限?如果这就是区别,那么所有这些用户是什么时候授予 Graph API Explorer 权限的?我不相信他们都恰好是使用过它的 Facebook 应用程序开发人员。 -
不,“read_stream”应该让你得到登录用户的朋友的帖子。我刚刚在资源管理器中自己测试了它,我删除了一个我拥有的测试应用程序并重新添加了只有“read_stream”权限,我得到了我朋友的帖子。请记住,它仅适用于当前登录用户的朋友。我建议您使用带有 DELETE 的资源管理器作为路径“我/权限”,然后再次单击“获取访问令牌”按钮。
-
@NitzanTomer:这些用户不是我的朋友。尽管如此,我可以使用 Graph API Explorer 令牌在他们的
/posts连接中看到东西。所以也许这里的特殊之处不是我的应用程序的用户令牌什么都没有显示,而是 API Explorer 显示了任何东西。它显示的实际上是状态,但我仍然想了解它和我的应用程序之间的区别。
标签: facebook facebook-graph-api facebook-access-token