通过图形 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 图形 API 仅返回某些网站的名称和 ID