json - 通过 Oauth 请求 Zoom API 的访问令牌 - 错误“缺少授权类型”
问题描述
我正在尝试通过 Oauth 从 Zoom api 接收访问令牌。无论我尝试以什么形式发送正文,'Content-Type': 'application/json' 或 Content-Type:application/x-www-form-urlencoded,它总是出错{原因:'缺少授权类型' ,错误:'invalid_request'}。
var options = {
method: "POST",
url: "https://zoom.us/oauth/token",
body: JSON.stringify({
grant_type: "authorization_code",
code: process.env.AUTH_CODE,
}),
redirect_uri: "https://zoom.us",
};
var header = {
headers: {
Authorization:
"Basic " +
Buffer.from(process.env.ID + ":" + process.env.SECRET).toString("base64"),
},
"Content-Type": "application/json",
};
var tokCall = () =>
axios
.post("https://zoom.us/oauth/token", options, header)
.then((response) => {
console.log(response);
})
.catch((error) => {
console.log(error.response);
});
tokCall();
我相当确定答案在于 Oauth 接收数据的数据类型,或者它在哪里/是否在接收正文。任何建议将不胜感激。
解决方案
抛出错误是因为您将数据作为发布请求的主体发送,而您Request Access Token Zoom API
希望将它们作为查询参数找到,您可能知道这些查询参数是查询字符串。
参考
https://marketplace.zoom.us/docs/guides/auth/oauth#local-test
链接中的页面图像突出显示 API 调用的查询参数和内容类型要求的使用
改变
var options = {
method: "POST",
url: "https://zoom.us/oauth/token",
body: JSON.stringify({
grant_type: "authorization_code",
code: process.env.AUTH_CODE,
}),
redirect_uri: "https://zoom.us",
};
至
var options = {
method: "POST",
url: "https://zoom.us/oauth/token",
params: {
grant_type: "authorization_code",
code: process.env.AUTH_CODE,
redirect_uri: "<must match redirect uri used during the app setup on zoom>"
},
};
标Content-Type
头应设置为,application/x-www-form-urlencoded
因为这是缩放 API 本身的要求。
顺便说一句,axios要求您将请求的主体字段/对象命名为数据,并且也不需要JSON.stringify()
方法,因为axios会在后台为您执行此操作
推荐阅读
- r - 使用 R 将文本文件转换为表格
- python - ASCII动画闪烁python
- powershell - 从 CSV 用户列表中获取所有日历子文件夹
- r - R中的Web抓取教育数据
- javascript - 我如何在 firebase 上更新我的 react 项目主机?
- c - 如何在 C 编程中的单个脚本中写入、读取和删除文件
- java - 我对回收站视图和碎片有疑问?
- r - 如何自动选择一个好的 ylim 来读取 R 中 ggplot2 中的 geom_labels
- python - 如何制作 selenium python 脚本以继续单击按钮?
- python - 安装 turbodbc 时遇到问题