首页 > 解决方案 > Youtube 数据 API 搜索端点 401 错误

问题描述

我正在尝试使用 Youtube 搜索端点,它似乎不需要 OAuth 令牌。我已经阅读了一些教程,它们只传递了一个 API 密钥。我在 Chrome 开发工具的控制台中收到“加载资源失败:服务器响应状态为 401 ()”错误。具体来说,查看“网络”选项卡,我得到以下信息:

在此处输入图像描述

我注意到它说有一个,error: "invalid_token"但我传递了 api 密钥,所以他们一定在谈论 OAuth 令牌?我很困惑,因为它不应该需要一个,特别是因为我只是在查询公共数据。甚至端点文档的Try This API部分也不需要。最重要的是,我在 Postman 中的调用有效,只需将端点粘贴到浏览器中即可。为什么它不起作用?这是使用来自 ReactJS 前端的 axios 调用。

const apiKey = 'MY_API_KEY';
const url = 'https://www.googleapis.com/youtube/v3/search';

const response = await axios.get(url, {
  params: {
    part: 'snippet',
    maxResults: 5,
    q: songName,
    key: apiKey
  }
});

标签: google-apiyoutube-apigoogle-oauthyoutube-data-api

解决方案


发生的事情是我在其他 API 的其他调用中使用 axios.defaults.headers.common['Authorization'] =Bearer ${params.access_token} ;。这会导致默认所有内容都具有此访问令牌!所以我现在所做的是 delete axios.defaults.headers.common["Authorization"];——解决方案非常明显,只要确保没有额外的标头,因为 Search 不是 OAuth 端点!


推荐阅读