【问题标题】:Facebook Graph API only returning 50 commentsFacebook Graph API 仅返回 50 条评论
【发布时间】:2012-06-29 03:19:55
【问题描述】:
我正在使用koala gem,如Railscasts episode #361 中所示。我正在尝试获取给定帖子的所有 cmets,但 Facebook 似乎只将帖子上的最后 50 个 cmets 还给我。这是 Facebook Graph API 的限制还是我做错了什么?
fb = Koala::Facebook::API.new oauth_token
post = fb.get_object(id_of_the_post)
comments = fb.get_object(post['id'])['comments']['data']
puts comments.size # prints 50
【问题讨论】:
标签:
ruby
facebook-graph-api
railscasts
koala
【解决方案1】:
当帖子数量大于设置的限制(在您的情况下为 50)时,Graph API 会对结果进行分页。
为了访问下一页结果,调用“next_page”方法:
comments = fb.get_object(post['id'])
while comments['comments']['data'].present?
# Make operations with your results
comments = comments.next_page
end
另外,通过查看源代码可以看到“get_object”方法接收 3 个参数:
def get_object(id, args = {}, options = {})
这样,您可以将每页的帖子增加到您想要的任意数量的帖子:
comments = fb.get_object(post['id'], {:limit => 1000})