Javascript 如何在不登录google的情况下显示google analytics嵌入的报告

Javascript 如何在不登录google的情况下显示google analytics嵌入的报告,javascript,google-analytics,Javascript,Google Analytics,我有以下代码,它可以正常工作: <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'; f

我有以下代码,它可以正常工作:

<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() {


 var CLIENT_ID = 'my client id goes here';

   gapi.analytics.auth.authorize({
    container: 'auth-button',
    clientid: CLIENT_ID,
  });


  /**
   * Creates a new DataChart instance showing sessions over the past 30 days.
   * It will be rendered inside an element with the id "chart-1-container".
   */
  var dataChart1 = new gapi.analytics.googleCharts.DataChart({
    query: {
      'ids': 'ga:105112893', // The Demos & Tools website view.
      'start-date': '30daysAgo',
      'end-date': 'yesterday',
      'metrics': 'ga:sessions,ga:users',
      'dimensions': 'ga:date'
    },
    chart: {
      'container': 'chart-1-container',
      'type': 'LINE',
      'options': {
        'width': '100%'
      }
    }
  });
  dataChart1.execute();

</script>

(功能(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 CLIENT_ID='我的客户ID在这里';
gapi.analytics.auth.authorize({
容器:“身份验证按钮”,
clientid:客户端ID,
});
/**
*创建一个新的DataChart实例,显示过去30天的会话。
*它将在id为“chart-1-container”的元素中呈现。
*/
var dataChart1=新的gapi.analytics.googleCharts.DataChart({
查询:{
'ids':'ga:105112893',//演示和工具网站视图。
‘开始日期’:‘30天Sago’,
“结束日期”:“昨天”,
“指标”:“ga:会话,ga:用户”,
“维度”:“ga:日期”
},
图表:{
“容器”:“图表1-容器”,
“类型”:“行”,
“选项”:{
“宽度”:“100%”
}
}
});
dataChart1.execute();
它只有在我登录谷歌的情况下才起作用。但我想要的是,即使我没有登录,它也能起作用。如何实现这一点?
您能提供一个逐步解决方法吗?

Google Analytics Demos&Tools网站在嵌入式API的服务器端授权演示中提供了一个逐步解决方法:


您可以通过在gapi.analytics.auth.authorize()中添加acces\u令牌来解决此问题。我们可以通过在google analytics中创建服务帐户来获取access\u令牌

通过运行下面的java代码,您将获得访问令牌

public static String getToken() throws FileNotFoundException, IOException
{
    GoogleCredential credential = GoogleCredential
            .fromStream(new FileInputStream("/path-to-file/xxx-246d0882d022.json"))
            .createScoped(Collections.singleton(AnalyticsScopes.ANALYTICS_READONLY));
        credential.refreshToken();
         access_token=credential.getAccessToken();
         System.out.println(access_token);
    return access_token;
}

创建服务帐户后,您将获得一个服务帐户邮件id,您必须在用户管理中添加此邮件id,并且您必须在您的帐户中启用google analytics api。

但这就是python,他要求的JavaScript,不是吗?不过我知道这是他需要的,我很确定他和我一样,并不真正了解如何做是的。没错,我想知道是否有任何方法可以通过java脚本实现这一点?还是只需要通过python实现?是否有任何方法可以通过PHP而不是python实现本教程的第3部分?@RustamAliyev第三部分可以用任何语言完成,但为了保证密钥文件的安全,应该在服务器上完成。你说了什么r您选择的服务器端语言很好。本指南应该可以让您开始用python以外的语言来实现它。这是最后一段php代码,可以作为Phillip Walton提供的上述教程的第3部分使用。
public static String getToken() throws FileNotFoundException, IOException
{
    GoogleCredential credential = GoogleCredential
            .fromStream(new FileInputStream("/path-to-file/xxx-246d0882d022.json"))
            .createScoped(Collections.singleton(AnalyticsScopes.ANALYTICS_READONLY));
        credential.refreshToken();
         access_token=credential.getAccessToken();
         System.out.println(access_token);
    return access_token;
}