Gev*_*ebf 5 php curl amazon amazon-web-services
我正在尝试获取访问令牌,否,我遇到此错误
{“ error_description”:“授权服务器不支持授权授予类型”,“ error”:“ unsupported_grant_type”}
$code = $_GET['code'];
$postfields = array(
'grant_type'=>'authorization_code',
'code'=>$code,
'redirect_uri='=>'example/myTest.php',
'client_id'=>'amzn1.application-oa2-client.xxxxxxxxxxx',
'client_secret'=>'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.amazon.com/auth/o2/token');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/x-www-form-urlencoded']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($httpRequest, CURLOPT_HEADER, 1);
// Edit: prior variable $postFields should be $postfields;
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // On dev server only!
$result = curl_exec($ch);
print_r($result);
Run Code Online (Sandbox Code Playgroud)
小智 7
更改CURLOPT_HTTPHEADER自
Content-Type: application/x-www-form-urlencoded
到
Content-Type: application/json
尝试添加'token_type' => 'bearer'到您的$postfields数据中。
以下来自亚马逊开发人员文档:“访问令牌请求...返回的令牌类型。应该是不记名的。”
“访问令牌响应:...unsupported_grant_type 客户端指定了错误的 token_type。”