运行Google“Hello Analytics”API教程时,如何避免此X-Frame-Options SAMEORIGIN错误?

时间:2015-02-16 16:01:43

标签: javascript api google-analytics

我一直在尝试运行https://developers.google.com/analytics/solutions/articles/hello-analytics-api教程来启动并运行从Google Analytics以编程方式提取数据。

我已经完全复制了示例文件,但是当我通过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'.

我已经尝试过各种各样的调整但是不能让这个错误消失。希望有人可以提供帮助(或者实际上只是指导我使用一个简单,有效的Javascript示例来访问Google AnalyticsAPI。

5 个答案:

答案 0 :(得分:17)

请检查授权的JavaScript来源  您在Oauth设置中的Google API控制台中的网址。这必须是您授权javascript的地方。

答案 1 :(得分:7)

昨天我遇到了同样的问题,但之后我意识到我在我的凭据上使​​用了错误的客户端ID。

您应该仔细检查是否为网络应用程序创建了一个客户端ID'在 API& auth>凭证即可。然后使用该客户端ID。

我是我的情况,我错误地创建了一个服务帐户'首先使用该客户端ID。然后我意识到了这个错误并创建了一个' Web应用程序'并替换了hello_analytics_api_v3_auth.js上的客户端ID(根据https://developers.google.com/analytics/solutions/articles/hello-analytics-api上的教程)。

顺便说一下,别忘了创建一个公共API访问密钥。

编辑:如果您使用the google example修复了以下功能:

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();
  }
}

我的同事找到了这个错误,然后用pull request来解决它。我希望现在能够解决这个问题。它为我排序; - )

答案 2 :(得分:3)

我在网上找到的Fusion表示例遇到了同样的问题。

我在网上找到的答案都没有用,但我最终解决了以下问题:

在Chrome中打开开发控制台,显示错误及其尝试访问的网址,在新标签页中打开网址。

该页面显示:

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);
  }

Et voila(:

答案 3 :(得分:0)

之前我曾多次收到此错误消息。 大多数时候我只是把Google API称为不一致。 要弄清楚,请单击开发中的URL。安慰。将打开一个新窗口,您会收到如下消息:

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

答案 4 :(得分:-1)

我通过清理我的cookie来实现它。 - 解决方案在此类似问题中发布:Google+ API "400 (Bad Request)" and "Refused to display ... in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'." errors