web-dev-qa-db-ja.com

Googleの「Hello Analytics」APIチュートリアルを実行するときに、このX-Frame-Options SAMEORIGINエラーを回避するにはどうすればよいですか?

私は https://developers.google.com/analytics/solutions/articles/hello-analytics-api チュートリアルを実行して、Googleアナリティクスからプログラムでデータを取得して実行しようと試みてきました。

サンプルファイルを正確にコピーしましたが、Chromeのlocalhostを介してそれらにアクセスすると、JavaScriptコンソールで次のエラーが表示され、about:blankにリダイレクトされます。

Refused to display 'https://accounts.google.com/o/oauth2/auth?client_id=363192057646-fbj7q1oais...%2Flocalhost&response_type=token&state=327475409%7C0.2024869166&authuser=0' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.

あらゆる調整を試みましたが、このエラーを解消することはできません。誰かが助けてくれることを願っています(または実際に、Google Analytics APIにアクセスするためのシンプルで実用的なJavascriptの例を紹介してください)。

21
Alex Bowyer

Oauth Settings。これはJavaScriptを認証する場所である必要があります。]で、Google APIコンソールの Authorized JavaScript origins urlを確認してください。

17
elliotrock

昨日同じ問題が発生していましたが、クレデンシャルで間違ったクライアントIDを使用していることに気付きました。

API&auth> Credentialsで「WebアプリケーションのクライアントID」を作成したかどうかを再確認する必要があります。そして、そのクライアントIDを使用します。

私の場合、間違って最初に「サービスアカウント」を作成し、そのクライアントIDを使用しました。それから私は間違いに気付き、「Webアプリケーション」を作成し、hello_analytics_api_v3_auth.jsのクライアントIDを置き換えました( https://developers.googleのチュートリアルに従って) .com/analytics/solutions/articles/hello-analytics-api )。

ところで、パブリックAPIアクセスキーを作成することを忘れないでください。

EDIT:使用している場合 googleの例 次の機能を修正します。

function handleAuthResult(authResult) {
  if (authResult) {
    gapi.client.load('analytics', 'v3', handleAuthorized);
  } else {
    handleUnauthorized();
  }
}

Ifステートメントで、次のように変更します。

if (authResult && !authResult.error)

したがって、次のようになります。

function handleAuthResult(authResult) {
  if (authResult && !authResult.error) {
    gapi.client.load('analytics', 'v3', handleAuthorized);
  } else {
    handleUnauthorized();
  }
}

同僚がバグを発見し、それを修正するために プルリクエスト を作成しました。これで問題が解決することを願っています。私のためにソートされました;-)

7
Gledsley Muller

オンラインで見つけたFusionテーブルの例でも同じ問題が発生していました。

オンラインで見つけた答えはまったく役に立ちませんでしたが、最終的に次のように問題を解決しました。

エラーとアクセスしようとしているURLを示すChromeでdevコンソールを開き、新しいタブでUrlを開きます。

ページにこれが表示されます。

400. That’s an error.
Error: invalid_request
Parameter not allowed for this message type: client_secret 

だから私はコードを編集しました:

  function auth(immediate) {
    gapi.auth.authorize({
      client_id: clientId,
      <!--client_secret: clientSecret,-->
      scope: scopes,
      immediate: immediate
    }, handleAuthResult);
  }

出来上がり(:

3
pasx

このエラーメッセージは何度も表示されました。ほとんどの場合、私は一貫してGoogle APIを呼び出しました。把握するには、devでURLをクリックします。コンソール。新しいウィンドウが開き、次のようなメッセージが表示されます。

400.
That’s an error.
Error: invalid_scope
Some requested scopes were invalid ...
0