Sign in with AppleでのiOSアプリとサーバーとの連携で
サーバー側のAPIをPHPで作成しているのですが、id_tokenの取得に失敗します…
原因の特定のやり方、もしくは何か原因が分かる方がいらっしゃれば、ご教授頂けないでしょうか。
具体的には、
client_secret(JWT)作成後、
以下のデータを「https://appleid.apple.com/auth/token」にPOSTしているのですが、
「{"error":"invalid_request"}」が返却されて取得に失敗します。
▼POSTしているデータ
$params = array(
'client_id' => APPLE_CLIENT_ID,
'client_secret' => $jwt,
'code' => $request['authorizationCode'],
'grant_type' => 'authorization_code',
'redirect_uri' => ""
);
client_secret(JWT)に関しては、
「https://jwt.io/」のサイトで確認する限り、中身に問題は無さそうでした。
「authorization_code($code)」に関しては、
転載して良いか分からないのですが、
「https://miku3.net/appleid/」を利用させていただいております。
ログイン後に表示される「code」(5分以内)をパラメータに利用しております。
あとは以下ソースでPOSTを行っておりますが、
「{"error":"invalid_request"}」が返却される状態です。
$data = http_build_query($params); $header = array( "Content-Type: application/x-www-form-urlencoded", "Content-Length: ".strlen($data), "User-Agent: UA" ); $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_URL, 'https://appleid.Apple.com/auth/token'); curl_setopt($curl, CURLOPT_HTTPHEADER, $header); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST'); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); curl_setopt($curl, CURLOPT_TIMEOUT, 5); $result = curl_exec($curl);
よく理解できていない「authorization_code($code)」が怪しい気がするのですが…
原因の特定ができない状態で困っております。
原因の特定のやり方、もしくは何か原因が分かる方がいらっしゃれば、ご教授頂けないでしょうか。
よろしくお願いいたします。
追記:
誤:{"error":"invalid_grant"}
正:{"error":"invalid_request"}
あなたの回答
tips
プレビュー