是否可以使用FQL获取用户Feed?

时间:2012-10-20 21:33:43

标签: facebook-fql facebook-wall

是否可以使用FQL获取用户的Feed? 像graph.facebook.com/user/feed

一样

4 个答案:

答案 0 :(得分: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

顺便说一下,这是迄今为止我发现的最完整的帖子类型列表: Where to get a list of ALL facebook stream posts types?

希望这会有所帮助,尽管答案肯定不是那么令人鼓舞。 :)

答案 1 :(得分:3)

FQL中的等效表是stream。此查询会为您提供活动用户的新闻Feed。

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

答案 2 :(得分: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。

答案 3 :(得分: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,则会返回仅从该应用发布的朋友Feed。