我在koala中使用Railscasts episode #361宝石。我试图得到一个特定帖子的所有评论,但Facebook似乎只是给了我回复帖子上的最后50条评论。这是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
答案 0 :(得分:4)
如果帖子的数量超过设置的限制(在您的情况下为50),则图表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})