[英]How to use access tokens with Google Admin API for GA4 properties?
随着 GA4 的发布,从阅读看来似乎有一个新的 API 客户端,我们必须使用它来管理 GA4 帐户和属性。 我正在使用 PHP 并谈论这个客户端: https://github.com/googleapis/php-analytics-admin
对于 Google UA (v3),API 允许我们使用 OAuth 访问令牌,以便用户可以授予应用程序访问其 UA 帐户的权限。 现在,使用新的 GA4 Admin API,它允许我们添加服务凭据,但我看不到如何使用 OAuth 访问令牌?
例如这里是我的 PHP 代码:
$ga4 = new AnalyticsAdminServiceClient(['credentials' => $cred]);
$accounts = $ga4->listAccounts();
foreach ($accounts as $account) {
print 'Found account: ' . $account->getName() . PHP_EOL;
}
传入的$cred
变量只是一个解码的keyFile
数组。 但这不接受 OAuth 令牌?
使用 v3 Analytics API,它非常简单,您可以像这样创建一个新的 Google 客户端并传递访问令牌:
$client = new Google_Client();
$client->setAuthConfig($keyFile);
$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);
$client->setAccessToken($token);
然后可以将该新客户端传递给分析客户端...
因此,对于新的 GA4 API,我如何设置从 OAuth 设置获得的访问令牌,用户授予我访问其 GA 帐户的权限?
我已经想通了。 您必须调用\Google\ApiCore\CredentialsWrapper::build
来创建凭据 object。 然后,您可以使用刷新的 OAuth 令牌进行身份验证。
$credentials = \Google\ApiCore\CredentialsWrapper::build([
'keyFile' => $keyFile,
'scopes' => [
'https://www.googleapis.com/auth/analytics',
'https://www.googleapis.com/auth/analytics.readonly',
]
]);
然后需要将$keyFile
更改为不是服务帐户而是authorized_user
:
$keyFile = [
'type' => 'authorized_user',
'client_id' => <YOUR_GOOGLE_ANALYTICS_CLIENT_ID>,
'client_secret' => <YOUR_GOOGLE_ANALYTICS_CLIENT_SECRET>,
'refresh_token' => $accessToken
];
然后你可以像这样将它传递给一个新的 GA4 object:
$ga4Client = new AnalyticsAdminServiceClient(['credentials' => $credentialsd]);
与 UA 客户端的工作方式相比略有不同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.