我正在使用考拉宝石作为 Railscasts 第 #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
当帖子数大于设置的限制(在本例中为 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})