Javascript 谷歌分析API嵌入不填充数据

Javascript 谷歌分析API嵌入不填充数据,javascript,html,google-analytics,Javascript,Html,Google Analytics,我正在使用Google Analytics API进行Javascript嵌入。我正在本地服务器(XAMPP)上工作。我可以进行身份验证或登录到该服务。但是,没有填充任何div内容(或实际数据)。我不太确定我会错在哪里。我将在下面附上代码。请注意,已为提供的代码替换“//My GA ID/”。我确实有一个功能ID <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html

我正在使用Google Analytics API进行Javascript嵌入。我正在本地服务器(XAMPP)上工作。我可以进行身份验证或登录到该服务。但是,没有填充任何div内容(或实际数据)。我不太确定我会错在哪里。我将在下面附上代码。请注意,已为提供的代码替换“//My GA ID/”。我确实有一个功能ID

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
         <script type="text/javascript">
        (function(w, d, s, g, js, fs){
            g = w.gapi || (w.gapi = {});
            g.analytics = {
                q: [],
                ready: function(f){
                    this.q.push(f);
                }
            };
            js = d.createElement(s);
            fs = d.getElementsByTagName(s)[0];
            js.src = 'https://apis.google.com/js/platform.js';
            fs.parentNode.insertBefore(js, fs);
            js.onload = function(){
                g.load('analytics');
            };
        }(window, document, 'script'));
    </script>
    <script type="text/javascript">
        gapi.analytics.ready(function(){

            /**
             * Authorize the user immediately if the user has already granted access.
             * If no access has been created, render an authorize button inside the
             * element with the ID "embed-api-auth-container".
             */
            gapi.analytics.auth.authorize({
                container: 'embed-api-auth-container',
                clientid: '//MY-GA-ID//'
            });

            /**
             * Create a new ViewSelector instance to be rendered inside of an
             * element with the id "view-selector-container".
             */
            var viewSelector = new gapi.analytics.ViewSelector({
                container: 'view-selector-container'
            });

            // Render the view selector to the page.
            viewSelector.execute();

            /**
             * Create a new DataChart instance with the given query parameters
             * and Google chart options. It will be rendered inside an element
             * with the id "chart-container".
             */
            var dataChart = new gapi.analytics.googleCharts.DataChart({
                query: {
                    metrics: 'ga:sessions',
                    dimensions: 'ga:date',
                    'start-date': '30daysAgo',
                    'end-date': 'yesterday'
                },
                chart: {
                    container: 'chart-container',
                    type: 'LINE',
                    options: {
                        width: '100%'
                    }
                }
            });

            /**
             * Render the dataChart on the page whenever a new view is selected.
             */
            viewSelector.on('change', function(ids){
                dataChart.set({
                    query: {
                        ids: ids
                    }
                }).execute();
            });

        });
    </script>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>New Web Project</title>
    </head>
    <body>
        <h1>New Web Project Page</h1>
        Here is the auth:
        <div id="embed-api-auth-container">
        </div>
        <br>
        Here is the chart
        <div id="chart-container">
        </div>
        <br>
        Here is the View
        <div id="view-selector-container" style="width: 400px; height: 300;">
        </div>
    </body>
</html>

(功能(w、d、s、g、js、fs){
g=w.gapi | |(w.gapi={});
g、 分析={
q:[],
就绪:功能(f){
这是q.push(f);
}
};
js=d.createElement;
fs=d.getElementsByTagName[0];
js.src=https://apis.google.com/js/platform.js';
fs.parentNode.insertBefore(js,fs);
js.onload=function(){
g、 加载(“分析”);
};
}(窗口、文档、“脚本”);
gapi.analytics.ready(函数(){
/**
*如果用户已授予访问权限,则立即授权用户。
*如果未创建访问权限,请在
*ID为“嵌入api身份验证容器”的元素。
*/
gapi.analytics.auth.authorize({
容器:“嵌入api身份验证容器”,
clientid:“//MY-GA-ID//”
});
/**
*创建新的ViewSelector实例以在
*id为“视图选择器容器”的元素。
*/
var viewSelector=new gapi.analytics.viewSelector({
容器:“视图选择器容器”
});
//将视图选择器呈现到页面。
viewSelector.execute();
/**
*使用给定的查询参数创建新的DataChart实例
*和谷歌图表选项。它将在一个元素中呈现
*id为“图表容器”。
*/
var dataChart=new gapi.analytics.googleCharts.dataChart({
查询:{
指标:“ga:会话”,
维度:“ga:日期”,
‘开始日期’:‘30天Sago’,
“结束日期”:“昨天”
},
图表:{
容器:“图表容器”,
键入:“行”,
选项:{
宽度:“100%”
}
}
});
/**
*每当选择新视图时,在页面上呈现dataChart。
*/
viewSelector.on('change',函数(id){
dataChart.set({
查询:{
ids:ids
}
}).execute();
});
});
新网络项目
新建Web项目页面
以下是授权:

这是图表
这里是风景
看一看。授权应用程序后,需要等待执行的
viewSelector
。替换行
viewSelector.execute()

与:

事情应该会好一点

注意:您必须拥有一个实际拥有的帐户,API才能工作。根据“演示帐户(测试版)”查询数据将失败。请查看。授权应用程序后,需要等待执行的
viewSelector
。替换行
viewSelector.execute()

与:

事情应该会好一点


注意:您必须拥有一个实际拥有的帐户,API才能工作。根据“Demo Account(Beta)”查询数据将失败。“//MY-GA-ID//”您是在给它一个客户端ID权限,而不是google analytics的属性?这是正确的。例如,“一堆数字..apps.googleusercontent.com”,我可以通过授权。它将告诉我,我已成功登录。但是,数据之后不会填充。如果有帮助,我还注意到控制台中的以下信息。cb=gapi.loaded_0:88 GET 403(){“error”:{“errors”:[{“domain”:“global”,“reason”:“required”,“message”:“Login required”,“locationType”:“header”,“location”:“Authorization”}],“code”:401,“message”:“Login required”}}”//MY-GA-ID//“您给它的是客户端ID权限,而不是google analytics的属性?这是正确的。例如,“一堆数字..apps.googleusercontent.com”,我可以通过授权。它将告诉我,我已成功登录。但是,数据之后不会填充。如果有帮助,我还注意到控制台中的以下信息。cb=gapi.loaded_0:88 GET 403(){“error”:{“errors”:[{“domain”:“global”,“reason”:“required”,“message”:“Login required”,“locationType”:“header”,“location”:“Authorization”}],“code”:401,“message”:“Login required”}我做了编辑,它本身仍然没有显示任何数据。我甚至复制/粘贴了你链接的样本。同样的情况。我可以成功登录,但没有数据。有什么想法吗?当我检查时仍然注意到以下错误:“加载资源失败:服务器响应状态为403()”,您能详细说明一下在加载时会发生什么吗。如果您使用正确的客户端ID,并在开发控制台中设置了相应的origin
localhost:8080
,并且您正在登录到一个实际拥有分析帐户的帐户。如果启动浏览器,我会收到一个“Access Google Analytics”按钮。我可以登录,并收到消息“登录成功:email@domain.com“然而,Div没有发生任何其他事情。没有显示任何数据。如果我使用浏览器工具检查该元素,我会看到以下错误:失败
gapi.analytics.auth.on('success', function(response) {
    viewSelector.execute();
  });