web-dev-qa-db-ja.com

Google API:クライアントの有効なオリジンではありません:クライアントID「ID」のURLはホワイトリストに登録されていません

私は助けが必要です。私の質問に対する答えが見つかりません。私はグーグルで試し、反対側で質問しようとしましたが、答えが見つかりませんでした。

私はグーグルAPI(YoutubeデータAPI)を使用しています。グーグル側のサンプルコードを使用します。スクリプトを開始しようとするとエラーが発生しました:

詳細:「クライアントの有効なオリジンではありません:クライアントID「MyID」の「MyURL」はホワイトリストに登録されていません。 https://console.developers.google.com/ にアクセスして、これをホワイトリストに登録してくださいプロジェクトのクライアントIDの起源。」

エラー:「idpiframe_initialization_failed」

問題は私のウェブサイトをホワイトリストに登録し、受け入れられました。何が悪いのか分かりません。ドメインをホワイトリストに登録するにはどうすればよいですか(ホワイトリストに登録されています)

そして別の質問。私は以前、この質問に関する答えを探しませんでした。

Localhostでコードを使用できる可能性があると思うので、localhostアドレスなどをホワイトリストに登録する必要があると思います。ただし、ホワイトリストは機能しません。

  • ドリームゲーマー
59
DreamGamer

同じ問題がありましたが、ここに私がそれを解決した方法があります:

  1. プロジェクトでアナリティクスとGoogle Plus APIの両方を有効にします
  2. 新しいOAUTH 2.0クライアント資格情報を作成します
    • 制限セクションの下にAuthorized Javascript Originsを追加します
  3. 新しいクライアントIDを使用します。

楽しい。

46
Ezra Obiwale

キャッシュをクリアしました。それから働き始めました。

Chromeの場合:[設定]-> [詳細]-> [閲覧データを消去]-> [キャッシュされた画像とファイル]

123
Manu Chadha

私にとっては、Googleアナリティクスなどの追加のAPIを追加することなく機能しました。キャッシュを保存しないように、完全なclientidを追加し、シークレットウィンドウでアプリを開いてください。既に通常のウィンドウでアプリを開いている場合は、1-アプリが開いているすべてのタブを閉じます。 2-キャッシュとCookieをクリアします。 Chromeでは、[設定]-> [パスワードとフォーム]-> [閲覧データの消去]-> [詳細設定](タブ)-> a)Cookieと他のサイトデータを選択し、b)キャッシュされた画像とファイル3-新しいシークレットウィンドウを開き、アプリ。

6
user3806770

キャッシュをクリアしてみてください。キャッシュ/ローカルストレージに問題がある可能性があります。

5
Saurabh Agrawal

キャッシュをクリアすることは私にとってトリックでした

4
Gayan Rodrigo

また、クイックスタートの例の指示に従いました。同じ問題があり、ここで提案されたすべての解決策を試してみましたが、想像できるすべてを試しましたが、役に立ちませんでした。

最後に、CLIENT_IDの末尾にスペースを入れてコピーしたことがわかりました。

  var CLIENT_ID = '44********-*****************.apps.googleusercontent.com ';

これを修正したら(余分なスペースを削除して)うまくいきました。

この場合、エラーメッセージはあまり正確ではないと思います。お役に立てれば。

1

Webアプリのログインを取得しようとすると、同様の問題が発生していました。私がしたことは、Cloud PlatformからOAuthクライアントID資格情報を再作成することだけでした。これを行い、新しいクライアントIDを使用すると、すべてが正常に機能しました。問題が以前何であったかはわかりませんが、今では完全に問題ありません。

誰かがこれをグーグルなどから見つけたら、それを試してください。うまくいくかもしれません。 Ezra Obiwaleの答えは、いくつかのAPIを追加した直後に、本質的に新しいクライアントIDを作成することになるためです。

なぜこれが起こるかについての説明を誰かが知っているなら、それは高く評価されるでしょう。

1
scoutchorton

私はちょうど同じ間違いをしました: 公式クイックスタートの例 を試み、あなたと同じエラーメッセージを受け取りました。

その例は、私が個人的に必要とするものよりもはるかに複雑であるため、かなり混乱しています。ユーザーログインにOAuthを使用し、API keyだけではありません。あなたが私のようで、OAuthを使用したくない場合、および特権アクションなしで一部のYoutubeデータのみを取得したい場合(たとえば、ビデオ、チャンネル、またはプレイリストのみを検索または一覧表示する場合)、この例はあなたのために。

解決策は簡単です。apiKeyの代わりにclientIdgapi.client.initに指定するだけです(リンク: API docs )。

const apiKey = '<my API key>';

function gooApiInitClient() {
  // Array of API discovery doc URLs for APIs used by the quickstart
  const discoveryDocs = [
    "https://www.googleapis.com/discovery/v1/apis/youtube/v3/rest"
  ];

  return gapi.client.init({
    apiKey,
    discoveryDocs
  });
}

// see: https://developers.google.com/api-client-library/javascript/reference/referencedocs
gapi.load('client', {
  callback: function() {
    // we now have gapi.client! initialize it.
    gooApiInitClient().
      then(() => {
        // we can start using the API here!
        // e.g. gapi.client.youtube.videos.list(...);
      }).then(results => { 
        // use results here....
      });
  }
});
1
Domi

これはキャッシュに関係していると思います。ブラウザに移動してキャッシュをクリアしてみてください。Chromeで>設定>詳細>閲覧データのクリア:>:キャッシュされた画像とファイル。

0

私はこれとまったく同じ問題を抱えていました-私にとっての解決策は、API Managerに移動してAnalytics APIを有効にすることでした。問題が何であったかはわかりませんが、これで修正されたようです!

0
Mathew Reiss

Client_IDをコピーしたときにファイルに空白が含まれていることに気付くまで、同じ問題が発生していました。そのため、文字列から空白を削除しました。

0
Kenneth Duverge

動作しなかった理由の1つは、特定のclient IDでのログイン回数(100)を超えていることです。

google APIコンソールページ にアクセスして、新しいOauth2クライアントの資格情報を作成し(Authorized Javascript Originsの下にアプリケーションのURLを追加することを忘れないでください)、それを使用します。

0
trojek