youtube-api - 为什么即使我们使用在上一个 API 结果上写的 `nextPageToken` ,收集视频 ID 的请求也会失败?
问题描述
我正在创建 YouTube 的指标监控功能。但是我在使用 YouTube Data API 时遇到了一个令人困惑的问题。
我想检索一个 YouTube 频道的所有视频 ID。我在这个过程中使用 Lambda。
在 API 调用之前,我每次都在 Lambda 中刷新访问令牌。
为了检索视频 ID,我使用search#list
了以下参数:
part
:"id"
forMine
:true
type
:"video"
maxResults
:50
然后,我们可以得到如下结果:
{
"kind": "youtube#searchListResponse",
"etag": "7d3zMRNK3SwAAdU_zX5Yo9oMezw",
"nextPageToken": "SampleNextPageTokenParamXXX",
"pageInfo": {
"totalResults": 54,
"resultsPerPage": 50
},
"items": [
{
"kind": "youtube#searchResult",
"etag": "etag1",
"id": {
"kind": "youtube#video",
"videoId": "sampleVideoId1"
}
},
{
"kind": "youtube#searchResult",
"etag": "etag2",
"id": {
"kind": "youtube#video",
"videoId": "sampleVideoId2"
}
},
...
}
接下来,我尝试使用以下方法调用 API。
part
:"id"
forMine
:true
type
:"video"
maxResults
:50
pageToken
:"SampleNextPageTokenParamXXX"
(补充)
然后,我们有两种情况。
- [成功案例] 可以得到结果
- [失败案例] 收到如下结果:
{
"error": {
"code": 400,
"message": "Therequestspecifiesaninvalidpagetoken.",
"errors": [
{
"message": "The request specifies an invalid page token.",
"domain": "youtube.parameter",
"reason": "invalidPageToken",
"location": "pageToken",
"locationType": "parameter"
}
]
}
}
我认为这个问题发生在访问令牌的管理解决方案中,当访问令牌被其他并行工作的进程或 Lambda 的自动重试进程停用时,就会发生这种情况。但是除了代币的观点,如果你有其他的解决方案,你能告诉我们吗?此致。
解决方案
似乎存在一个暂时的(在 Google 中已知)问题,nextPageToken
无法正常工作。
Google 的工作人员报告说它已修复:为有效的下一页令牌返回“400 invalidPageToken”错误
推荐阅读
- android - Volley JSONObject 请求解析响应返回无值
- php - CodeIgniter 数据库错误,但只有一部分应用程序
- python - 如何按照我需要的方式重塑这个数组?
- django - 如何在表单中使用 django_select2
- amazon-web-services - 失败:WebSocket 打开握手超时(亚马逊 AWS)
- google-cloud-platform - 尝试提交到谷歌云时应用未验证
- python - 在同一天内按条件识别细胞
- node.js - 'tsc' 不是内部或外部命令、可运行程序或批处理文件。- Windows 7的
- sql - 如何优化查询?
- javascript - 比较 JavaScript 中的嵌套对象并返回键相等