我正在尝试检索已订阅授权用户的频道的完整列表。
要检索完整的订户列表,请使用 mySubscribers 参数。该参数不会按特定顺序返回订阅者,它不会限制可以检索的订阅者数量。
但是,即使使用此参数,我也只能检索1000个结果。
我正在使用Node.js。我的参数如下:
{'params': {
'part': 'snippet,contentDetails,subscriberSnippet',
'mySubscribers': true,
'maxResults': 50
}};
请求转到以下URL:
https://www.googleapis.com/youtube/v3/subscriptions?part=snippet%2CcontentDetails%2CsubscriberSnippet&mySubscribers=true&maxResults=50
根据pageInfo:
"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个。我尝试了我能想到的每种参数组合,但是没有任何变化。
编辑:对于以后遇到这个问题的任何人,我注意到Channels: list拥有1000多个订阅者,尽管mySubscribers
参数已被弃用。通过切换API,您可以检索更多订户,尽管它们大约重复了72%。由于这两个API的问题,我不认为这是解决方案。