Задать вопрос
dubr
@dubr
пыхарь

Правда ли Facebook API последних версий не позволяет получить ленту (newsfeed)?

Привет! У меня вроде бы простейшая задача - получить по API мою ленту (то, что я вижу, то есть посты друзей и групп, на которые я подписан), ну и дальше как-то обработать.

Полез изучать API. Вроде бы самый подходящий ресурс - /{user-id}/home:

This endpoint returns posts a person sees in their News Feed. The posts returned by this API may not be identical to the posts a person would see on facebook.com or in Facebook's mobile apps.


Только вот он помечен как устаревший:

As of October 6th, 2015, this endpoint is no longer available. Please consider using the /user-id/feed edge instead.


Хотя в Graph Explorer можно переключиться на версию 2.3 (с актуальной на данный момент 2.8) и убедиться, что это как раз то, что надо.

Рекомендованный в качестве альтернативы /user-id/feed/ как-то слабо подходит, потому что он показывает хронику юзера, то есть посты, которые он запостил и в которых его отметили:

The feed of posts (including status updates) and links published by this person, or by others on this person's profile.


Пока лучшее, что пришло в голову - использовать запрос типа /me/friends/?fields=last_name,posts.since(2017-02-01) - то есть все мои френды, и для каждого показать посты, написанные после такой-то даты. Аналогичный финт можно сделать для групп (/me/likes/?...). Но тут много очевидных косяков. Два запроса. Надо запоминать дату. Френдов и группы, где нет постов, эти запросы тоже показывают. Пагинация происходит не по постам, а по френдам. Страницы, на которые я подписался, но не залайкал, надо получать как-то еще. Короче косо.

UPD: запрос на /me/friends/?fields=last_name,posts.since(2017-02-01) не канает, потому что:

In v2.0 of the Graph API, calling /me/friends returns the person's friends who also use the app.


Скажите, может все-таки есть какой-то очевидный способ? Спасибо.
  • Вопрос задан
  • 313 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
zoonman
@zoonman
⋆⋆⋆⋆⋆
К сожалению, здесь нет очевидного способа. Facebook нарочно запретил доступ к этому API.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы