You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Node.js获取Google Analytics数据:入门指引及令牌过期解决

用Node.js获取Google Analytics数据的正确姿势(解决Token过期问题)

核心问题解决:Token 15分钟过期

你之前的代码用的是短期用户授权Token,这类Token本身就只有15分钟有效期。要长期稳定获取数据,应该改用服务账号(Service Account),它能自动刷新Token,无需手动维护。

第一步:前期准备

  • 登录Google Cloud控制台,创建新项目并启用「Google Analytics API」
  • 创建服务账号,下载密钥JSON文件(保存到项目目录,比如命名为service-account-key.json)
  • 打开Google Analytics后台,将服务账号的邮箱添加到对应视图的权限列表中(至少授予「查看者」权限)

第二步:示例代码(用官方库自动管理Token)

先安装依赖:

npm install googleapis

编写业务代码:

const { google } = require('googleapis');
const path = require('path');

exports.googledata = async (req, res) => {
  try {
    // 加载服务账号密钥,初始化认证
    const auth = new google.auth.GoogleAuth({
      keyFile: path.join(__dirname, 'service-account-key.json'),
      scopes: ['https://www.googleapis.com/auth/analytics.readonly']
    });

    // 创建Analytics API客户端
    const analytics = google.analytics({
      version: 'v3',
      auth: auth
    });

    // 发起数据查询(替换为你的视图ID和查询条件)
    const response = await analytics.data.ga.get({
      ids: 'ga:214170689', // 你的GA视图ID
      startDate: '2022-01-01',
      endDate: 'today',
      metrics: 'ga:pageviews',
      dimensions: 'ga:pagePath',
      filters: 'ga:pagePath==/accounts/registration/'
    });

    console.log(JSON.stringify(response.data));
    res.json(response.data);
  } catch (error) {
    console.error('获取数据失败:', error);
    res.status(500).json({ error: error.message });
  }
};

代码说明

  • 使用官方googleapis库,它会自动完成Token的获取、刷新逻辑,彻底解决过期问题
  • GoogleAuth通过服务账号密钥完成认证,权限范围设置为只读Analytics数据,满足需求且更安全
  • 查询参数和你原有代码一致,只需替换视图ID和密钥文件路径即可直接使用

旧代码过期原因

你之前手动传入的access_token是通过OAuth2用户授权流程生成的短期Token,仅适用于用户交互场景。服务账号则是专为服务器端自动化应用设计,能长期稳定提供数据访问能力。

内容的提问来源于stack exchange,提问作者Kunwar Kishor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 08:57:14