PHP Google 分析服务器到服务器 OAuth 获取刷新令牌

PHP Google Analytics server to server OAuth get Refresh Token

我正在尝试从 Google 的身份验证服务器获取 refresh token,以便在服务器端身份验证中与 Google Analytics API 一起使用 Service Account Credential使用官方Google PHP client library.

我可以创建 access token 并使用它,但目前每次用户进入页面时我都会创建一个新令牌。我想减少流量并获取刷新令牌以将其传递给我的 JavaScript 函数。

gapi.analytics.auth.authorize({
    serverAuth: {
        access_token: accessToken <-refresh token is that even possible?
    }
});

我当前的 PHP 代码是:

$client = new \Google_Client();
$client->setApplicationName("Craft CMS Plugin");
$client->setAuthConfig($credentialPath);
$client->setAccessType('offline');
$client->setScopes(['https://www.googleapis.com/auth/analytics.readonly']);

$client->refreshTokenWithAssertion();

$this->analyticsAccount = new \Google_Service_Analytics($client);
$token = $client->getAccessToken();
$accessToken = $token['access_token'];

但是没有refresh_token。我可以 var_dump 一切,但我只能找到访问令牌。我已经尝试过这个 Refresh Token for Google Api Php Client 但它没有用。

你能帮帮我吗?我怎样才能得到一个。 非常感谢

  1. 服务帐户的工作方式与 Oauth2 不同。他们没有刷新令牌。
  2. JavaScript 没有使用刷新令牌的权力。
  3. 您为什么担心服务帐户的流量应该只在需要时每小时请求一次身份验证。就交通而言,我认为这是次要的。

如果服务帐户正在工作,请回答你想做的事情是不可能的。离开它。