当前位置: 首页 > 知识库问答 >
问题:

Youtube API Channel Memberships(sponsors.list)的分页是否被破坏?

墨宜人
2023-03-14

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

我目前正在为用户开发一个应用程序,以生成他们频道的所有成员列表(使用apisponsors.list: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,结果就好像我根本没有传递任何令牌,所以它至少可以识别我传递的下一个PageToken。

我的谷歌搜索让我失望了,除了打开页面谈论分页应该如何工作......这显然不是。我做错了什么吗?还是它确实坏了?

编辑

这是我进行的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"
   }
  }
 ]
}

所以我抓取nextPageToken“GLiawvDS6uEC”,并按照API的指示将其放入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个答案

蒋茂
2023-03-14

据我所知,值 GLiawvDS6uEC 的下一个页面标记是无效的。

我遇到的所有页面令牌都是由Youtube Data API v3 page描述为任意页面的模式。

API的留档本身没有说明页面令牌应该是什么样子!

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

严誉
2023-03-14

所以,这是API的一个实际问题。我有个朋友认识谷歌的人,他们调查了一下,解决了问题!它现在可以正常工作了!耶!

这就是说,如果我没有这种联系,谁知道这是否会得到解决;_;

 类似资料:
  • 问题内容: 考虑以下代码: 为什么会出现这些错误? 问题答案: 二进制浮点数学就是这样。在大多数编程语言中,它基于IEEE754标准。问题的症结在于数字以这种格式表示为整数乘以2的幂。分母不是2的幂的有理数(例如,是)无法精确表示。 对于标准格式,表示形式可以完全按照 以十进制表示,或 以C99十六进制表示法表示。 相比之下,合理数量0.1,这是1/10可以完全按照书面 以十进制表示,或 以C99

  • 我有一个使用投影的查询,只要返回类型是,它就可以正常工作,但添加分页后它就停止工作了。 以下是工作代码: 我需要扩展它添加分页,所以我将其更改为: 我添加的查询过于简化,我的实际查询实际上从不同的表中收集不同的值,如果没有投影,我无法实现它 我使用的是Spring Boot 1.5.8。发布

  • 我ogin.php 指数php 我做了一个登录脚本,打开,如果密码是正确的,我ndex.php网站。当第一次通过登录脚本打开ndex.php网站时,一切正常,会话设置完毕。但是在我刷新页面后,会话会被破坏,并且没有设置。那么我如何保存会话,这样它就不会因为刷新浏览器而被破坏呢?

  • Java抛出某种类型的“Java.lang.IllegalAccessError类SomeJavassistProxy(在未命名模块中)无法访问类Java.lang.Reflect.Method(在模块Java.base中),因为模块Java.base不将Java.lang.Reflect导出到未命名模块”。 这是预期的行为。 然后我尝试了bytebuddy库,它生成了以下类:

  • 成功登录后,我将保存会话变量。 当用户转到应用程序中的不同页面时,会话就消失了,即使我没有显式地销毁会话。我该怎么解决这个问题? 这是一个会话似乎消失的页面。 在中,我有会话开始方法。

  • 1998年12月25日晚上(我的计算机时钟绝对准确),在进行完日常的一系列操作后,又准备对系统进行一下“挖潜”工作,我相信这是大多数PC 发烧友的共同爱好。主板的BIOS已经被升级过好几次了,而且目前我还没找到更新的BIOS升级数据文件,所以我把目光转向了主板附带光盘上的DMI(Desktop Management Interface,桌面管理接口)程序。DMI为用户提供了一个与系统硬件直接对话的