从Google AnalyticsAPI获取数据

时间:2015-07-12 21:02:19

标签: google-app-engine google-analytics

我想要的是什么:网站应该在没有授权的情况下显示分析数据。

我做了什么:我在谷歌应用引擎上有一个应用程序并启用了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

1 个答案:

答案 0 :(得分:1)

Embeded API Getting started

  

Embed API为您处理几乎所有授权过程   通过提供使用熟悉的一键式登录组件   OAuth 2.0流程。为了让这个按钮在你的页面上运行   您需要一个客户ID。

嵌入式API旨在与Oauh2配合使用,并要求用户进行身份验证,而不是设计用于服务帐户。我从未见过使用JavaScript工作的服务帐户的代码。这可能是由于我自己包含的很多人并不认为客户端JavaScript中的服务帐户是安全的,甚至可能违反Goggles的新使用条款。

如果要使用服务帐户,则需要切换到服务器端语言进行身份验证。嵌入式API只使用Google图表,因此您也可以手动编码。