Как я могу получить полную ленту новостей пользователя через API Facebook? - PullRequest
8 голосов
/ 25 сентября 2011

Я бы хотел получить полную ленту новостей, включая исторические данные данного пользователя.В принципе, это просто, используя аутентифицированный вызов Graph API или FQL API.

С Graph API я получаю доступ к конечной точке me/home.В результате 25 записей.Я могу перебирать страницы и возвращать около 8 страниц в историю, давая мне около 200 записей.Я пишу около 200 записей, потому что с каждым прогоном я получаю разное количество общих записей.Иногда больше, иногда меньше.

С FQL API я звоню SELECT post_id, created_time, actor_id, message FROM stream WHERE filter_key = 'nf' AND is_hidden=0 AND created_time > 1262304000 LIMIT 500, где время создания соответствует 1 января 2010 года. Это дает мне около 150 записей.

Оба метода, похоже, не позволяют вам вернуться в историю.В запросе FQL я также попытался поиграться с полем created_time и LIMIT, чтобы вернуться назад небольшими порциями, но это не сработало.

Документация к таблице stream http://developers.facebook.com/docs/reference/fql/stream/ говорит как-то загадочно:

Представление профиля, в отличие от представления домашней страницы, возвращает более старые данные из наших баз данных.

Представление домашней страницы - насколько я понимаю- другое слово для новостной ленты, так что это может означать, что то, что я хочу, вообще невозможно даже сделать?

Что еще хуже (но это не главная тема этого вопроса) возвращенные наборы данных издва метода отличаются .Оба содержат записи, которые другой не показывает, но у них также есть много общих записей.Что еще хуже, то же самое верно по сравнению с реальной новостной лентой на веб-сайте Facebook.

У кого-нибудь есть опыт или более глубокие идеи по этому поводу?

1 Ответ

1 голос
/ 25 сентября 2011

Может быть, я неправильно понимаю ваш вопрос, но разве вы не можете просто назвать график api с / me / home? Limit = 5000, а затем? Limit = 5000 & offset = 5000 или любым другим максимальным значением, которое позволяет Facebook?1001 *

...