我想使用较新的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);