我想要的是什么:网站应该在没有授权的情况下显示分析数据。
我做了什么:我在谷歌应用引擎上有一个应用程序并启用了API并创建了一个提供json文件的服务帐户。
我尝试做同样的事情:https://ga-dev-tools.appspot.com/embed-api/custom-components/但是没有成功。
然后我遇到了这个问题:http://code.google.com/p/analytics-issues/issues/detail?id=496并将此代码更改为
<!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.
gapi.analytics.auth.authorize({
serverAuth: '<server auth key>'
});
// 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'
}
});
// YOU MUST CALL THIS MANUALLY HERE INSTEAD OF WAITING FOR CALLBACK
viewSelector.execute();
// 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>
我尝试查看几个文档以获取服务器身份验证密钥,但我没有得到它。
任何人都可以帮助设置服务器身份验证密钥,这样我的目的是显示没有身份验证的图表吗?
谢谢, Sharad Soni
答案 0 :(得分:1)
Embed API为您处理几乎所有授权过程 通过提供使用熟悉的一键式登录组件 OAuth 2.0流程。为了让这个按钮在你的页面上运行 您需要一个客户ID。
嵌入式API旨在与Oauh2配合使用,并要求用户进行身份验证,而不是设计用于服务帐户。我从未见过使用JavaScript工作的服务帐户的代码。这可能是由于我自己包含的很多人并不认为客户端JavaScript中的服务帐户是安全的,甚至可能违反Goggles的新使用条款。
如果要使用服务帐户,则需要切换到服务器端语言进行身份验证。嵌入式API只使用Google图表,因此您也可以手动编码。