首页 > 解决方案 > 为什么即使我们使用在上一个 API 结果上写的 `nextPageToken` ,收集视频 ID 的请求也会失败?

问题描述

我正在创建 YouTube 的指标监控功能。但是我在使用 YouTube Data API 时遇到了一个令人困惑的问题。

我想检索一个 YouTube 频道的所有视频 ID。我在这个过程中使用 Lambda。
在 API 调用之前,我每次都在 Lambda 中刷新访问令牌。
为了检索视频 ID,我使用search#list了以下参数:

然后,我们可以得到如下结果:

{
  "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。

然后,我们有两种情况。

  1. [成功案例] 可以得到结果
  2. [失败案例] 收到如下结果:
{
    "error": {
        "code": 400,
        "message": "Therequestspecifiesaninvalidpagetoken.",
        "errors": [
            {
                "message": "The request specifies an invalid page token.",
                "domain": "youtube.parameter",
                "reason": "invalidPageToken",
                "location": "pageToken",
                "locationType": "parameter"
            }
        ]
    }
}

我认为这个问题发生在访问令牌的管理解决方案中,当访问令牌被其他并行工作的进程或 Lambda 的自动重试进程停用时,就会发生这种情况。但是除了代币的观点,如果你有其他的解决方案,你能告诉我们吗?此致。

标签: youtube-apiyoutube-data-api

解决方案


似乎存在一个暂时的(在 Google 中已知)问题,nextPageToken无法正常工作。

Google 的工作人员报告说它已修复:为有效的下一页令牌返回“400 invalidPageToken”错误


推荐阅读