获取 Mailchimp 的访问令牌时出错。返回 "error":"invalid_grant" [重复]
Posted
技术标签:
【中文标题】获取 Mailchimp 的访问令牌时出错。返回 "error":"invalid_grant" [重复]【英文标题】: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;
【问题讨论】:
这可能会有所帮助:***.com/questions/12724581/… 【参考方案1】:[来自文档:][1]
invalid_grant 提供的授权授权(例如,授权 代码、资源所有者凭据)或刷新令牌是 无效、过期、撤销、不匹配重定向 授权请求中使用的 URI,或者被发给 另一个客户。
我将获得一个新的授权令牌。 [1]:https://www.rfc-editor.org/rfc/rfc6749#section-5.2
【讨论】:
注释中的手册链接将达到与此相同的效果 感谢您的回复 :) 但我已经仔细检查了我的凭据并发现它们是正确的。让我印象深刻的一件事是“带外”请求。你知道如何提出带外请求吗? 带外意味着您只需要在服务器上异步发出该请求,而不是在客户端(例如浏览器)上,因为它公开了客户端密码。 最后,我的invalid_grant
问题是由在重定向URI 上使用encodeURIComponent
引起的,然后第二次将此编码值传递给request
配置。这会导致双重编码,从而导致重定向 URI 不匹配并导致此错误。以上是关于获取 Mailchimp 的访问令牌时出错。返回 "error":"invalid_grant" [重复]的主要内容,如果未能解决你的问题,请参考以下文章
获取 java.io.IOException:获取服务帐户的访问令牌时出错:调用数据存储时连接超时
使用 php sdk 在 facebook 中获取访问令牌时出错