say*_*yam 6 google-analytics google-api node.js
我正在使用nodejs,我想从谷歌分析中显示一些数据.
在Google API资源管理器中,我发现此网址可以获取我的数据:
https://www.googleapis.com/analytics/v3/data/ga?ids=ga%XXXXX&start-date=2013-08-17&end-date=2013-09-15&metrics=ga%3Avisits&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)
但是,如果我访问此网址,我会得到:
{"error":{"errors":[{"domain":"global","reason":"required","message":"Login Required","locationType":"header","location":"Authorization"}],"code":401,"message":"Login Required"}}
Run Code Online (Sandbox Code Playgroud)
如何通过网址传递登录信息然后访问我的数据?
谢谢!
xav*_*ard 11
在Google API控制台中,您需要激活Analytics API,最后设置服务帐户,然后您将下载*.p12
文件.
在此*.p12
文件中,您需要将其转换为*.pem
文件,为此,请运行以下命令:
openssl pkcs12 -in XXXXX.p12 -nocerts -nodes -out XXXXX.pem
你会被问到一个密码,应该是 notasecret
现在您获得了所需的*.pem
文件,并且帐户电子邮件是google api控制台中显示的文件,如EMAIL ADDRESS
.
不要忘记将此地址添加到您的分析帐户(请参阅:分析Google API错误403:"用户没有任何Google Analytics帐户")
您最好使用以下代码段:
var googleapis = require('googleapis'),
JWT = googleapis.auth.JWT,
analytics = googleapis.analytics('v3');
var SERVICE_ACCOUNT_EMAIL = 'XXXXXXXXXX@developer.gserviceaccount.com';
var SERVICE_ACCOUNT_KEY_FILE = __dirname + '/key.pem';
var authClient = new JWT(
SERVICE_ACCOUNT_EMAIL,
SERVICE_ACCOUNT_KEY_FILE,
null,
['https://www.googleapis.com/auth/analytics.readonly']
);
authClient.authorize(function(err, tokens) {
if (err) {
console.log(err);
return;
}
analytics.data.ga.get({
auth: authClient,
'ids': 'ga:XXXXXXXX',
'start-date': '2015-01-19',
'end-date': '2015-01-19',
'metrics': 'ga:visits'
}, function(err, result) {
console.log(err);
console.log(result);
});
});
Run Code Online (Sandbox Code Playgroud)
您是否将 Content-Type 设置为 application/x-www-form-urlencoded ?
如果你仍然陷入困境,值得注意的是 Google 在这里发布了一个 NodeJS 客户端库(alpha):https: //github.com/google/google-api-nodejs-client
归档时间: |
|
查看次数: |
6380 次 |
最近记录: |