我试图通过OneLogin的API生成OAuth 2.0令牌。我阅读了他们的 文件 并能够设置Postman进行测试,并成功抓取访问令牌。
然而,当我尝试通过JavaScript fetch来做同样的请求时,却无法成功。
代码是
function getAuthToken() {
// POST Request (To get Access Token)
var url = 'https://api.us.onelogin.com/auth/oauth2/v2/token?grant_type=client_credentials'
var postOptions = {
'method': 'POST',
'headers': {
'Content-Type': 'application/json; charset=utf-8',
'Authorization' : 'client_id:xxxx, client_secret:xxxx'
},
'redirect': 'follow'
};
var authToken = UrlFetchApp.fetch(url, postOptions);
}
错误
错误信息表明 赠款类型 丢失了,但我通过 赠款类型 参数在POST请求的主体中作为一个字符串(raw),就像文档中要求的那样,但我还是收到了这个错误。我甚至试着写了 '{"grant_type": "client_credentials"}'
与'body'参数并列,但仍然收到同样的错误信息。
有什么办法吗?先谢谢你
你使用的是JSON编码的参数。访问令牌请求必须使用以下方式发送表单参数 application/x-www-form-urlencoded
编码。
请看这里的OAuth2标准。https:/tools.ietf.orghtmlrfc6749#section-4.1.3。