通过图形 API 检索 facebook 用户墙帖子

Posted

技术标签:

【中文标题】通过图形 API 检索 facebook 用户墙帖子【英文标题】:Retrieving facebook user wall posts through graph API 【发布时间】:2012-02-18 08:50:49 【问题描述】:

我目前正在开发一个 facebook 应用程序,该应用程序捕获指定用户、页面或组的墙帖,在用户授权该应用程序后,我引用返回的 access_token 以调用该方法

https://graph.facebook.com//feed?access_token=

这适用于页面和组,因为我们只需要一个有效的令牌,但是对于用户,结果会有所不同,具体取决于授权应用的用户与正在捕获其帖子的用户之间的关系。

例如,如果两个用户之间没有关系,一些帖子即使是公开的并不会在您查看用户的个人资料时显示出来,但如果他们是朋友,则会返回更多帖子。

有人可以解释一下这种行为吗?使用这种方法可以获取所有帖子吗?

【问题讨论】:

【参考方案1】:

是的,根据https://developers.facebook.com/docs/reference/api/permissions 中列出的权限,调用结果因关系而异。

但是,当事情是公开的并且您使用不属于用户的访问令牌时,则不会返回任何结果。我不记得有一次不是这样的。由于某些奇怪的原因(Facebook 的设计或遗漏),使用图形 API 使用用户访问令牌获取公共帖子只是不想工作。

例如,你可以在这里看到一些公共项目

http://www.facebook.com/zuck http://graph.facebook.com/zuck

但是,如果没有访问令牌,您似乎无法从这里获取任何提要

https://graph.facebook.com/zuck/feed


   "error": 
      "message": "An access token is required to request this resource.",
      "type": "OAuthException"
   

让我们尝试添加一个不属于 zuck 或 zuck 朋友的用户访问令牌。 https://graph.facebook.com/zuck/feed?access_token=UserAccessToken

这就是我们得到的:


   "data": [

   ]

应用访问令牌呢?我们试试吧 https://graph.facebook.com/zuck/feed?access_token=AppAccessToken


   "error": 
      "message": "Invalid OAuth access token signature.",
      "type": "OAuthException"
   

如您所见,很难通过图表获取与您的访问令牌不一致的内容。

【讨论】:

糟糕,我的错,这是错误的 url 复制粘贴。它缺少 /feed 。感谢 Lix 指出错误 我唯一能不费吹灰之力地摆脱他的就是他的灿烂笑容....../zuck/picture 所以这就是您如何快速达到 10K。 ;) 那么您如何让这些公开但无法访问(哇)的帖子? 那么,总而言之,如何获取真实的用户提要而不是空数组?【参考方案2】:

我设法从用户​​的墙帖中获取了大部分供稿。虽然这是一个老帖子,但我希望有人能从我的回答中得到他们想要的。

在获取访问令牌(获取提要)之前,您需要添加多个正确的读取权限“密钥”。 例如,您必须添加“read_stream”和“user_status”(我发现这些是生成正确访问令牌的最重要的权限“密钥” , 以检索一个所谓的“公共”供稿)。

您可以在生成访问令牌时添加更多内容,无论您希望获得 GET、POST 或两者的权限。

来源在这里:https://developers.facebook.com/docs/howtos/ios-6/#nativeauthdialog

我发现的一件事是,从用户的“主页/关于”页面和 Facebook 页面(它是为人们喜欢(而不是添加朋友)创建的)获取提要结果的方式是不同的。上面提到的键是“read_stream”和“user_status”。因此,最好同时添加这两个权限,以便生成访问令牌以获取提要中的所有内容。

【讨论】:

感谢您提供权限密钥提示。我一开始只授予read_stream权限,我可以看到我分享给别人的所有帖子,不知何故我看不到自己的帖子。【参考方案3】:

即使帖子是公开的,如果无权读取用户供稿,Graph API 也不会将帖子返回给应用程序。

来源:https://developers.facebook.com/bugs/290004301178437/

【讨论】:

【参考方案4】:

根据最新的api,

FB.api("/me/feed","get",function(response) //callback)

应该做也很好。 它现在正在运行,但 facebook 将来可能会改变它。

【讨论】:

以上是关于通过图形 API 检索 facebook 用户墙帖子的主要内容,如果未能解决你的问题,请参考以下文章

通过 facebook android sdk 分享墙帖

Facebook 图形 API 仅返回某些网站的名称和 ID

未通过 Graph API 接收 Facebook 图片

假设我无法通过图形 api 获取全局用户 ID,如何使用应用程序打开 facebook url

Facebook 图形 API 事件

通过图形 api 方法 fb.api() 获取页面的选项卡并将选项卡添加到 facebook 页面会导致错误