Youtube API频道会员资格(sponsors.list)的分页是否中断?

时间:2019-04-25 03:37:54

标签: youtube-data-api

我正在尝试使用youtube API的频道会员资格(sponsors.list)对结果列表进行分页,但是分页和PageTokens似乎无法正常工作。

我目前正在为用户开发一个应用程序,以生成其频道中所有成员的列表(使用Sponsors.list的api:https://developers.google.com/youtube/v3/live/docs/sponsors/list

我有一个测试帐户,并且已经能够成功提取列表。但是,测试帐户只有5个成员资格。由于该API每页最多只能提取50个结果,因此我想确保我的应用程序可以说明该频道将有50个以上的赞助者的可能性。

因此,我将每页的结果设置为仅给我1个,理论上给我5个页面,然后可以筛选以模拟50个以上的成员。

当我尝试对结果进行分页时会出现问题……正如API所说,我从结果中获取nextPageToken,并将其传递给pageToken参数中的下一个调用。但是,这样做时,即使在API资源管理器中进行测试时,也会返回一个空列表,而下一页则没有nextPageToken。

{
 "kind": "youtube#sponsorListResponse",
 "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/UCSC321uKOiUT6GNkcPmkqoH1sY\"",
 "pageInfo": {
  "totalResults": 0,
  "resultsPerPage": 0
 },
 "items": []
}

另外,如果我传递了一个伪造的pageToken,结果就好像我根本没有传递任何令牌,因此至少可以识别出我正在传递的nextPageToken。

我的Google搜索使我失败了,而不仅仅是打开谈论分页应该如何工作的页面……这显然不是。难道我做错了什么?还是真的坏了?

编辑

这是我进行的API调用。 初始成员列表拉取(获得授权令牌后,等等)。

'https://www.googleapis.com/youtube/v3/sponsors?part=snippet&filter=all&maxResults=1' \
  --header 'Authorization: Bearer [SECRET_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \

产生以下结果:(我已编辑掉敏感信息,例如[CHANNEL_ID]等)。

{
 "kind": "youtube#sponsorListResponse",
 "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/PRgb6wjx--gdhgTtZ1auDKOony0\"",
 "nextPageToken": "GLiawvDS6uEC",
 "pageInfo": {
  "totalResults": 5,
  "resultsPerPage": 1
 },
 "items": [
  {
   "kind": "youtube#sponsor",
   "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/LoD6jhrr94l_4soca-7lx14kyRQ\"",
   "snippet": {
    "channelId": "[CHANNEL_ID]",
    "sponsorDetails": {
     "channelId": "[CHANNEL_ID]",
     "channelUrl": "[CHANNEL_URL]",
     "displayName": "[DISPLAY_NAME]",
     "profileImageUrl": "[PROFILE_IMAGE_URL]"
    },
    "sponsorSince": "2019-04-25T06:36:11.677Z"
   }
  }
 ]
}

因此,按照API的说明,我抓住了nextPageToken“ GLiawvDS6uEC”,并将其放入pageToken字段中的下一个调用中。

  'https://www.googleapis.com/youtube/v3/sponsors?part=snippet&filter=all&maxResults=1&pageToken=GLiawvDS6uEC' \
  --header 'Authorization: Bearer [SECRET_ACCESS_TOKEN]' \
  --header 'Accept: application/json' \

并得到令人沮丧的结果:

{
 "kind": "youtube#sponsorListResponse",
 "etag": "\"XpPGQXPnxQJhLgs6enD_n8JR4Qk/UCSC321uKOiUT6GNkcPmkqoH1sY\"",
 "pageInfo": {
  "totalResults": 0,
  "resultsPerPage": 0
 },
 "items": []
}

2 个答案:

答案 0 :(得分:0)

据我所知,值为GLiawvDS6uEC nextPageToken 是无效的。

我遇到的所有页面令牌都是一种描述的模式,例如由Youtube Data API v3 pageToken for arbitrary page

API的文档本身并没有说明页面令牌的外观!

也许在这个问题上其他人有更好的内在。无论如何,我建议向Google提交报告。

答案 1 :(得分:0)

因此,事实证明这是API的实际问题。有一个认识Google某人的朋友,他们调查了一下,已解决了问题!现在可以正常工作了!是的!

也就是说,如果我没有这种联系,谁知道这是否可以解决; _;