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