API данных YouTube для получения ответов на комментарий возвращает ответы в обратном хронологическом порядке - PullRequest
0 голосов
/ 19 сентября 2019

Если я понял правильно, когда я знаю идентификатор видео, я использую 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, получить ВСЕ ответы и отменить заказ на клиенте.Это не очень удобный способ, но комментариев с сотнями ответов не так много, так что пока что это сработает.

...