Ошибка Graph API?/{group-id}/конечная точка фида дает несогласованные результаты
tl; dr, получающий групповой фид, возвращает непоследовательные # сообщения
Эта кажущаяся ошибка, похоже, влияет на версии v1.0 и v2.0 API-интерфейса Facebook.
Я являюсь администратором закрытой группы Facebook с ~ 1800 сообщениями. Я хотел бы вернуть все должности в этой группе.
Для этого я paging.next
/{group-id}/feed и следую URL-адресу в paging.next
. Это фактически возвращает сообщения, но результаты несовместимы и обычно возвращает ~ 150 сообщений меньше, чем на самом деле в группе (я самостоятельно проверил и дважды проверил это #).
Базовый вызов /{group-id}/feed
, когда paging.next
все ссылки paging.next
, дает 1652 сообщения.
Базовый вызов /{group-id}/feed?limit=10
, когда paging.next
все ссылки paging.next
1606 сообщений.
Базовый вызов /{group-id}/feed?limit=50
, когда paging.next
все ссылки paging.next
, дает 1687 сообщений.
Следует отметить, что каждый из вышеуказанных случаев является внутренне непротиворечивым. (например, вызов limit=10
всегда возвращает то же (неправильное) количество сообщений.)
Я искал Google и SO, пытаясь устранить неполадки. Некоторые вещи, которые я пробовал:
- Вариации на разрешениях токена доступа: использование либо макс. или мин. необходимо не решить проблему.
- Исключение ошибок привязки языка: я написал тестовый код как в Go, так и в Node.js, и оба испытывают одну и ту же проблему.
- Использование разных версий api: как
1.0
и 2.0
демонстрируют ту же проблему.
Я действительно нахожусь здесь на грани ума. Я не знаю, для устранения неполадок. Есть идеи?
Ответы
Ответ 1
Это не обязательно "ошибка" - это задокументировано: https://developers.facebook.com/blog/post/478/
По сути, предел применяется перед фильтрацией результатов (например, удаленные сообщения или видимость), и, следовательно, предел не всегда соответствует количеству сообщений, которые вы получаете. Хуже того, вы можете получить пустые страницы в своем результирующем наборе, и вам нужно будет проверить еще несколько страниц в пустом пространстве, чтобы убедиться, что ничего не осталось.
Сообщения могут стать довольно разреженными, когда вы возвращаетесь много времени из-за удаленных учетных записей пользователей и таких вещей. Таким образом, вы можете получить слоты 200 или что-то, где ничего не возвращается, потому что все сообщения там пропали.