当运行Google“;Hello Analytics"API教程

How do I avoid this X-Frame-Options SAMEORIGIN error when running the Google "Hello Analytics" API tutorial?

本文关键字:quot API 教程 Analytics Hello 运行 Google      更新时间:2023-11-20

我一直在尝试运行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 Analytics API。

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

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

您应该仔细检查是否在API&auth>凭据。然后使用客户端ID。

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

顺便说一下,不要忘记创建一个公共API访问密钥。

编辑:如果您使用谷歌示例修复以下功能:

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

我的同事发现了这个错误,并提出了修复请求。我希望现在可以解决这个问题。它为我排序;-)

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

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

在Chrome中打开显示错误和试图访问的url的开发控制台,在新选项卡中打开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);
  }

Et voila(:

我以前多次收到此错误消息。大多数时候,我只是调用谷歌API时前后不一。要弄清楚,请单击dev.控制台中的URL。一个新窗口打开,您会收到这样的消息:

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

我通过清除我的cookie让它开始工作。--在这里发布的这个类似问题的解决方案:谷歌+API"400(坏请求)";以及";拒绝显示。。。在帧中,因为它设置了';X-Frame-Options';到';同源'"错误