PHPでGoogleドライブAPIを使用してGoogleドライブAPIを実行しようとしています。私はロカストのサイトを設定し、JSONをダウンロードして、クライアントにその資格情報をロードし、ローカルのサイトにすべて正常に動作するようにする資格があります。uriが正しくコンソールに設定されていてもgoogleドライブAPIとの不一致が発生する
ライブサイトに移動し、私たちがライブサイトで使用しているプロジェクト用のJSONをダウンロードすると、私はredirect_uri_mismatchを取得し続けます。私はこのプロジェクトのコンソールをチェックして、リダイレクトURIが正しく設定されています。私は、リダイレクトURI私はこれがキル上で実現
https://www.awesomestories.com/Google/getClient
https://awesomestories.com/Google/getClient
https://www.awesomestories.com/Google/getClient/
https://awesomestories.com/Google/getClient
ために、次のしているが、私はすべての可能なバージョンが問題としてこれを排除するために設定されたことを確認したかったです。 Googleのプロンプトが起こっているとコードが返されると私がGoogleのクライアントにコードパラメータをロードしようとしたとき:
$resp = $client->authenticate($_GET['code']);
私は、次の応答
array(3) {
["error"]=>
string(21) "redirect_uri_mismatch"
["error_description"]=>
string(11) "Bad Request"
["error_uri"]=>
string(0) ""
}
にそれがリダイレクトされるURLを取得しますコンソールに設定されているものと一致するものは
https://www.awesomestories.com/Google/getClient
です。また、私たちはGoogleClientが使用しているOauth2の資格情報ではなく、このプロジェクトに関連付けられているAPIキーを使用していますが、サイトでこの同じプロジェクトの資格情報を使用しています。このプロジェクトでは、Google Consoleで設定したOauth2認証情報を初めて使用しています。私は、なぜ認証がテストサイトで成功しているのか、実際のサイトで成功していないのか分かりません。
奇妙であるもう一つは、クライアントの初期化が次のようになります:
$client = new Google_Client();
$client->setAuthConfigFile(SYSTEM_PATH.'/shared/php/google-api-php-client/client-prod.json');
$client->setAccessType('offline');
$client->setApprovalPrompt("force");
$client->setPrompt("consent");
と私のローカルサイト上の
グーグルプロンプト認証画面が立ち上がるそれがオフラインアクセスを許可するように要求しますが、ライブでオフラインアクセスを許可することはありません。誰かが私に間違っていることを指摘できたら、本当に感謝します。
**「redirect_uri_mismatch」**エラーが発生した場合は、それぞれのURLに正しいOAuth 2.0クライアントIDを使用している場合は、APIコンソールを確認してください。関連するSOの質問 - この種のエラーをデバッグするのに役立つ[Google OAuth 2認証 - エラー:redirect_uri_mismatch](http://stackoverflow.com/a/11485644/5995040)また、提案として、ライブサイトとテストサイトに異なるOAuth 2.0クライアントIDを指定してください。お役に立てれば。 –
Mr.Rebotに感謝します。私は、コンソールとOAuthの資格情報をチェックし、彼らは正しいと思った。私は理由は分かりませんが、これは私のために修正されました:私はすべてのリダイレクトuriを削除し、それらを追加してからコードを実行し、それがうまくいったのです。 –