Идентификатор события / комментарии API Graph Facebook? С =2014-02-01 и до =2014-02-10, фильтр даты не действует
- Я пытаюсь добавить комментарии к определенному событию, настроив таргетинг на этот URL:
https://graph.facebook.com/1466384840257158/comments
- Я передаю user_access_token
- У меня есть два комментария в настоящее время по этому событию, сделанные в тот же день (2014-03-29)
- Теперь я пытаюсь передать дату, которая должна привести к пустому результату данных / объекту, например так:
https://graph.facebook.com/1466384840257158/comments?since=2011-01-01&until=2014-01-10
- Этот запрос не имеет никакого эффекта, он все еще показывает мне два комментария, сделанные 29-го
- Я пробовал такой же диапазон дат на своем идентификаторе пользователя / канале, и он дал мне пустой объект данных.
- Наконец, я попробовал идентификатор события / канал (перед тем, как попробовать фильтр даты), и он дал мне следующую ошибку
,
{
"error": {
"message": "An unexpected error has occurred. Please retry your request later.",
"type": "OAuthException",
"code": 2
}
}
Не могли бы вы рассказать мне о фильтре даты по этому конкретному запросу (point4) или если у вас есть какая-либо другая идея использовать фильтр даты в комментариях к событию.
3 ответа
Комментарии используют пагинацию на основе курсора, поэтому вы не можете использовать since
или же until
на конечной точке комментариев (эти параметры будут работать, например, для feed
конечная точка).
Чтобы получить комментарии во временном диапазоне, вы должны получить все комментарии от СЕЙЧАС до начала временного диапазона, например. с https://graph.facebook.com/1466384840257158/comments?filter=stream&limit=1000
+ пейджинг filter=stream
упорядочим результат с отметкой времени).
ИСПОЛЬЗОВАНИЕ ПОСЛЕ ТОГО, ЧТОБЫ ДЛЯ КОММЕНТАРИЙ В ГРУППЕ Если вы хотите использовать с тех пор и до тех пор, пока комментарии не будут использованы напрямую, для группы это невозможно. Итак, сначала вы можете применить его к статусу (канал), а затем получить комментарии для этого канала. Это работает для меня:
{group_id}/?fields=feed.since(08/25/2016).until(08/31/2016){from,comments{from,message}}
Почему бы вам не попробовать сначала отфильтровать по уведомлениям?... уведомления позволяют добавлять параметры, как с тех пор. Например (используя страницы Facebook):
https://graph.facebook.com/PAGEID?fields=notifications.since(2015-3-31 00:00:00).limit(250).include_read(true)&{id,created_time,updated_time,unread,object,link}&access_token=ACCESSTOKEN
Как только вы получите данные json, выполните цикл обработки данных, получите идентификатор и отправьте второй запрос, но на этот раз, используя ребро PAGEID_POSTID. Что-то вроде этого:
https://graph.facebook.com/PAGEID_POSTID/comments?fields=id,from{name,id},message,can_remove,created_time&limit=1000
Voahla!... нет необходимости читать каждый комментарий!...
Примечание 1. Требуется токен доступа к странице, а также разрешение manage_pages
Примечание 2: используйте параметр / поле include_read для получения всех уведомлений, даже уже прочитанных
Примечание 3: Во втором запросе используйте параметр / поле "filter=stream", чтобы упорядочить посты и получить комментарии, сделанные в названии вашей страницы.
Примечание 4: не забывайте контролировать асинхронность после цикла!
Примечание 5: Уведомления дублируют сообщения, используйте массив, чтобы избежать чтения более одного раза. Используйте параметр / поле include_read для получения всех уведомлений, даже уже прочитанных.
Не знаю, поздно ли. Но, да, это работает в графическом API версии 3.3.
например: если вы хотите получить комментарии к сообщению на странице Facebook, вы можете сделать это так:
- Вы должны использовать токен доступа к странице
- Запрос на получение графика: post_id/comments? Since=some_date