Если я понял правильно, когда я знаю идентификатор видео, я использую CommentThreads::list
, чтобы получить комментарии верхнего уровня, и Comments:list
, чтобы получить ответы на любой данный комментарий верхнего уровня.Я позвонил Comments:list
с parentId
, установленным на один из комментариев верхнего уровня, но возвращенные ответы были отсортированы в обратном хронологическом порядке.То есть первый элемент в массиве items
был последним ответом.Это бесполезно, поскольку как официальное приложение для Android, так и веб-сайт YouTube отображают комментарии в хронологическом порядке (сначала более старые ответы).
Если ответов не много, я мог бы сначала получить все ответы, а затемобратный порядок массива.Но может быть много ответов, и в этом случае результат будет разделен на страницы.Я не могу передать номер страницы, но nextPageToken
, поэтому запрос страниц в обратном порядке (сначала запрос n
, а затем n-1
и т. Д.) Невозможен.
Единственный обходной путь, о котором я мог подумать, - это получить все ответы сразу, а затем изменить порядок.Это может быть проблематично, если ответов много.
Это ошибка или я что-то не так сделал?Я не смог найти параметры "order" или "sort" в API Comments:list
.
PS: Кажется, я могу получить ответы, используя CommentThreads::list
с part = replies
id = top-level comment's ID
.Это работает (возвращает хронологический порядок), когда не так много ответов, но по какой-то причине API не поддерживает подкачку или установку maxResults
в этом режиме.В документации написано:
Примечание. Этот параметр не поддерживается для использования вместе с параметром id.
Итак, я протестировал получение ответов верхнего уровнякомментарий с 500 ответами.Этот метод вернул только 5 последних ответов.
На данный момент единственный обходной путь, который я смог найти, - это вызвать Comments:list
несколько раз с parentId = top-level comment's ID
и maxResults = 100
, получить ВСЕ ответы и отменить заказ на клиенте.Это не очень удобный способ, но комментариев с сотнями ответов не так много, так что пока что это сработает.