如何从特定日期的Facebook用户新闻Feed获取所有帖子

时间:2012-04-04 19:39:00

标签: ruby-on-rails facebook facebook-graph-api

我想构建一个网站,向用户显示他的朋友在Facebook上发布的所有视频,我知道如何为最近的帖子提取新闻,但我不知道如何在特定日期提取所有帖子(从一天开始的所有帖子。)

我使用此FQL调用来提取最近的视频:

SELECT post_id, source_id, actor_id, target_id, message, attachment, permalink, type FROM stream 
WHERE source_id IN (SELECT target_id FROM connection WHERE source_id=me() AND is_following=1) 
AND is_hidden = 0 
AND type = 80 
AND strpos(attachment.href, "youtu") >= 0

但我不知道如何将所有视频从当天开始拉到结束......

编辑:

现在我的代码中有你的答案:

@feed = Koala::Facebook::API.new(current_user.token)
to = Time.now.to_i
yest = 1.day.ago.to_i
@feed.fql_query("SELECT post_id, actor_id, target_id, message, likes FROM stream WHERE source_id = me() AND created_time > #{yest} AND created_time < #{to} AND type = 80 
AND strpos(attachment.href, "youtu") >= 0")

并且feed变量返回#而不是json,如何从此变量中获取json?

1 个答案:

答案 0 :(得分:3)

使用FQL可能是您最好的选择。您将需要用户的read_stream权限。

您可以使用Koala gem并运行以下内容:

require 'koala'
@graph = Koala::Facebook::API.new("YOUR_ACCESS_TOKEN")
@graph.fql_query("SELECT post_id, actor_id, target_id, message FROM stream WHERE source_id = me() AND created_time > START_TIME AND created_time < END_TIME LIMIT 10")

START_TIMEEND_TIME都应该是unix时间戳。在您的情况下,代表一天的开始和结束。