通过nodejs访问谷歌分析



我正在使用nodejs,我想显示一些来自Google Analytics的数据。

在谷歌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}

但是,如果我访问此网址,我会得到:

{"error":{"errors":[{"domain":"global","reason":"required","message":"Login Required","locationType":"header","location":"Authorization"}],"code":401,"message":"Login Required"}}

如何通过 url 传递我的登录信息,然后访问我的数据?

谢谢!

在 Google API 控制台中,您需要激活 Analytics API,最后设置服务帐号,然后下载*.p12文件。

从这个*.p12文件中,您需要将其转换为*.pem文件,为此,请运行以下命令:

openssl pkcs12 -in XXXXX.p12 -nocerts -nodes -out XXXXX.pem

系统会询问您密码,密码应该是notasecret

现在您获得了所需的*.pem文件,并且帐户电子邮件是Google api控制台中显示的电子邮件,如EMAIL ADDRESS

不要忘记将此地址添加到您的分析帐户(请参阅:Analytics 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);
    });
});

您是否将 Content-Type 设置为 application/x-www-form-urlencoded?

如果你仍然卡住了,值得注意的是,谷歌已经在这里发布了一个nodejs客户端库(alpha):https://github.com/google/google-api-nodejs-client

@xavier.seignard 我遵循您的代码段,但进行了修改,因为我使用的是 json 文件而不是 p12(下面的代码)。但我有一个疑问,我正在 nodejs 中开发一个 restful 后端。在这种情况下,是否有必要将 ga.get 函数放在 app.use() 中以获取每个请求的分析信息?

var key = require('filename.json');
var authClient = new JWT(
key.client_email,
null,
key.private_key,
['https://www.googleapis.com/auth/analytics.readonly']);

下面我提到了通过nodejs访问谷歌分析的分步过程:

有关更多详细信息:如何将Google Analytics报告API与Nodejs一起使用

安装谷歌apis软件包

npm i googleapis

进口 const { google } = require('googleapis')

这是上个月获取总视图的示例脚本:

const { google } = require("googleapis");
const scopes = "https://www.googleapis.com/auth/analytics.readonly";
const jwt = new google.auth.JWT(
  process.env.CLIENT_EMAIL,
  null,
  process.env.PRIVATE_KEY.replace(/\n/g, "n"),
  scopes
);
const view_id = "Your_View_ID";
async function getViews(){
  try {
    await jwt.authorize();
    const response = await google.analytics("v3").data.ga.get({
      auth: jwt,
      ids: "ga:" + view_id,
      "start-date": "30daysAgo",
      "end-date": "today",
      metrics: "ga:pageviews",
    });
    console.log(response);
  } catch (err) {
     console.log(err);
  }
};`

相关内容

  • 没有找到相关文章

最新更新