使用用户凭据认证Google Analytics API遇权限与API启用异常
解决方案
1. 启用缺失的API
错误里提到的「项目956049252304」是OAuth客户端ID的前缀,核心问题是你的云项目未启用Google Analytics Data API。登录Google云控制台,找到你的目标云项目(ProjectA),搜索并启用「Google Analytics Data API」——这是读取GA4数据必需的API,你之前启用的几个是UA或管理类API,GA4数据查询需要单独开启这个。
2. 修正本地认证命令
你之前的命令格式有误,且未指定配额项目,导致系统误将OAuth客户端ID识别为项目ID。执行以下修正后的命令:
gcloud auth application-default login \ --scopes='https://www.googleapis.com/auth/analytics.readonly,https://www.googleapis.com/auth/cloud-platform' \ --client-id-file=/Users/userA/.config/gcloud/ga4_api_oauth_credentials.json \ --quota-project=ProjectA
注意:
- 把
ProjectA替换为你实际的云项目ID(不是OAuth客户端ID) - 确保命令参数格式正确,换行符
\用于拆分长命令,可根据终端环境调整
3. 调整代码认证逻辑
在代码中明确指定权限范围,并确保关联正确的云项目:
import google.auth from google.auth.transport.requests import Request # 手动声明需要的权限范围 SCOPES = ['https://www.googleapis.com/auth/analytics.readonly', 'https://www.googleapis.com/auth/cloud-platform'] # 获取凭据并强制应用指定范围 credentials, project = google.auth.default(scopes=SCOPES, quota_project_id="ProjectA") # 刷新过期凭据 if not credentials.valid: credentials.refresh(Request())
额外检查项
- 确认目标用户邮箱在对应GA4属性中拥有「查看者」及以上权限
- 若本地存在旧认证缓存,可执行
gcloud auth application-default revoke清理后重新登录
内容的提问来源于stack exchange,提问作者Fanylion
相关产品推荐
相关产品推荐

