【问题标题】:Error in getting access token for Mailchimp. Returns {"error":"invalid_grant"} [duplicate]获取 Mailchimp 的访问令牌时出错。返回 {"error":"invalid_grant"} [重复]
【发布时间】:2017-12-17 10:19:45
【问题描述】:

得到一个代码,我试图获取它的访问令牌。我提出了一个 Curl 请求并执行了它,但得到的错误响应为 {"error":"invalid_grant"}。这是我的代码:

    $url = 'https://login.mailchimp.com/oauth2/token';
    $grant_type = 'authorization_code';
    $client_id = 'MY CLIENT ID';
    $client_secret = 'SECRET KEY';
    $redirect_url = urlencode('REDIREDT_URL');
    $code = $_GET['code'];;

    $post_field = array(
        'grant_type' => 'authorization_code',
        'client_id' => $client_id,
        'client_secret' => $client_secret,
        'redirect_uri' => $redirect_url,
        'code' => $code,
        );

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_ENCODING, '');
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
    curl_setopt($ch, CURLOPT_POST, true);
    $value = http_build_query($post_field);
    //echo $value; exit;
    curl_setopt($ch, CURLOPT_POSTFIELDS, $value);

    //echo $post_field;
    $result = curl_exec($ch);
    curl_close( $ch );
    print_r($result); exit;

【问题讨论】:

标签: php oauth-2.0 mailchimp-api-v3.0


【解决方案1】:

[来自文档:][1]

invalid_grant 提供的授权授权(例如,授权 代码、资源所有者凭据)或刷新令牌是 无效、过期、撤销、不匹配重定向 授权请求中使用的 URI,或者被发给 另一个客户。

我将获得一个新的授权令牌。 [1]:https://www.rfc-editor.org/rfc/rfc6749#section-5.2

【讨论】:

  • 注释中的手册链接将达到与此相同的效果
  • 感谢您的回复 :) 但我已经仔细检查了我的凭据并发现它们是正确的。让我印象深刻的一件事是“带外”请求。你知道如何提出带外请求吗?
  • 带外意味着您只需要在服务器上异步发出该请求,而不是在客户端(例如浏览器)上,因为它公开了客户端密码。
  • 最后,我的invalid_grant 问题是由在重定向URI 上使用encodeURIComponent 引起的,然后第二次将此编码值传递给request 配置。这会导致双重编码,从而导致重定向 URI 不匹配并导致此错误。
猜你喜欢
  • 2015-12-08
  • 1970-01-01
  • 2014-06-28
  • 2015-09-04
  • 2016-03-02
  • 2018-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多