我正在使用 Facebook API 获取用户的新闻提要并在页面上显示一些数据。但是,我在使用墙贴时遇到了麻烦。 API 返回的数据将墙贴视为用户发布的“状态”更新,并且数据不包含说明墙贴的收件人的字段。是否可以查询一个项目来检查它是否是墙贴?或者有什么方法可以让我收到收件人的姓名?
这是我用来获取用户新闻提要的代码:
FB.api('/me/home', function (response) { console.log(response) });
墙贴只会给我消息
(墙贴的内容)和状态
的类型
。例如:
如果 Oliver 在 John 的墙上写下:“嗨”,Facebook 会给我:
{
from: {
name: "Oliver"
},
message: "Hi",
type: "status"
}
没有什么可以告诉我这是一个墙贴,也没有告诉我收件人是谁。结果确实包括一些其他任意数据,但没有任何帮助(id
、created_time
等)
最佳答案
Facebook 使这个话题过于困惑。只需阅读他们关于 Graph API 中用户对象的文档,您就会猜测:http://developers.facebook.com/docs/reference/api/user/
/user/feed 用户的墙。
/user/home 用户的新闻提要。
更新:/user/home 端点现已弃用 [07.06.2020],看起来现在没有任何可能获取新闻提要,请参阅 graph api user news feed
/user/statuses 用户的状态更新。
为什么他们不能将“wall”/user/wall 和“news feed”/user/newsfeed “status updates”设置为/user/statusupdates 很简单,我永远不会知道!
因此,要获取状态更新列表,请对当前用户执行 HTTP 获取 http://graph.facebook.com/me/statuses?access_token=ValidUserAccessToken
。
要获取墙流项目列表,请对当前用户执行 HTTP 获取 http://graph.facebook.com/me/wall?access_token=ValidUserAccessToken
。
要获取主页提要流项目的列表,请为当前用户执行 HTTP 获取 http://graph.facebook.com/me/home?access_token=ValidUserAccessToken
。
当您遇到“from”并且想知道它是给谁时,它是“给”您在调用 /me/....
时使用的访问 token 的用户,或者如果您的使用特定 ID /UserId/...
调用,那么它将成为“to”的用户 ID。
另一个想法:从流 FQL 表对象 (developers.facebook.com/docs/reference/fql/stream) 中获取完整的对象,看看是否有一些信息没有通过 Graph 对象公开。
关于Facebook API - 带有墙贴的新闻提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9575782/