私はすでに1日を過ごし、1枚のガラスをクラッシュさせ、それに対して本当に怒っています。Googleが私に何を望んでいるのか、何が間違っているのか分かりません。
開発者コンソールでGoogle+ APIを有効にしました 、新規作成OAuthクライアントID
$ch = curl_init('https://accounts.google.com/o/oauth2/token');
curl_setopt($ch,CURLOPT_POSTFIELDS,'code=4%2FPp1GWqC6PIr3wNYrZ5kK4T9oitxBoo0fBqBrVNQfE-g.ElKDUjQ7E28SoiIBeO6P2m-0RPaolgI&grant_type=authorization_code&redirect_uri=https%3A%2F%2Fmyprivatedomain.local.com%2Foauth2callback&client_id=%mycliet_id%&client_secret=%mysecret%');
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
var_dump(curl_exec($ch));
次の手順のようにすべて作成されます: https://developers.google.com/+/web/signin/server-side-flow 、ページにgplusボタンが表示され、許可ユーザーのアクセスを正常に要求します。ただし、ステップ8を作成した場合ステップ8:Google APIクライアントライブラリを初期化し、Google +サービスを開始します応答を取得するたびにリクエスト "error": "redirect_uri_mismatch"
Googleコンソールにredirect_uriを登録していない場合、またはタイプミスをした場合にこのエラーが表示されることは知っていますが、登録して、テストのために異なるURLを変更しようとしました(ドメイン名の変更、プロトコルの変更httpsへのhttps)、しかしそれは決して機能しません!他に何を確認できるかわかりません。少なくとも何かアドバイスをお願いします。
ドキュメントでは、手順1で説明しています。 https://developers.google.com/+/web/signin/server-side-flow#step_1_create_a_client_id_and_client_secret リダイレクトURIを構成することはできません。「許可されたJavaScriptオリジン」のみです。認可リクエストとトークン交換では、redirect_uri
パラメータ値はpostmessage
に設定する必要があります。
編集:これに関する先行技術: Google OAuth 2認証-エラー:redirect_uri_mismatch
自分でこの問題に遭遇しました。私の場合、資格情報はインストール済みアプリケーション、[〜#〜] not [〜#〜]にセットアップされましたWebアプリケーション。 Installed application
sはredirect URL
sで設定できないようです。 web application
として新しい資格情報を作成しました。これにより、一連のredirect url
sを設定するオプションが与えられました。
これと他の回答のアドバイスに従って、URLが一致(コピー&ペースト)していることを確認し、これは私にとって正しく機能しました。これはシークレットウィンドウでも行いました。
その結果、ブラウザはredirect_url
パラメータに入れたURLに転送され、次のステップで使用するコードが設定された特別なクエリ文字列パラメータcode
が追加されました。
Google IAP の使用時にこれが表示された場合、ブラウザでURLにアクセスしようとすると、メッセージが表示されます。
- それはエラーです。
エラー:redirect_uri_mismatch
リクエスト内のリダイレクトURI [your_url]/_ gcp_gatekeeper/authenticateは、OAuthクライアント。許可されたリダイレクトURIを更新するには、 https: //console.developers.google.com/apis/credentials/oauthclient/ ?project=[your_project_id]
提供されたURLにアクセスする場合(または間接的に コンソール >>正しい「OAuth 2.0クライアントID」で[編集]をクリックして)、[承認済みリダイレクトURI]セクションで、 [your_url]/_gcp_gatekeeper/authenticate
URLセット。
_gcp_gatekeeper/authenticate
部分は必ず必要です。
リダイレクトURIが一致しないため、Googleは400エラーを返します。