node.js - 我们可以在服务器端获取谷歌分析报告,而不重定向到谷歌页面并要求登录吗?
问题描述
我需要向我的最终用户展示 Google 分析报告。
我需要从 NodeJs 请求数据并将它们显示给最终用户。
有没有可能请帮忙。
我尝试了很多包,但它们重定向到谷歌登录页面。
谢谢
解决方案
重定向到登录页面是因为您正在使用 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 中给了您相同的代码