【问题标题】:Why is the same Youtube API request returning 401 in a different project?为什么相同的 Youtube API 请求在不同的项目中返回 401?
【发布时间】:2021-12-01 02:29:37
【问题描述】:

我正在通过此 URL 从 Youtube Data API 获取 playlistItems:

URL = `https://youtube.googleapis.com/youtube/v3/playlistItems?part=snippet%2C%20contentDetails&playlistId=${playlistId}&maxResults=${50}&pageToken=${nextPageToken}&key=${API_KEY}`

它在我用于实验的项目中运行良好。

现在是复制的时候了????将代码放入我的实际应用程序中。

我唯一改变的是将 API_Key 放在我的 .env 中并通过以下方式设置:

const API_KEY = process.env.YT_API_KEY

我仍然不明白为什么,但 URL 的结尾有 key=undefined:

我将它设置在 .env 中,如下所示:

现在我寻求帮助的真正原因是: 为了解决这个问题,我直接在进行提取的文件中设置了 API_KEY。

但我得到与上面相同的 401 错误(除了 key= 不再未定义)

当我单击错误消息中的链接时,我可以查看我寻找的 JSON 对象。所以 URL 肯定是有效的。 就像在我的其他项目中一样(仍然)。

那么导致 401 错误的原因是什么?

我有一个想法,也许我需要更改云平台凭据设置中的某些内容。但我的 API 密钥没有任何限制。

【问题讨论】:

  • 未授权 (401) 当您创建这个新的 api 密钥时,您是在哪里创建的?是和以前在同一个项目中还是你创建了一个新项目?
  • 它适用于一个项目。不在另一个(旧)项目中。两者都在本地主机上:3000
  • 但它是同一个 API 密钥吗?好的,这是一个有趣的双重检查,您的 api 密钥没有被切断,我看到环境变量有时会被吃掉。还要检查编码是否搞砸了,它需要对 http 进行编码才能转到 api。
  • 我想强调,在 401 错误中显示的链接上的右键单击>在新选项卡中打开>向我显示了我要求的 JSON 对象。
  • 这是完全相同的请求 URL 和相同的密钥

标签: youtube-api youtube-data-api credentials http-status-code-401


【解决方案1】:

问题:应用程序正在通过 axios 设置全局标头。

解决方案:改用 fetch()

【讨论】:

    猜你喜欢
    • 2013-12-27
    • 1970-01-01
    • 2017-03-16
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-17
    • 2016-07-23
    相关资源
    最近更新 更多