1

我正在提出如下请求:

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 浏览器具有访问公共数据的特权,而其他应用程序无法获得。真的是这样吗,或者我可以用我的应用程序做些什么来查看公共数据/posts

[*] 使用 URL: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 =令牌

4

1 回答 1

1

我明白你在说什么,我自己测试过,我得到了同样的结果。这是我认为正在发生的事情,但这只是一个猜测。

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

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

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

于 2012-05-10T17:49:13.883 回答