Google analytics Google Anlaytics嵌入API演示不起作用

Google analytics Google Anlaytics嵌入API演示不起作用,google-analytics,Google Analytics,我遵循了以下Web站点中的步骤: 当我执行下面的代码时,我在控制台中得到错误消息 在创建客户端id时,我在Javascript域中维护了“localhost”。 你能给个建议吗?谢谢 <!DOCTYPE html> <html> <head> <title>Embed API Demo</title> </head> <body> <!-- Step 1: Create the containing

我遵循了以下Web站点中的步骤:

当我执行下面的代码时,我在控制台中得到错误消息 在创建客户端id时,我在Javascript域中维护了“localhost”。 你能给个建议吗?谢谢

<!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

嵌入API演示
(功能(w、d、s、g、js、fjs){
g=w.gapi | |(w.gapi={});g.analytics={q:[],ready:function(cb){this.q.push(cb)};
js=d.createElement;fjs=d.getElementsByTagName[0];
js.src=https://apis.google.com/js/platform.js';
insertBefore(js,fjs);js.onload=function(){g.load('analytics')};
}(窗口、文档、“脚本”);
gapi.analytics.ready(函数(){
//第三步:授权用户。
var客户端ID='XXXXXXXX';
gapi.analytics.auth.authorize({
容器:“身份验证按钮”,
clientid:客户端ID,
});
//步骤4:创建视图选择器。
var viewSelector=new gapi.analytics.viewSelector({
容器:“视图选择器”
});
//步骤5:创建时间线图。
var timeline=新gapi.analytics.googleCharts.DataChart({
reportType:'ga',
查询:{
“维度”:“ga:日期”,
“指标”:“ga:会话”,
‘开始日期’:‘30天Sago’,
“结束日期”:“昨天”,
},
图表:{
键入:“行”,
容器:“时间线”
}
});
//步骤6:将组件连接在一起工作。
gapi.analytics.auth.on('success',函数(响应){
viewSelector.execute();
});
viewSelector.on('change',函数(id){
var newIds={
查询:{
ids:ids
}
}
timeline.set(newIds.execute();
});
});
对象{错误:对象}
错误:对象
错误:数组[1]
0:对象
消息:“立即\u失败”
原因:“无效参数”
__原型:对象
长度:1
__原型:数组[0]
消息:“立即\u失败”
__原型:对象
__原型:对象
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
(匿名函数)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
美联社

您的服务器或客户端ID来源一定有问题

将代码准确地复制和粘贴到jsbin.com(只更改客户端ID)中,我就能够让它正常工作。我所要做的就是添加
http://run.jsbin.com
到我提供的客户ID的批准来源列表

下面是一个工作示例:


如果您添加
http://run.jsbin.com
添加到客户端ID的源代码列表中,并在jsbin中工作,则表示您的设置有问题,而不是您提供的代码有问题。

生成客户端ID后,将其复制并粘贴到代码中,并将代码保存为
.html
而不是
.php
。对于localhost,通常只需将其编写为
http://localhost
。除非您指定了某个端口,因此可能需要更改它。否则通常的就行了。要知道计算机正在侦听哪个端口,请访问
httpd.conf
文件并找到listen命令

若要添加,请不要忘记在编写ID时添加
`
符号


希望这有助于解决您的问题

我认为您需要在代码中导入JavaScript API。试试这个:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>


您必须正确指定源uri和授权uri,例如,如果您在中运行演示,那么您已经在源uri和授权uri中添加了此url,那么您将在浏览器中获得一个访问按钮

你把这个上传到服务器了吗?如果是,请提供一个链接?您是否也指定了一个端口?对于每个客户端ID,您只需指定一个主机和端口。也就是说,你不能只说
http:/localhost
,你必须说
http://localhost:8080
(或您选择的任何端口号)。是的,我添加了8080端口。在我的本地tomcat服务器上部署了该项目,它给出了相同的错误。我已确保分析API已“打开”,并且客户端ID正确。谢谢你的回复。如果您有任何建议,请告知。thanks@PhilipWalton为什么有人不能只使用
http://localhost
?我找不到关于这一点的任何文档,localhost上的身份验证似乎确实不起作用…@MDT据我所知,源代码需要完全匹配。来源包括协议、主机名和端口。请注意,如果您使用协议的默认端口,并且在请求
location.origin
时未显示任何端口,则无需指定端口。但在localhost上通常不是这样。生成的ClientID中似乎有些错误,因为即使我创建了一个与您提到的完全相同的已批准来源的新ClientID,它仍然无法在jsbin站点上工作。谢谢你的回复。我的客户id不起作用有什么线索吗?这就是我拥有的:541933319551-IODKF5Q87PPR9BTBB222Gmnehs9SMQP.apps.googleusercontent.com-->客户端ID,作为重定向和批准的来源。这就是我的全部。想知道为什么它不能与此客户端id一起工作?非常感谢您的快速回复。我还想补充一点,我观察到的是,它将显示“谷歌分析”栏的输出,当我点击它时,它会显示:401。那是个错误。我已经创建了一个新项目,然后在激活分析API后创建了一个新的客户端ID,但仍然没有成功。错误:无效的\u客户端没有应用程序名称请求详细信息