繁体   English   中英

如何将访问令牌与 Google Admin API 一起用于 GA4 属性?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM