如何获取授权令牌服务帐户使用谷歌API



我有一个Wordpress网站(运行PHP),需要使用google-api向访问者显示自己的分析数据。我想在Javascript中创建图表,所以我需要从PHP代码中获取一个认证令牌,然后将其传递给Javascript代码。我不知道如何获得认证令牌。

到目前为止,我有类似的代码使用我的服务帐户工作:https://github.com/google/google-api-php-client/blob/master/examples/service-account.php

我代码:

$client = new Google_Client();
$client->setAuthConfig($credentialsFilePath);
$client->addScope('https://www.googleapis.com/auth/analytics.readonly');
$client->setApplicationName("GoogleAnalytics");

$analytics = new Google_Service_Analytics($client);
$ga = $analytics->data_ga;
$start = date('Y-m-d', strtotime('-7 days'));
$end   = date('Y-m-d');
$views = $ga->get('ga:'.$myAnalyticsId,
                $start,
                $end,
                'ga:pageviews,ga:sessions,ga:newUsers',
                array(
                    'dimensions' => 'ga:date',
                    'sort' => 'ga:date'
                ));

这一切都有效,我能够连接到Google_Service_Analytics和获取分析数据。然而,我不知道如何使用我的凭据获取服务访问令牌,我可以交给Javascript代码,这样我就可以使用谷歌分析API从Javascript。

这行不通:

$token = $client->getAccessToken();

Token最终为空。我需要做什么来获取令牌?

这是我的工作代码。服务帐户具有用于生成访问令牌的不同类型的流程。不符合客户端api

//include_once 'vendor/autoload.php';
$credentialsFilePath = 'test.json';
$client = new Google_Client();
$client->setAuthConfig($credentialsFilePath);
$client->addScope('https://www.googleapis.com/auth/analytics.readonly');
$client->setApplicationName("GoogleAnalytics");
$client->refreshTokenWithAssertion();
$token = $client->getAccessToken();
print_r($token);
$accessToken = $token['access_token'];

算出来了:

$client->refreshTokenWithAssertion();
$token = $client->getAccessToken();
$accessToken = $token['access_token'];

第一个答案在2021年仍然有效(谢谢!),但使用过的函数已弃用(尽管仍然可用)

public function getToken() {
    $client = new Client(); // use GoogleClient;
    $client->setAuthConfig('securejsonfile.json');
    $client->addScope('https://www.googleapis.com/auth/cloud-platform');
    $client->setApplicationName('appname');
    $client->fetchAccessTokenWithAssertion();
    return $client->getAccessToken(); //array
}

相关内容

  • 没有找到相关文章

最新更新