callback.phpからTokenエンドポイントにリクエストすると、
{"error":"unsupported_grant_type","error_description":null,"error_code":"901"}
というエラーが返ってきます。
'authorization_code'という文字列で間違っていないと思うのですが、
何が原因かわかりますでしょうか?
callback.phpは以下のようなコードになっています。
<?php
/**
*callback.php(コールバック)
*Tokenエンドポイントにリクエスト
*
*/
$code = $_GET["code"]; // 認可コード
$applicationId = "アプリケーションID";
$secret = "シークレット";
$api = "https://auth.login.yahoo.co.jp/yconnect/v1/token";
$basicAuth = base64_encode($applicationId . ':' . $secret);
$redirect_uri = "Authorizationエンドポイントで指定したURI";
$postdata = array(
"grant_type" => "authorization_code",
"code" => $code,
"redirect_uri" => $redirect_uri
);
$header = array(
'Authorization: Basic '.$basicAuth,
'Content-Type: application/x-www-form-urlencoded; charset=utf-8'
);
$ch = curl_init($api);
curl_setopt_array($ch, array(
CURLOPT_HEADER => true,
CURLOPT_HTTPHEADER => $header,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $postdata,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_SSL_VERIFYPEER => false
));
$result = curl_exec($ch);
// HTTPステータスコードをチェックしエラーならエラー内容を出力
if(curl_errno($ch)) {
echo 'Curl error: ' . curl_error($ch);
}
curl_close($ch);
echo $result;
?>
よろしくお願いいたします。
根岸