Я пытаюсь получить полный список каналов, на которые подписан авторизованный пользователь.
Согласно Подписки: список :
Чтобы получитьполный список подписчиков, используйте параметр mySubscribeers .Этот параметр, который не возвращает подписчиков в определенном порядке, не ограничивает число подписчиков, которые могут быть извлечены.
Однако даже с этим параметром я ограничен получением 1000 результатов.
Я использую Node.js.Мои параметры следующие:
{'params': {
'part': 'snippet,contentDetails,subscriberSnippet',
'mySubscribers': true,
'maxResults': 50
}};
Запрос идет по этому адресу:
https://www.googleapis.com/youtube/v3/subscriptions?part=snippet%2CcontentDetails%2CsubscriberSnippet&mySubscribers=true&maxResults=50
Согласно данным страницы:
"pageInfo": {
"totalResults": 12954,
"resultsPerPage": 50
},
Я продолжаю запрашивать с помощьюnextPageToken:
function subscriptionsListByChannelId(auth, requestData) {
var service = google.youtube('v3');
var parameters = removeEmptyParameters(requestData['params']);
parameters['auth'] = auth;
service.subscriptions.list(parameters, function(err, response) {
if (err) {
console.log('The API returned an error: ' + err);
return;
}
console.log(response);
if (response.data.nextPageToken) {
var newParams = {'params': {
'part': 'snippet,contentDetails,subscriberSnippet',
'mySubscribers': true,
'maxResults': 50,
'pageToken': response.data.nextPageToken
}};
authorize(content, newParams, subscriptionsListByChannelId);
}
});
}
response.data.nextPageToken
становится неопределенным после ровно 1000 подписчиков, что означает, что он достиг последней страницы.
Я не могу понять, почему он останавливается на этом этапе.Согласно документации, я должен иметь возможность извлекать всех подписчиков, а не только 1000. Я перепробовал каждую комбинацию параметров, которую только могу себе представить, но ничего не изменилось.
РЕДАКТИРОВАТЬ: Для всехнаткнувшись на этот вопрос в будущем, я заметил Каналы: список получает более 1000 подписчиков, несмотря на то, что параметр mySubscribers
устарел.Переключив API, вы можете получить больше подписчиков, хотя они дублируют около 72%.Из-за проблем обоих API я не вижу в этом решения.