Facebook Graph API возвращает только 50 комментариев

Я использую гем koala, как показано на Эпизод №361 Railscasts. Я пытаюсь получить все комментарии к данному сообщению, но 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

person Kyle Decot    schedule 29.06.2012    source источник


Ответы (1)


Graph API разбивает результат на страницы, когда количество сообщений превышает установленный предел (в вашем случае 50).

Чтобы получить доступ к следующей странице результатов, вызовите метод 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})
person gvoicu    schedule 14.08.2012