Google Analytics Core Reporting API 版本 3.0,无需客户端登录



我想使用较新的v3.0访问我们的Google Analytics帐户报告,但从我读到的所有内容来看,为了获得有效的访问令牌,用户必须登录。

我们希望直接访问我们自己的帐户报告,而不是根据客户的帐户访问他们的帐户。 我们如何在PHP中完成此操作,而不必将浏览器发送到Google登录页面? v3.0 没有直接的 API 身份验证吗?

编辑

这似乎是在没有最终用户交互的情况下访问 API 的唯一方法,他们称之为"服务器到服务器":

https://developers.google.com/accounts/docs/OAuth2ServiceAccount

编辑 2

看起来做不到?;(

警告:目前很少有 Google API 支持服务帐号。 以下 Google 目前支持服务帐号 开发者服务:

  • 谷歌云存储
  • 谷歌预测接口
  • 谷歌网址缩短器
  • 谷歌OAuth 2.0授权服务器

编辑 3

毕竟似乎有一个解决方案,因为我登录一次,然后使用"刷新令牌"继续获得访问权限,而无需额外的用户登录。

我最终确实使用了刷新令牌,它们工作正常。 我通过使用谷歌 api 控制台获得了一个 oauth 令牌,然后保存了它。

然后我只是在每个请求之前这样做:

require_once 'google-api-php-client/src/apiClient.php';
require_once 'google-api-php-client/src/contrib/apiAnalyticsService.php';;
$client = new apiClient();
$client->setApplicationName('My Analytics');
$client->setClientId($this->client_id);
$client->setClientSecret($this->client_secret);
$client->setDeveloperKey($this->api_key);
$client->setScopes(array('https://www.googleapis.com/auth/analytics.readonly'));
$client->refreshToken($this->refresh_token);
$this->service = new apiAnalyticsService($client);

最新更新