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

PHP调用Google Analytics 4 Admin API如何正确传入access_token

GA4 Admin API PHP客户端正确鉴权方式

你当前代码的核心问题有两个:一是手动传access_token的参数位置错误,二是大概率没有给鉴权身份配置GA4账户的访问权限。以下是两种可直接运行的正确实现:

方式一:服务账号自动鉴权(官方推荐,无需手动管理token)

你已经持有服务账号JSON凭据的前提下,不需要手动生成、传入access_token,Google官方客户端库会自动完成token的申请、刷新全流程,只需要提前完成1步权限配置:

  • 登录GA4管理员后台,进入对应账户的「账号访问管理」页面,将服务账号JSON文件中client_email字段对应的邮箱添加为账户成员,授予「查看者」及以上权限,必须完成这步配置,否则鉴权通过后也会因为权限不足无法拉取账户列表。

对应实现代码:

require 'vendor/autoload.php';

use Google\Analytics\Admin\V1alpha\AnalyticsAdminServiceClient;

// 指定服务账号凭据路径
putenv('GOOGLE_APPLICATION_CREDENTIALS=config.json');

// 初始化客户端,无需手动传入token
$client = new AnalyticsAdminServiceClient();
// 拉取账户列表
$accountList = $client->listAccountSummaries();

foreach ($accountList as $account) {
    echo "账户名:{$account->getDisplayName()},资源ID:{$account->getName()}" . PHP_EOL;
}

// 用完关闭客户端连接
$client->close();

方式二:手动传入已生成的access_token

如果你已经通过OAuth2流程或者服务账号接口提前生成了有效access_token,不能直接在构造函数根配置下传access_token参数,需要嵌套在credentials配置项中传入,同时要保证token申请时包含了GA4 API的访问权限scope(至少需要https://www.googleapis.com/auth/analytics.readonly权限)。

对应实现代码:

require 'vendor/autoload.php';

use Google\Analytics\Admin\V1alpha\AnalyticsAdminServiceClient;

$accessToken = "替换为你实际生成的有效access_token";
$expireAt = time() + 3600; // 替换为你的token实际过期时间戳

// 正确传入手动生成的token
$client = new AnalyticsAdminServiceClient([
    'credentials' => [
        'access_token' => $accessToken,
        'expires_at' => $expireAt
    ]
]);

$accountList = $client->listAccountSummaries();
foreach ($accountList as $account) {
    echo "账户名:{$account->getDisplayName()},资源ID:{$account->getName()}" . PHP_EOL;
}

$client->close();

常见踩坑点

  • 不要同时配置GOOGLE_APPLICATION_CREDENTIALS环境变量和手动传入access_token,会触发鉴权逻辑冲突
  • 手动生成的access_token有效期默认是1小时,过期后需要重新生成,否则调用会返回401鉴权失败错误
  • 如果调用后返回空列表,优先检查鉴权对应的身份(服务账号邮箱/OAuth授权用户)是否已经被添加到GA4账户的成员列表中,这是最高发的问题原因

内容的提问来源于stack exchange,提问作者Dipti Gajjar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 09:54:21