Mailchimp“invalid_grant”错误

时间:2016-08-25 15:10:40

标签: ruby-on-rails ruby oauth mailchimp

我正在尝试使用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'
                         })

其中:

  • grant_type是'authorization_code'
  • 客户ID&秘密是我设置应用程序时给予的价值观 在Mailchimp
  • 代码是从(成功的)OAuth返回给我的令牌 认证

有没有人遇到过这种错误?知道怎么解决吗?

2 个答案:

答案 0 :(得分:2)

我今天遇到了类似的问题,我的结论如下:

  1. 不幸的是,MailChimp(以及其他许多提供OAuth2端点的公司)没有提供其他错误信息 - invalid_grant显示了许多不同的情况。

  2. 在我的情况下,问题是由redirect_uri的细微差别引起的 - 我没有在令牌请求中包含完全匹配。它必须包含严格的查询参数,并且必须匹配。

  3. 遗憾的是,包含错误的授权码会导致与上述相同的错误。

答案 1 :(得分:0)

invalid_grant的问题是由于在重定向URI上使用encodeURIComponent,然后将此编码值传递给请求对象的配置引起的。这实际上导致了双重编码,导致重定向URI不匹配,导致此错误。