Редактировать: Оказывается, вы можете передать параметр limit
GET, который, что неудивительно, ограничивает количество результатов.Тем не менее, Блог разработчиков отмечает некоторые ограничения при таком подходе (а именно, что меньше результатов, чем запрошено, может быть возвращено, если некоторые не видны вашему пользователю).
Блог рекомендует использовать until
и / или since
в качестве параметров GET при вызове стандартного API Graph.Эти параметры принимают любую strtotime()
-стандартную строку (или время эпохи Unix) и соответственно ограничивают ваши результаты.
Исходный ответ следует:
После некоторых дальнейших исследований мне кажется, что я могу выбирать реже или использовать собственные FQL-запросы, чтобы ограничить количество обращений к mailbox_fql.Я не смог найти способа ограничить ответ стандартного вызова API Graph конечной точкой inbox
.В данном случае я использую FQL-запрос следующей формы:
https://graph.facebook.com/fql?q=SELECT <fields> FROM thread WHERE folder_id=1 LIMIT <n>&access_token=...
<fields>
- это список полей, разделенных запятыми (описан в ветке FQL документа Facebook).thread
- буквальное имя таблицы, соответствующее конечной точке inbox
;новая конечная точка thread
соответствует таблице unified_thread
, но она еще не является общедоступной.folder_id=1
означает, что мы хотим использовать входящие (в отличие от папок «Исходящие» или «Обновления»).
На практике я устанавливаю <n>
на 5, что приводит к разумным 200 вызовам mailbox_fql
в 10-минутном интервале при использовании 15-секундных интервалов вызова.В моих тестах я не получал сообщение об ошибке № 613, так что я думаю, что оно работает.
Я предполагаю, что большинство людей здесь уже были знакомы с плюсами и минусами FQL, но это было для меня новым.Я надеюсь, что это поможет некоторым другим новичкам, имеющим дело с подобными проблемами!