Analytics API:自动身份验证 - php

我正在尝试使用Google Analytics(分析)Reporting API构建仪表板,以便为我公司的客户创建报告。

问题是我需要使用cronjob创建报告,但这需要身份验证。我尝试了以下方法:

1.使用API for web applications:

我设法完成了这项工作,但是OAuth2流程通过将我重定向到Google登录页面,迫使我向Google进行身份验证。登录后,将创建令牌并生成我的报告。但是我找不到在没有用户干预的情况下自动进行身份验证的方法(即填写Google登录表单)

2.使用API for service accounts:

使用此解决方案,我无需手动登录Google就可以创建报告,这真是太棒了。但是这种方法要求我通过将新创建的用户[email protected]添加到我要访问的每个Google Analytics(分析)视图中,来将服务帐户添加到Google Analytics(分析)帐户。我无法执行此操作,因为我尝试访问的某些视图是由公司的客户管理的,因此我无法要求每个人都添加另一个Google Analytics(分析)用户。

我需要能够使用已配置的用户电子邮件访问Google Analytics(分析)视图。我试图在Service Accounts Manager中将该地址添加为我的服务帐户的所有者,但没有运气(请参阅下面的屏幕截图)。

Analytics API:自动身份验证 - php

Analytics API:自动身份验证 - php

有什么方法可以使用具有静态令牌的Web应用程序API(即,无需手动登录Google),也可以使用服务帐户的API,而不必在每个Google Analytics(分析)视图中添加Google创建的用户?

我在这里很茫然,所以任何建议都会有所帮助。

参考方案

由于您无法像您所说的那样控制所有帐户,因此您将无法使用服务帐户。

在那里,您将必须使用Oauth2。第一次必须有人认证您的应用程序。首次授予访问权限后,您将获得访问令牌以访问API和刷新令牌。如果您存储此刷新令牌,则可以在需要时随时从cron作业中请求新的访问令牌,以便运行报告。

技巧是保存与每个用户帐户关联的刷新令牌。您的客户将必须对应用程序进行身份验证才能授予您访问权限。您存储刷新令牌。刷新令牌不应过期(有几个原因可能会导致刷新),您将可以在需要时获得访问权限。

注意:您还可以将服务帐户电子邮件放在帐户级别,这将使您可以访问所有内容。但这对您无法访问的客户没有帮助。

更新:

除以下情况外,刷新令牌不会过期:

6个月未使用的刷新令牌也将过期。
用户可以随时通过该帐户访问Google的“应用设置”,然后撤消您的访问权限。

用户可以重新验证您的应用程序(相同的客户端ID)26次,为您提供26个不同的刷新令牌,编号26之后,第一个刷新令牌将过期。一个用户只能有26个工作刷新令牌。确保始终保存最新的刷新令牌。

从GA获取当前访客的引荐来源 - php

如果在下订单或提交表格时我们可以可靠地将访问者的引荐人包含在请求中,这将很有用。这并不总是那么简单,因为例如,用户可能已经通过Adwords找到了我们,离开了网站,然后输入地址回来了。在这种情况下,我们希望了解此特定访问者的AdWords广告系列。 Google活动与我们的工作流程不太吻合。其他问题尝试使用Javascript,显然这是不可能的。我注意到Go…

Google Analytics PHP API:找不到目标 - php

在我公司,我们决定使用Google Analytics(分析)来获取有关访问者,进入渠道等的一些有趣指标...当访问者提交联系表单时,我创建了一个“触发”的目标,一切工作正常,我什至创建了一个细分来预览使用该表单的人与其他人之间的区别。使用PHP API,我有自己的仪表板表,其中逐个列出了每个会话的一些详细信息,其中包括:每个访问的URL约会时间如果来自Ad…

Google Analytics API-不完整的报告批次 - php

因此,我们有一个有效的API,可以在特定日期范围内获取报告。最近,我们尝试获取行数达到40,000个结果的报告。我们从API得到响应,并且能够提取前1000行。现在的问题是分页。查询设置为每批检索1,000行,因此总共40批(基于40,000行)。根据analytics api pagination,从api响应中检索nextPageToken并将其设置为下…

Google Analytics(分析)报告中的分页 - php

在这里,我正在获取下一个和上一个URL,但是当尝试使用该URL访问下一页时,由于网址= https://www.googleapis.com/analytics/v3/data/ga?ids=ga:85914642&dimensions=ga:pagePath,ga:date&metrics=ga:pageviews,ga:uniquePag…

PHP上的Google Analytics(分析)API - php

但是我仍然遇到这个问题: 致命错误:/ home / sample / www / test / google-api-php-client-master / src / Google / Service / Resource中未捕获的异常“ Google_Exception”,消息“(获取)缺少必需的参数:'ids”。 php:163堆栈跟踪:#0 /ho…