我正在尝试使用Mailchimp的OAuth完成身份验证 实现,我的访问令牌请求正在获得 “invalid_grant”错误。
使用ruby HTTParty gem,我正在将数据发布到Mailchimp:
url = 'https://login.mailchimp.com/oauth2/token'
result = HTTParty.post(url,
body: {
grant_type: 'authorization_code',
client_id: ENV["MAILCHIMP_ID"],
client_secret: ENV["MAILCHIMP_SECRET"],
code: auth_hash.credentials.token,
redirect_uri: 'https://requestb.in/1jrbjmi1',
},
headers: {
'Accept': 'application/json'
})
其中:
有没有人遇到过这种错误?知道怎么解决吗?
答案 0 :(得分:2)
我今天遇到了类似的问题,我的结论如下:
不幸的是,MailChimp(以及其他许多提供OAuth2端点的公司)没有提供其他错误信息 - invalid_grant
显示了许多不同的情况。
在我的情况下,问题是由redirect_uri
的细微差别引起的 - 我没有在令牌请求中包含完全匹配。它必须包含严格的查询参数,并且必须匹配。
遗憾的是,包含错误的授权码会导致与上述相同的错误。
答案 1 :(得分:0)
invalid_grant
的问题是由于在重定向URI上使用encodeURIComponent
,然后将此编码值传递给请求对象的配置引起的。这实际上导致了双重编码,导致重定向URI不匹配,导致此错误。