Facebook Graph API: Как отфильтровать дом и фид по приложению? - PullRequest
4 голосов
/ 27 октября 2011

API Facebook Graph позволяет получить представление JSON дома (новостная лента) и ленты (стена).

Как мне получить сообщения, сделанные моим приложением Facebook?

Ответы [ 3 ]

11 голосов
/ 16 января 2012

Facebook добавил поддержку фильтрации me/home сообщений без использования FQL, передав параметр filter.

Например, чтобы получить только фотографии, которые вы можете сделать: me/home?filter=app_2305272732

Полныйдокументация здесь: http://developers.facebook.com/docs/reference/api/user/#home

2 голосов
/ 27 октября 2011

Теперь вы можете запускать Facebook Query Language (FQL) запросов с использованием Facebook Graph API (базовый URL: https://graph.facebook.com).

Допустим, ваше приложение Twitter. Идентификатор приложения Twitter в Facebook - 2231777543.

Я пришел к FQL-запросам ниже с помощью @ danontheline's answer и внимательно прочитав документацию Facebook по FQL stream & FQL stream_filter .

Особенно важен следующий отрывок:

Если вы укажете filter_key из таблицы stream_filter FQL или несколько пользователей, возвращаемые результаты будут вести себя как домашняя страница пользователя Новостная лента. Если в качестве source_id указан только один пользователь, вы получить вид профиля пользователя или страницы. Вы можете отфильтровать эти профиль просматривать сообщения, указав filter_key 'другие' (только возврат) сообщения, созданные кем-то, кроме указанного пользователя) или "владельцем" (вернуть только сообщения, сделанные указанным пользователем). Вид профиля, в отличие от представления домашней страницы, возвращает более старые данные из наших баз данных. В в случае страницы, вид профиля также включает в себя сообщения фанатов.

Твиттер Твиттера в новостной ленте Facebook

GET /fql?q=SELECT post_id, actor_id, message, app_id, attribution FROM stream WHERE filter_key = 'app_2231777543'

Твиттер Твиттера на стене в Фейсбуке

GET /fql?q=SELECT post_id, actor_id, message, app_id, attribution FROM stream WHERE source_id = me() AND app_id = '2231777543' LIMIT 1000

Выполнение этих запросов с помощью Facebook Graph API Explorer возвращает Facebook Graph API публикует объектов (Набор результатов будет различаться в зависимости от access_token, конфиденциальности и т. Д.). Вы можете узнать больше о каждом сообщении, добавив другие столбцы таблицы потоков к вышеуказанным запросам и / или просто сделав другой запрос API Graph к GET /{post_id} для каждого post_id, возвращенного запросами потока FQL выше.

1 голос
/ 27 октября 2011

Afaik, что невозможно с просто Graph API.Но вы можете просто использовать оператор FQL для извлечения стены / канала.С помощью этого метода вы можете ограничить его сообщениями, сделанными одним actor_id (в данном случае это будет идентификатор вашего приложения):

SELECT post_id, target_id, message FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE uid=me() AND type='newsfeed') AND is_hidden = 0 AND actor_id = 'MattDiPasqualesAppID'

Дело в том, что он не будет возвращать JSON, ноXML-представление результата.С phps DOM class вы легко можете конвертировать его в формат JSON или любое другое представление результата, которое вы хотите получить!

Так как вы все равно можете обрабатывать все с помощью PHPВы также можете просто взять массив json, разобрать его в массив и отфильтровать массив по ключам вашего appID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...