首页 > 解决方案 > 我们可以在服务器端获取谷歌分析报告,而不重定向到谷歌页面并要求登录吗?

问题描述

我需要向我的最终用户展示 Google 分析报告。

我需要从 NodeJs 请求数据并将它们显示给最终用户。

有没有可能请帮忙。

我尝试了很多包,但它们重定向到谷歌登录页面。

谢谢

标签: node.jsgoogle-apigoogle-oauthgoogle-analytics-apigoogle-api-nodejs-client

解决方案


重定向到登录页面是因为您正在使用 Oauth2 进行身份验证。这将显示登录者拥有的数据。

假设您正在尝试向其他人展示您自己的 Google Analytics(分析)数据。然后,您应该使用服务帐户。服务帐户是预先授权的。您只需在 Google 开发者控制台上创建服务帐户凭据,然后在 Google 分析管理部分的帐户级别添加服务帐户电子邮件地址。

async function runSample () {
  // Create a new JWT client using the key file downloaded from the Google Developer Console
  const client = await google.auth.getClient({
    keyFile: path.join(__dirname, 'jwt.keys.json'),
    scopes: 'https://www.googleapis.com/auth/analytics.readonly'
  });

  // Obtain a new drive client, making sure you pass along the auth client
  const analyticsreporting = google.analyticsreporting({
    version: 'v4',
    auth: client
  });

这里有一个使用 Google API node.js 客户端进行服务帐户身份验证的示例 samples/jwt.js 这可以插入到 Google Analaytics 报告 api 的示例中analyticsReporting/batchGet.js

技术上,我在您之前的问题Google Analytics - invalid_grant: Invalid JWT Signature 中给了您相同的代码


推荐阅读