Facebook Graph API event-id/comments?since=2014-02-01&until=2014-02-10 , фильтр даты не действует

  1. Я пытаюсь добавить комментарии к определенному событию, ориентируясь на этот URL: https://graph.facebook.com/1466384840257158/comments
  2. Я передаю user_access_token
  3. В настоящее время у меня есть два комментария к этому событию, сделанные в один и тот же день (2014-03-29)
  4. Теперь я пытаюсь передать дату, которая должна привести к пустому результату/объекту данных, например: https://graph.facebook.com/1466384840257158/comments?since=2011-01-01&until=2014-01-10
  5. Этот запрос не имеет никакого эффекта, он по-прежнему показывает мне два комментария, сделанные 29-го числа.
  6. Я попробовал тот же диапазон дат для своего идентификатора пользователя/канала, и он дал мне пустой объект данных.
  7. Наконец, я попробовал идентификатор события/канал (перед попыткой фильтра даты), и это дало мне следующую ошибку

.

{
    "error": {
        "message": "An unexpected error has occurred. Please retry your request later.", 
        "type": "OAuthException", 
        "code": 2
    }
}

Не могли бы вы рассказать мне о фильтре даты для этого конкретного запроса (пункт 4) или, если у вас есть какие-либо другие идеи, как использовать фильтр даты для комментариев, сделанных для события.


person Sudeep    schedule 29.03.2014    source источник


Ответы (4)


В комментариях используется пагинация на основе курсора, поэтому вы не можете используйте since или until в конечной точке комментариев (эти параметры будут работать, например, для конечной точки feed).

Чтобы получить комментарии во временном диапазоне, вы должны получить все комментарии от СЕЙЧАС до начала временного диапазона, например. с https://graph.facebook.com/1466384840257158/comments?filter=stream&limit=1000+paging (filter=stream упорядочит результат с отметкой времени).

person Sonson123    schedule 02.04.2014

ИСПОЛЬЗОВАНИЕ SINCE UNTIL ДЛЯ КОММЕНТАРИЙ в ГРУППЕ Если вы хотите использовать с и до для комментариев, это невозможно непосредственно для группы. Итак, сначала вы можете применить его для статуса (ленты), а затем получить комментарии для этой ленты. Это работает для меня:

{group_id}/?fields=feed.since(08/25/2016).until(08/31/2016){from,comments{from,message}}
person DhananjayK    schedule 31.08.2016

Почему бы вам сначала не попробовать фильтровать по уведомлениям?... уведомления позволяют добавлять такие параметры, как «с тех пор». Например (используя страницы 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

Воахла!... нет необходимости читать каждый комментарий!...

Примечание 1. Требуется токен доступа к странице вместе с разрешением manage_pages.

Примечание 2: Используйте параметр/поле include_read для получения всех уведомлений, даже уже прочитанных

Примечание 3: Во втором запросе используйте параметр/поле «filter=stream», чтобы упорядочить посты и получить комментарии, сделанные от имени вашей страницы.

Примечание 4: Не забывайте контролировать асинхронность после зацикливания!

Примечание 5: Уведомления дублируют сообщения, используйте массив, чтобы не читать сообщение более одного раза. Используйте параметр/поле include_read, чтобы получать все уведомления, даже уже прочитанные.

person LCancino    schedule 31.03.2015

Я не знаю, если это слишком поздно. Но, да, это работает в Graph API версии 3.3.

например: если вы хотите получить комментарии к публикации на странице Facebook, вы можете сделать это следующим образом:

  • Вы должны использовать токен доступа к странице
  • Запрос на получение графика: post_id/comments?since=some_date
person Sameer Ahmad    schedule 09.06.2019