如何为Google Analytics Embed API应用获取正确的access token?
问题原因及解决方法
常见token失效原因
- 授权范围不匹配:你在获取access token时,必须勾选Google Analytics Reporting API对应的只读权限
https://www.googleapis.com/auth/analytics.readonly,权限范围不对的token没有访问GA数据的权限,同时要确认你选择的API版本和代码调用的GA版本一致。 - token已过期:OAuth Playground默认生成的access token有效期仅1小时,过期后会直接失效,且默认配置下不会生成可续期的refresh token,无法自动刷新有效期。
- 客户端配置不匹配:你在OAuth Playground中使用的OAuth客户端ID,要和代码中填写的
CLIENT_ID属于同一个Google Cloud项目,同时该客户端ID的授权重定向/来源域名列表中,必须添加你当前部署页面的域名,否则会触发跨域或身份校验失败。 - 账号权限不足:你在OAuth Playground中授权时登录的Google账号,必须提前添加为对应GA视图的只读用户,否则token哪怕有效也无法访问目标GA数据。
更适配你需求的方案
你需要无用户登录展示图表,用个人账号生成的token本身并不适合生产环境,推荐改用服务账号方案:
- 在Google Cloud项目中创建服务账号,生成密钥文件
- 给该服务账号邮箱授予目标GA视图的只读权限
- 服务端用服务账号密钥生成JWT,兑换access token,且可自动续期
- 服务端把有效token传给前端调用即可,全程不需要用户交互。
代码调整注意点
你当前的代码在serverAuth模式下,只要传入的access token合法有效,不需要额外走客户端授权流程,可以先在本地用有效token测试时,直接填到access_token字段即可验证效果。
内容的提问来源于stack exchange,提问作者NicoleProgramming
相关产品推荐
相关产品推荐

