【问题标题】:What controls which user posts are visible via the Facebook Graph?哪些用户帖子通过 Facebook 图表可见?
【发布时间】: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查看公共数据?

[*] 使用网址:https://www.facebook.com/dialog/oauth?client_id=MY_APP_ID&redirect_uri=https://www.facebook.com/connect/login_success.html&scope=manage_pages,read_stream,read_requests,user_location,user_activities&response_type=token

【问题讨论】:

  • 您确定您的应用具有“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


【解决方案1】:

我明白你在说什么,我自己测试过,我得到了同样的结果。 以下是我的想法,但这只是一个猜测。

从我刚刚的测试来看,使用图形浏览器应用时返回的数据是用户的公共数据,比如新朋友和公共帖子。 如果我去 facebook 中的用户个人资料,我可以看到相同的确切数据。

为什么您的应用没有获得这些公开数据? 好吧,Facebook 为某些应用程序授予特殊权限,对于他们的应用程序图形浏览器来说,认为他们这样做并不牵强。 为了测试这个理论,我删除了我对图形浏览器的所有权限,并试图获取不是我朋友的用户的帖子,实际上我得到了相同的结果。 当我用“我/帖子”测试它时,我得到了我的帖子,而不仅仅是公开的帖子。 如果您从自己的应用程序中删除权限,那么即使您的帖子也会返回 data: []

您的应用只能获取登录用户及其朋友的数据。

【讨论】:

  • 感谢您的帮助。如果他们的浏览器应用程序可以访问我的任何应用程序都无法访问的数据,那么他们基本上已经提高了我的希望,只是为了破灭他们,不是吗? :-( 不过,至少它不是人们可以使用资源管理器访问非公开数据的安全漏洞。
  • 资源管理器工具只是为了帮助您进行开发,因此它可以让您看到您作为登录用户可以看到的内容。文档是您可以做的更好的来源。
猜你喜欢
  • 2014-04-06
  • 2012-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-26
  • 2017-09-01
  • 1970-01-01
相关资源
最近更新 更多