Facebook FQL. Какой самый простой способ получить все изменения страницы в одном запросе, упорядоченные по дате / времени? - PullRequest
0 голосов
/ 30 октября 2011

Мне нужно отслеживать одну страницу и все связанные действия. Вот результат, который я пытаюсь достичь:

29/10 - User: John - Action: Like    - Object type: status - Object id: 123456
29/10 - User: Mary - Action: Comment - Object type: status - Object id: 123343
29/10 - User: Etan - Action: Tagged  - Object type: status - Object id: 123537
29/10 - User: Arth - Action: Like    - Object type: status - Object id: 123876
29/10 - User: Jack - Action: Post    - Object type: status - Object id: 123423
29/10 - User: Jack - Action: Photo   - Object type: photo - Object id: 123423

Вы можете взять в качестве примера поиск по термину, который обеспечивает все, как ожидалось. За один раз мы заказали комментарии, сообщения, статусы и фотографии, начиная с указанной даты / времени:

https://graph.facebook.com/search?q=watermelon&type=post

Поскольку нет способа сделать это простым, как /search?q=, как я могу сделать это с FQL?

Должен ли я использовать таблицу stream? В таком случае, какой фильтр из stream_table следует применить?

Есть ли простой способ сделать это, или я должен получить все в отдельных запросах?

(Если это поможет: я использую Facebook PHP SDK)

Ответы [ 2 ]

1 голос
/ 21 ноября 2011

Мы также используем эту технику, но проблема все еще существует.Таблица потоков возвращает Топ сообщений канала, а не Самый последний один ДАЖЕ, если вы указали ORDER BY updated_time DESC .

Так что вы можете пропустить посты, особенно посты от фанатов.Мы не нашли решения этой проблемы ...

1 голос
/ 02 ноября 2011

Я недавно столкнулся с той же проблемой.Первоначально я думал, что соединение страницы feed будет тем, что мне нужно, но оказывается, что если вы сортируете по since или until, он будет искать атрибут created_at сообщения.Это означает, что комментарии к более старым сообщениям не будут отображаться.

Лучшее решение, которое я смог найти, - это сначала выполнить FQL-запрос к таблице stream, чтобы получить идентификаторы сообщений:

SELECT post_id FROM stream WHERE source_id = {PAGE_ID} AND updated_time > {TIME}

, а затем просто получите все сообщения сразу:

https://graph.facebook.com?ids=ID1,ID2,ID3...
...