Google OAuth2のinvalid_client


87

私はYouTubeビデオをアップロードするためのWebページを作成しようとしているため、Google APIコンソールからクライアントIDを取得しようとしています。APIコンソールでは、次のように表示されます。

Client ID: 533832195920.apps.googleusercontent.com
Redirect URIs: http://bobyouku.ap01.aws.af.cm/testyoutube.php
https://developers.google.com/oauthplayground

ただし、次のURLを使用してアカウントをテストしようとすると、

https://accounts.google.com/o/oauth2/auth?client_id=533832195920.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Fbobyouku.ap01.aws.af.cm%2Ftestyoutube.php&scope=https%3A% 2F%2Fwww.googleapis.com%2Fauth%2Fyoutube&response_type = code&access_type = offline

invalid_clientの結果を出力します。oauth2プレイグラウンドで試しても同じ失敗が発生する

だから誰もが何が起こっているのか知っていますか?


8
oauth2クライアントIDが機能しないことがあります。理由はわかりませんが、新しいアカウントを開いてクライアントIDをもう一度作成すると機能します。
Bob

3
ボブは
正解

11
クライアントIDをコピーして貼り付けるときは、末尾にスペースを入れないでください。それは私にとってはトリックでした...
andig

1
私にとっては、クライアントシークレットを再生成し、それが機能したことを使用します。APIはまだ不安定なようです。
ムハンマドタラル2017

回答:


113

製品名を設定/変更しました。プロジェクト名と同じ製品名を作成するまでこの問題が発生しました。

製品名は、プロジェクトのGoogle Developers Consoleの同意画面セクションで設定できます。左側のナビゲーションの[APIと認証]で、[同意画面]を選択します。また、製品名の上のボックスにメールアドレスを設定する必要があります。


4
ありがとうございました!!エラー「エラー:invalid_client。OAuthのクライアントが見つかりませんでした」この上で、今日は数時間を無駄にしますが、今の製品名を更新し、ちょっと-プレスト、問題が修正さというエラーがされています。。そう誤解を招く。
IanB

2
製品名は何ですか?
Hubert OG

4
同意画面です。「製品名」フィールドに入力する必要があります
Foo L

2
これはうまくいきました。簡潔にするために、「PRODUCT NAME」「EMAIL ADDRESS」の両方のフィールドを設定します。
b_archer 2015

2
ありがとう!私の日を救った!そして、私が言わなければならないことは、すべてのソーシャルプロバイダーのうち、Googleには最悪のドキュメントと最悪のUIがあります。それは彼らの悪いナビゲーションと共に非常に圧倒的で混乱しています。プロジェクト構成ページに行く方法を私はほとんどいつも忘れますlol。
tintinboss

69

Google Web UIから値をコピーした後、次の空白スペースがありました。

  • client_id
  • secret

そして、BEGINNINGENDの両方で。


2
この問題は引き続き発生します:P
Abhinay

1
信じられないことですが、APIコンソールの[コピー]ボタンをクリックしても... Googleの開発者領域は空白の影響を受けやすいでしょう。
Reisclef 2016

ここも信じられない。文字列の両側の余分なスペースを削除します。次に、ここで述べたことをすべて実行しても何も機能しない場合は、アプリ/プロジェクトを削除して再作成します。キャッシュの問題が発生している可能性があります。
固有フィールド2017

1
はい、問題はまだ存在します!!! 神聖ながらくた。空白を1つ省略しましたが、再確認するまで表示されませんでした。ありがとう。
LukasS 2017

1
くそー!最後のスペースを見て削除しましたが、最初のスペースはチェックしていません。
スラブ2017

41

との両方から先頭と末尾の空白を削除client_idclient_secretます。Googleのコピーボタンはこれを行いません。

ここに画像の説明を入力してください

OAuth同意画面のメールアドレスと製品名の両方のフィールドを設定します。

ここに画像の説明を入力してください


3
そのような答えでクライアントの秘密を公開したままにしないでください。
フェルナンド

1
@フェルナンドそれは使い捨てのアカウントです。
Shaun Luttin、2016

ふew。Shaun:D
Fernando

3
どのようにしてこの画面に行きましたか?
アンソニーコング

2
「アカウントを破棄」-Googleではなく、あなたを追跡し、これまでに使用したすべてのアカウントを「関連付けられたアカウント」にバンドルします。そして、Googleがいずれかのアカウントを禁止すると、バンドル全体がブロックされます。Redditで「Google Developerアカウントの終了」を検索してください。
Alexander Farber

16

Google開発者コンソールの同意画面でメールアドレスと製品名を設定すると、エラー「Error:invalid_client。OAuth client was not found。」が解決されます。私のために。



7

このスレッドで私は私の答えを見つけました。

  1. 私はグーグルコンソールに行きました、
  2. 新しいプロジェクトを生成し、更新を行いました。私の場合、作成後にページがリロードされなかったためです
  3. 新しいプロジェクトを選択
  4. クライアントIDを作成する
  5. 必要なものに使用

みんなありがとう:D


6

invalid_clientは、Oauth2オブジェクトを作成するときに、クライアントIDとクライアントシークレットが間違っていることも意味します。


5

私の場合、これは別のものであることが判明しました。つまり、私のコードは、適切に設定されていない(そして愚かに私のコードでチェックされなかった)環境変数を使用していました。それを設定し、アセットを再コンパイルし、アプリを再起動することでうまくいきました。


1
こっちも一緒; 設定しましたが、ターミナルを再起動するのを忘れました
quicklikerabbit

5

ドキュメントに従う場合は、このページから https://developers.google.com/identity/sign-in/web/sign-in#specify_your_apps_client_id

わかるでしょ

<meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com">

しかし、それは間違っています。そのはず

<meta name="google-signin-client_id" content="YOUR_CLIENT_ID">

問題は、とにかく「.apps.googleusercontent.com」が追加されることです。ドキュメントが言うようにそれを行うと、「。apps.googleusercontent.com」を2回取得します


どうもありがとう。あなたが提案したようにそれを変更することがトリックをしました。
Pavan Dittakavi

4

clientIDとclientSecretの値から不要な引用符を削除することで、これを解決しました。


あなたはサー/マームは伝説です!Heroku環境変数から引用符を削除しました。
grabury

2

エラーは、アプリケーション名が欠落していることも報告しましたか?この問題は、プロジェクト設定ダイアログでプロジェクト名(「Project X」など)を作成するまで発生しました。


2

おそらく古い資格情報は無効です

以下の答えを見てください

スタックオーバーフローの答え

または短い名前が機能する場合があります

以下の答えを参照 stackoverflowの答えを

または、既に回答されているプロジェクト名と同じ製品名

時には余分なスペースが含まれる場合があります

この行を2回チェックして、正しいURLにリダイレクトされるようにします


1

私はトリムの問題を解決しました:

'google' => [
    'client_id' =>trim('client_id),
    'client_secret' => trim('client_secret'),
    'redirect' => 'http://localhost:8000/login/google/callback',
],

0

Google APIコンソールでプロジェクト名を確認してください。作成した別のプロジェクトを選択します。同じエラーでした。私の間違いは別のプロジェクトを選ぶことでした。


0

資格情報で、これらのHTTPリファラー(Webサイト)からの要求を受け入れます(オプション)ワイルドカードにはアスタリスクを使用します。空白のままにすると、すべてのリファラーからのリクエストが受け入れられます。本番環境でこのキーを使用する前に、必ずリファラーを追加してください。を追加します。(スタードットスター)。私にとってはうまくいきます


0

誤ってURLのクライアントシークレットの部分に値がありましたが、GoogleクレデンシャルにはAndroid OAuth 2クライアントIDのクライアントシークレットは必要ありません。URLの値を空白のままにしておくだけでうまくいきました。


0

私のために働いたステップ:

  1. 機能していない資格情報を削除する
  2. NAMEで新しい認証情報を作成します
  3. OAuth同意画面で同じ名前を入力します
  4. OAuth同意画面でメールアドレスを入力します

名前は完全に同じである必要があります。


0

チェックする別のこと:

NuGetを使用してGoogleAPIを.Netアプリにインストールすると、*。configファイルに新しいダミー値のセットが挿入されます。

元の値が残っていることを確認し、ダミーエントリを削除します。


0

次のどれも私の問題ではありませんでした-シークレットウィンドウを開いてこれを解決しました。何かが明らかにどこかにキャッシュされていて、認証クライアントの設定を変更することは役に立ちませんでした。また、構成値の前後にスペースはありませんでした。



0

私はドキュメントのボタンから作成したので、鉱山は機能しませんでした。私は再びプロジェクトに行き、別のOAuthClientIDを作成しました。出来た。はい、左右の余分なスペースにも注意してください。


0

最良の結果を得るには、次のような完全な詳細があることを確認してください。

{"client_id":"282324738-4labcgdsd4nlh34885s2d34tmi.apps.googleusercontent.com","project_id":"abcd23ss-212808","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://www.googleapis.com/oauth2/v3/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"23452-dfgdfgcdfgfd","redirect_uris":["http://localhost:6900/auth/google/callback"],"javascript_origins":["http://localhost:6900"]}

このデータは常にhttps://console.developers.google.com/apis/credentials/oauthclient/からJSONとしてダウンロードできます


0

Meteor JSを使用している場合は、appIdではなくclientIdを使用する必要があります。

facebookはappIdとgoogle clientIdを使用するため。

ServiceConfiguration.configurations.upsert({
    service: "google"
}, {
    $set: {
        clientId: process.env.OAUTH_GOOGLE_APP_ID,
        loginStyle: "popup",
        secret: process.env.OAUTH_GOOGLE_SECRET
    }
});

私はそれを理解するために数時間を費やしました。


0

試行錯誤して見つけなければならないことがたくさんあるので、この記事を以前に見たことがあるといいのですが。これは多くの場合うまくいかない可能性があります。ここに私が持っていた別の問題があります:

承認済みのJavaScriptオリジンまたは承認済みのリダイレクトURIを指定する場合は、wwwを含むドメインと含まないドメインを必ず含めてください。したがって、https://google.comおよびhttps://www.google.com

また、アプリケーションのロゴをアップロードしました。そのため、同意画面では確認が必要でした...時間がかかります。アプリケーションのロゴをアップロードしないでください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.