我希望能够通过 FQL 或 Graph API 从一组使用 Koala gem 的 Facebook 用户返回帖子的 JSON 列表。目前我正在使用考拉的批处理功能从每个用户提要中调用前“x”个项目,然后展平数组并按时间排序。这样做的问题是,我希望能够获得第一个“x”个项目,而不是从每个用户那里获得 10 个,而只是从我查询的用户那里获得 10 个最近的帖子,这样我就可以检索下一个10 来自类似于您对自己的家庭饲料的期望。
这是我目前拥有的:
@oauth = Koala::Facebook::OAuth.new
@access_token = @oauth.get_app_access_token
@graph = Koala::Facebook::API.new(@access_token)
artists = []
followings.each do |following|
artists << following.artist
end
feed = @graph.batch do |batch_api|
artists.each do |artist|
feed | batch_api.get_connections(artist.facebook, "feed", {"limit" => "10"})
end
end
feed.flatten!
feed.sort! { |x, y| y["created_time"] <=> x["created_time"] }
编辑
我相信我已经找到了一种可能的 FQL 解决方案,如下所示
batch_api.fql_query("SELECT post_id, source_id, likes, actor_id, message, type FROM stream WHERE source_id IN(artist1, artist2...)")
但我现在返回了错误
[#<Koala::Facebook::APIError: OAuthException: (#606) Queries for multiple source_ids require a non-zero viewer that has granted read_stream permission>]
问题是我的应用程序不需要某人使用 Facebook 登录,因此我无法请求 read_stream 权限。无论如何,Facebook 应用程序本身可以请求这个吗?