3

是否可以使用 FQL 获取用户的提要?像 graph.facebook.com/user/feed 一样获得同样的效果

4

4 回答 4

4

cpilko 的回答中提到的请求将为您提供当前用户的新闻源(即相当于 Graph API 的 /me/home)。因此,我认为这个答案不应该被接受。

至于当前用户的时间线(即相当于 Graph API 的 /me/feed): 仅通过一个请求就无法轻松获取此信息,因为时间线包含不同的信息:

  • 它包含当前用户的状态更新。
  • 它包含其他用户针对当前用户的帖子。
  • 它不包含当前用户针对其他用户、事件等的帖子。
  • 它不包含当前用户既没有消息文本也没有附加照片、链接或地点的故事。*

*:我不能 100% 确定最后一个,因为这方面的信息充其量只是粗略的。有不同的帖子类型(我还没有看到完整的列表),并且似乎有某种逻辑,哪些类型显示在时间轴上,哪些类型不显示。正如我所说,文档是粗略的,Facebook 似乎不希望您获得与他们完全相同的数据。

现在回答您的问题:如果您打算将用户的时间线作为您的应用体验的一部分,您可能应该瞄准最佳猜测方法。

这是一个我发现非常接近的示例(除了它不会让您在时间轴上发布朋友的帖子,但正如我所说:最好的猜测):

SELECT post_id, actor_id, target_id, description, message, attachment, type, permalink
FROM stream 
WHERE source_id = me()
AND is_hidden != "true"
AND (type = 46 OR type = 60 OR type = 65 OR type = 80 OR type = 128 OR type = 247 OR type = 285 OR type = 373)
LIMIT 100

顺便说一句,这是迄今为止我找到的最完整的帖子类型列表: 在哪里可以获得所有 facebook 流帖子类型的列表?

希望这会有所帮助,尽管诚然答案并不那么令人鼓舞。:)

于 2013-12-04T18:41:43.777 回答
3

FQL 中的等效表是stream。此查询为您获取活动用户的新闻提要。

SELECT post_id, actor_id, target_id, message FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE uid=me() AND type='newsfeed') AND is_hidden = 0

于 2012-10-22T14:54:43.547 回答
0

你应该这样做

SELECT post_id, created_time, actor_id, target_id, message FROM stream WHERE source_id='SOURCE_ID' AND created_time<1225705644 LIMIT 150

使用您朋友的 ID 设置 SOURCE_ID。

于 2013-04-19T10:50:16.873 回答
0

我认为您应该尝试以下方式:看看它是否有帮助。

SELECT post_id, actor_id, type, permalink, message, created_time, likes, comment_info FROM stream WHERE source_id = me() AND app_id = AppID

如果您传递应用程序 ID,那么它将仅返回从该应用程序发布的您的朋友提要。

于 2013-05-07T11:33:45.257 回答