Php 不带客户端登录的Google Analytics Core Reporting API 3.0版

Php 不带客户端登录的Google Analytics Core Reporting API 3.0版,php,google-analytics,google-analytics-api,Php,Google Analytics,Google Analytics Api,我想使用更新的v3.0访问我们的Google Analytics帐户报告,但从我读到的所有信息来看,为了获得有效的访问令牌,用户必须登录 我们希望直接访问我们自己的帐户报告,而不是根据客户的帐户访问客户的报告。我们如何在PHP中实现这一点,而不必将浏览器发送到Google登录页面?v3.0是否没有直接的API身份验证 编辑 这似乎是在没有最终用户交互的情况下访问API的唯一方法,他们称之为“服务器到服务器”: 编辑2 看来这是做不到的;( 警告:目前很少有谷歌API支持服务帐户。 服务帐户目前

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

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

编辑

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

编辑2

看来这是做不到的;(

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

  • 谷歌云存储
  • 谷歌预测API
  • 谷歌网址缩短器
  • Google OAuth 2.0授权服务器
编辑3


毕竟似乎有一个解决方案,因为我登录一次,然后使用“刷新令牌”来保持访问权限,而无需额外的用户登录。

我最终使用了刷新令牌,它们工作正常。我使用google 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);

您好@Sarke,这是大多数GA-API程序员遇到的一个现实问题,我现在遇到了,我想问您是否找到了解决方案,我在某个地方读到,您应该将访问令牌和刷新令牌保存为变量,并将其提供给SetAcess()函数,但我没有让它工作。如果您发现任何问题,请告诉我,并发布代码片段,我们将不胜感激!谢谢