Google Oauth2 実装では、ガズル呼び出しを使用してトークンの認証コードを交換しようとしています。
次の guzzle 呼び出しは正常に機能し、期待値を返します。
$result = $this->client->post(
'https://www.googleapis.com/oauth2/v3/token?code=<authorization_code>&redirect_uri=<redirect_uri>&client_id=<client_id>&client_secret=<client_secret>&grant_type=authorization_code')
->getBody()->getContents();
ただし、これは投稿リクエストをマウントする汚い方法のようです。
きれいにするために、次の方法を試しました。
$result = $this->client->post(
'https://www.googleapis.com/oauth2/v3/token',
[
'query' =>
[
'code' => <authorization_code>,
'redirect_uri' => <redirect_uri>,
'client_id' => <client_id>,
'client_secret' => <client_secret>
'grant_type' => 'authorization_code',
]
]
)->getBody()->getContents();
ただし、この 2 番目の呼び出しではMalformed Json
エラー メッセージが生成されます。
何が間違っているのか、または上記の例で生成されている最終的な URL をどのようにデバッグできますか?