Mailchimp“invalid_grant”错误

Posted

技术标签:

【中文标题】Mailchimp“invalid_grant”错误【英文标题】:Mailchimp "invalid_grant" error 【发布时间】:2017-01-02 02:20:14 【问题描述】:

我正在尝试使用 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' client id & secret 是我设置应用程序时给我的值 在 Mailchimp code 是从(成功的)OAuth 返回给我的令牌 身份验证

有人遇到过这种错误吗?知道如何解决吗?

【问题讨论】:

你发现了吗? :D 【参考方案1】:

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

    不幸的是,MailChimp(以及许多其他提供 OAuth2 端点的公司)不提供额外的错误信息 - invalid_grant 显示在许多不同的场景中。

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

    不幸的是,包含错误的授权码会导致与上述相同的错误。

【讨论】:

遇到同样的问题,但仍然无法确定是什么原因造成的。在这两种情况下发送完全相同的重定向 URI、有效的客户端 ID/秘密以及从授权中接收到的确切代码。超级无用的错误信息...【参考方案2】:

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

【讨论】:

以上是关于Mailchimp“invalid_grant”错误的主要内容,如果未能解决你的问题,请参考以下文章

MailChimp OAuth2 访问令牌

iOS 中的 Google OAuth2 问题 - “invalid_grant”错误

“invalid_grant”/“bad request”同时获取 authcode google api 的令牌

BigQuery 中的 Heisenberg 错误“invalid_grant”?

环境/身份验证可能存在问题 - BigQuery 管理员:invalid_grant, Invalid JWT Signature

Spotify SessionManager 不断失败并出现错误“invalid_grant”