2017-02-22 23 views
1

Добрый день. Я пытаюсь получить лучшие видеоролики для игр в течение указанных дат публикации, упорядоченных по количеству просмотров. У меня проблема с количеством элементов, возвращаемых в ответ JSON, потому что оно меньше 50 элементов, хотя я установил параметр maxResults равным 50, а ответ JSON возвращает pageInfo.resultsPerPage равным 50. pageInfo. totalResults также возвращает намного больше 50, поэтому он должен отображать 50 элементов в результате. В качестве примера, я использую followng URLAPI данных Youtube V3 Количество результатов, не соответствующих maxResults/pageInfo.resultsPerPage

https://www.googleapis.com/youtube/v3/search?key= {api_key} & часть = & фрагмент maxResults = 50 & порядка = & publishedAfter количество просмотров = 2017-02-01T00% 3A00% 3A00Z & publishedBefore = 2017-02- 01T00% 3A01% 3A59Z & тип = видео & videoCategoryId = 20

Возвращаемый результат здесь в последний раз, когда я побежал этот запрос имеет 20 пунктов, даже если есть 161,307 Итоговые результаты. Я хотел бы спросить решение, которое позволит убедиться, что я всегда получаю количество элементов, равное maxResults, если это возможно. Надеюсь, кто-то может мне помочь в этом. Большое спасибо.

EDIT: Я знаю, как использовать токен страницы, но я не собираюсь получать элементы, которые мне нужны, для более чем одного запроса (поскольку Data API имеет ограниченные кредиты в день). Проблема, которую я пытаюсь решить, состоит в том, чтобы всегда получать 50 элементов каждый раз, когда я вызываю запрос.

+0

вы можете использовать СледующаяСтраницу маркер для отображения больше видео – Alish

+0

'Значения должны находиться в пределах диапазона: [0, 50]' Вы можете использовать СледующаяСтраницу токен для просмотра больше видео – Alish

+0

Значение, которое я использую, составляет 50 для maxResults, поэтому оно должно быть допустимым значением. На основе документации Параметр maxResults указывает максимальное количество элементов, которые должны быть возвращены в результирующем наборе. Мое предположение состоит в том, что результирующий набор является результатом «после того, как мои параметры фильтра были применены». Я знаю, как использовать токен страницы, но я не собираюсь получать элементы, которые мне нужны, для более чем одного запроса (поскольку API данных имеет ограниченные кредиты в день). Проблема, которую я пытаюсь решить, состоит в том, чтобы всегда получать 50 элементов каждый раз, когда я вызываю запрос. – iron59

ответ

0

Хотя есть 160k + общие результаты, ваш publishedAfter/publishedBefore фильтры сократить число возвращается вниз к видео, опубликованному в этом диапазоне времени, которое 20.

+0

Спасибо за ваш ответ. У вас есть ссылка на это? Согласно документации pageInfo.totalРезультаты - общее количество результатов в наборе результатов. Я предполагаю, что по результату это означает результаты после применения фильтра. Кроме того, для этого стоит значение в поле nextPageToken результата поиска. Если мой диапазон дат публикации сокращает результаты до 20, как вы утверждаете, я думаю, что не имеет смысла, что они дают токен страницы для просмотра следующего набора результатов. – iron59

0

Ну, я получил 50 результатов с запросом URL, который вы предоставлена. Просто убедитесь, что вы поместите правильное значение на параметр, который вы используете, особенно значение в publishedAfter. Вы также можете использовать параметр pageToken, чтобы получить следующую страницу или следующие 50 результатов.

Для получения дополнительной информации, проверить это SO question о том, как использовать pageToken

+1

Спасибо за ваш ответ. Количество элементов, которые я получаю, фактически противоречиво. Я попробовал это сейчас, и он вернул 18 предметов. Я знаю, как использовать токен страницы, но я не собираюсь получать элементы, которые мне нужны, для более чем одного запроса (поскольку API данных имеет ограниченные кредиты в день). Проблема, которую я пытаюсь решить, состоит в том, чтобы всегда получать 50 элементов каждый раз, когда я вызываю запрос.Теперь мне интересно, имеет ли API какой-то тайм-аут для получения запросов, и в моем соединении я всегда получаю этот тайм-аут до того, как будут выполнены 50 элементов. Просто образованная догадка. – iron59

 Смежные вопросы

  • Нет связанных вопросов^_^