google-api - 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
}
});
解决方案
发生的事情是我在其他 API 的其他调用中使用 axios.defaults.headers.common['Authorization'] =
Bearer ${params.access_token} ;
。这会导致默认所有内容都具有此访问令牌!所以我现在所做的是 delete axios.defaults.headers.common["Authorization"];
——解决方案非常明显,只要确保没有额外的标头,因为 Search 不是 OAuth 端点!
推荐阅读
- android - 文件外的函数不能被调用
- python - scrapy xpath 选择器返回空数组
- moodle - 课程总成绩自定义公式
- angular - TypeError:无法在 SwitchMapSubscriber.project 上读取 null 的属性“uid”
- c++ - 收到“错误编译:0:1(1):错误:语法错误,意外 $end”C++、GLSL、着色器文件
- layout - 用于显示图像的 Flutter 布局
- dialogflow-es - 如何在 Action for Assistant 中检索用户电话号码
- c# - 创建后如何将访问文件作为 Web 响应返回?
- python - Odoo 11 销售订单确认按钮覆盖
- php - Goutte Guzzle 提交一个只有输入类的表单