我正在尝试获取用于刷新和访问令牌的Exchange授权代码。
这是我发送给谷歌的帖子数据。
var requestBody = {
code:**mycode**,
grant_type:'authorization_code',
client_secret: **mysecret**,
client_id: **clientId**,
redirect_uri:"http://localhost:3000"
}
我通过POST调用将此数据发送到“https://www.googleapis.com/oauth2/v4/token”
使用meteor post call
Meteor.http.call('POST', requestUrl, {'data': requestBody});
但我从谷歌收到此错误。
Error: failed [400] { "error": "unsupported_grant_type", "error_description": "Invalid grant_type: " }
我知道为什么会收到此错误。
理想情况下它应该以
返回{
"access_token":"sometoken",
"expires_in":3920,
"token_type":"Bearer",
"refresh_token":"refresh token"
}
答案 0 :(得分:0)
遇到问题,而不是将数据作为data.send
发送为params。
答案 1 :(得分:0)
确保在发送主体在HTTP URL查询参数中的帖子时不发布为JSon。
代码= 4 / X9lG6uWd8-MMJPElWggHZRzyFKtp.QubAT_P-GEwePvB8fYmgkJzntDnaiAI&安培; CLIENT_ID = {客户端Id} .apps.googleusercontent.com&安培; client_secret = {ClientSecret}&安培; REDIRECT_URI =瓮:IETF:WG:OAuth的:2.0:OOB&安培; grant_type = authorization_code
此帖子的内容类型也应该是"application/x-www-form-urlencoded"
而不是JSON