Javascript 无法使用Magic Mirror模块验证Google Analytics Reporting API
我正在做一个模块。这是我第一次使用node,我想我做错了一些事情。但我不能再通过谷歌和尝试来解决这个问题了 我用过,刚开始的时候它就起作用了。但是我的代码只是粘贴在节点代码下面,我知道这不是它应该是什么样子。所以我重写了代码,但现在它不再工作了。我可能犯了一些错误,但在javascript控制台中我的代码没有任何错误 我将总结我所做的:Javascript 无法使用Magic Mirror模块验证Google Analytics Reporting API,javascript,node.js,google-analytics,magic-mirror,Javascript,Node.js,Google Analytics,Magic Mirror,我正在做一个模块。这是我第一次使用node,我想我做错了一些事情。但我不能再通过谷歌和尝试来解决这个问题了 我用过,刚开始的时候它就起作用了。但是我的代码只是粘贴在节点代码下面,我知道这不是它应该是什么样子。所以我重写了代码,但现在它不再工作了。我可能犯了一些错误,但在javascript控制台中我的代码没有任何错误 我将总结我所做的: 我在google的credentials应用程序中为模块创建了一个项目和一个API密钥。我按照hello analytics教程的要求设置了所有内容 我将Cl
- 我在google的credentials应用程序中为模块创建了一个项目和一个API密钥。我按照hello analytics教程的要求设置了所有内容
- 我将ClientID添加到头部的meta标记中。我把它直接放在index.html文件中。我还添加了另一个必需的元标记
- 我为我的Analytics帐户创建了一个视图,并复制了下面列出的视图变量。(它后面的注释是表id,因为我不知道需要哪个。)
queryReports
在节点框架之外,它将按预期工作并输出数据。但每当我尝试将其合并到节点代码中时,它只会抛出一个401。这意味着缺少验证我的用户帐户的凭据。我已经用OAuth2按钮登录了,它说我被签入了
谁能告诉我我做错了什么?
以下是模块的代码:
/* global Module */
/* Magic Mirror
* Module: MMM-ga GoogleAnalytics module
*
* By Skippy Skefnietof http://www.skippyweb.nl
* MIT Licensed.
*/
Module.register("MMM-ga",{
// Default module config.
defaults: {
text: 'test text',
startDate: '2017-02-12',
endDate: 'today',
viewID: '37419435'//'ga:37419435'
},
//getScripts: function() {
//return ['https://apis.google.com/js/client:platform.js'];
//},
getStyles: function() {
return ["MMM-ga.css"];
},
// Override dom generator.
getDom: function() {
var MMMga = document.createElement("div");
MMMga.className = "MMM-ga" + this.config.text;
var ga = document.createElement("p");
ga.setAttribute('data-onsuccess','this.queryReports');
ga.className = "g-signin2";
MMMga.appendChild(ga);
var gascript = document.createElement("script");
gascript.src = "https://apis.google.com/js/client:platform.js";
MMMga.appendChild(gascript);
var debugtxt = document.createElement("textarea");
debugtxt.id = "query-output";
MMMga.appendChild(debugtxt);
return MMMga;
//var queryReports = this.queryReports();
},
notificationReceived: function(notification, payload, sender) {
if (notification === "DOM_OBJECTS_CREATED") {
this.queryReports();
}
},
queryReports: function() {
console.log('!!!!!!!!LOOK AT ME I AM MR MEESEEKS! LOOK AT ME!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!');
gapi.client.request({
path: '/v4/reports:batchGet',
root: 'https://analyticsreporting.googleapis.com/',
method: 'POST',
body: {
reportRequests: [
{
viewId: this.config.viewID,
dateRanges: [
{
startDate: '7daysAgo',
endDate: 'today'
}
],
metrics: [
{
expression: 'ga:sessions'
}
]
}
]
}
}).then(this.displayResults, console.error.bind(console));
},
displayResults: function(response) {
var formattedJson = JSON.stringify(response.result, null, 2);
document.getElementById('query-output').value = formattedJson;
}
});
对不起,代码缩进太草率了,但我主要是在pi上工作,它的编辑器有点糟糕。对不起,代码缩进太草率了,但我主要是在pi上工作,它的编辑器有点糟糕。