我按照以下网址中的步骤进行操作:https://developers.google.com/analytics/devguides/reporting/embed/v1/devguide#client-id
当我执行下面的代码时,我在控制台中收到错误消息 我保持了#34; localhost"在我创建客户端ID时,在我的Javascript域中。 你能建议吗?谢谢
<!DOCTYPE html>
<html>
<head>
<title>Embed API Demo</title>
</head>
<body>
<!-- Step 1: Create the containing elements. -->
<section id="auth-button"></section>
<section id="view-selector"></section>
<section id="timeline"></section>
<!-- Step 2: Load the library. -->
<script>
(function(w,d,s,g,js,fjs){
g=w.gapi||(w.gapi={});g.analytics={q:[],ready:function(cb){this.q.push(cb)}};
js=d.createElement(s);fjs=d.getElementsByTagName(s)[0];
js.src='https://apis.google.com/js/platform.js';
fjs.parentNode.insertBefore(js,fjs);js.onload=function(){g.load('analytics')};
}(window,document,'script'));
</script>
<script>
gapi.analytics.ready(function() {
// Step 3: Authorize the user.
var CLIENT_ID = 'XXXXXXXX';
gapi.analytics.auth.authorize({
container: 'auth-button',
clientid: CLIENT_ID,
});
// Step 4: Create the view selector.
var viewSelector = new gapi.analytics.ViewSelector({
container: 'view-selector'
});
// Step 5: Create the timeline chart.
var timeline = new gapi.analytics.googleCharts.DataChart({
reportType: 'ga',
query: {
'dimensions': 'ga:date',
'metrics': 'ga:sessions',
'start-date': '30daysAgo',
'end-date': 'yesterday',
},
chart: {
type: 'LINE',
container: 'timeline'
}
});
// Step 6: Hook up the components to work together.
gapi.analytics.auth.on('success', function(response) {
viewSelector.execute();
});
viewSelector.on('change', function(ids) {
var newIds = {
query: {
ids: ids
}
}
timeline.set(newIds).execute();
});
});
</script>
</body>
</html>
Object {error: Object}
error: Object
errors: Array[1]
0: Object
message: "immediate_failed"
reason: "invalidParameter"
__proto__: Object
length: 1
__proto__: Array[0]
message: "immediate_failed"
__proto__: Object
__proto__: Object
cb=gapi.loaded_0:433
_.nH cb=gapi.loaded_0:433
_.du.Vh cb=gapi.loaded_0:459
YP.Ka cb=gapi.loaded_0:466
_.k.iu cb=gapi.loaded_0:291
ix cb=gapi.loaded_0:431
(anonymous function) cb=gapi.loaded_0:433
h.BE cb=gapi.loaded_0:137
Wq cb=gapi.loaded_0:140
_.C.ye cb=gapi.loaded_0:140
Ap
答案 0 :(得分:1)
您的服务器或客户端ID来源必定存在问题。
将该代码完全复制并粘贴到jsbin.com(仅更改客户端ID)我能够正常工作。我所要做的就是将http://run.jsbin.com
添加到我提供的客户ID的已批准来源列表中。
这是一个有效的例子:
http://jsbin.com/batexelohuve/1/edit
如果您将http://run.jsbin.com
添加到客户端ID的原始列表中并且它在jsbin中运行,则表示您的设置有问题,而不是您提供的代码。
答案 1 :(得分:1)
生成客户ID后,将其复制并粘贴到您的代码中,并将代码保存为.html
而不是.php
。对于localhost,通常只需将其写为http://localhost
即可。除非您指定了某个端口,否则您可能想要更改它。否则通常会这样做。要知道您的计算机正在侦听哪个端口,请访问您的httpd.conf
文件并找到listen命令。
要添加,请在写入ID时忘记放置``
符号。
希望有助于解决您的问题!
答案 2 :(得分:0)
我认为您需要在代码中导入JavaScript API。试试这个:
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
答案 3 :(得分:0)
您必须正确指定Origin uri和Authorized uri,例如,如果您在http://localhost:8080中运行演示,那么您在Origin URI和Authorized URI中都添加了此url,那么您将在浏览器中获得一个访问按钮。