PHP迁移至预发布环境后调用GA4 Admin API无账号返回问题
以下是针对你遇到的预发布环境调用listAccountSummaries无返回问题的排查和解决步骤:
区分Google项目IAM权限与Analytics账号权限
Google项目的IAM权限和Analytics账号的权限是完全独立的。即使你给服务账号配置了项目级管理员权限,也必须在Analytics控制台中把服务账号的邮箱(密钥文件里的client_email字段)添加到目标Analytics账号的权限列表中。操作路径:Analytics控制台→目标账号→管理→账号权限→添加用户,输入服务账号邮箱并分配至少查看权限(管理员权限更没问题)。检查预发布项目的Analytics Admin API启用状态
开发环境的项目启用了API不代表预发布项目也启用了。登录Google Cloud控制台,进入预发布对应的项目,搜索并确认Analytics Admin API处于启用状态(路径:API和服务→已启用的API和服务)。等待权限生效延迟
Google跨产品的权限变更(比如从IAM同步到Analytics)可能存在5-10分钟的延迟,完成权限配置后不要立即重试,等待一段时间再测试。排查代码中的密钥文件配置
确认PATH_TO_MY_KEY_FILE指向的是预发布环境的正确密钥文件,避免相对路径在预发布环境运行目录下失效。可以尝试显式传入密钥路径初始化客户端,替代环境变量方式:$this->google_analytics_service_client = new AnalyticsAdminServiceClient([ 'credentials' => '/absolute/path/to/your/service-account-key.json', ]);确认Analytics账号的归属与可访问性
你在Analytics控制台看到的账号,必须是服务账号有权访问的范围。如果账号属于其他Google Workspace组织或项目,需要单独给该服务账号授权访问权限。
内容的提问来源于stack exchange,提问作者Andy Wallace

