Googleアカウントに関するデータを取得したいと思います。私は次のエラーを取得した結果ではGoogle OAuth2はcURL(PHP)で「unsupported_grant_type」を返します
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://www.googleapis.com/oauth2/v4/token',
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTPHEADER => [
'Cache-Control: no-cache',
'Content-Type: application/x-www-form-urlencoded',
],
CURLOPT_POSTFIELDS => [
'code' => $code,
'client_id' => '{MY_CLIENT_ID}',
'client_secret' => '{MY_CLIENT_SECRET}',
'redirect_uri' => '{SOME_URL}'
'grant_type' => 'authorization_code',
]
));
$result = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
:
{
"error": "unsupported_grant_type",
"error_description": "Invalid grant_type: "
}
私はこれからの命令を使用します。
https://developers.google.com/identity/protocols/OpenIDConnect
変数$code
と別のデータが有効である私は、次のコードを使用します!私は "PostMan"経由でリクエストを送信しようとしているので、正しい結果が得られます。
私が間違っている箇所を教えてください。
ありがとうございます!私はあなたのやり方を試してみて、私は同じエラーがある...しかし、!私は別の "redirect_uri"を試したとき、私は自分のトラブルを解決しました。そして、私は理解できません、どうして私がparamsで使うことができるURIはありませんか?それらはすべて私のGoogle Appのリストに追加されましたが、6つのURIから1つだけ(最初ではありません)有効です! Google Appの設定を忘れたのは何ですか? – vitaliy
解決策が見つかりました。ところで、最初のリクエストで設定した "コード"を取得したURLと同じ "redirect_uri"を設定する必要があります。それで全部です。 P.S .:多分私は文書からこのメモを逃した:... – vitaliy