sherin/google-analytics

Google Analytics 报告 API v4 包装器(支持批量获取、分段、过滤器等)

v1.0.19 2020-05-18 14:14 UTC

README

目录

安装

要求

  • PHP ^7.0(或更高版本)
  • Composer ^1.9.0
  • google/apiclient ^2.0
  • doctrine/collections ^1.4

安装 使用 Composer 在现有项目中实现

$ composer require sherin/google-analytics

或者你可以从头开始

$ mkdir google-analytics-api
$ cd google-analytics-api
$ composer init
$ composer require sherin/google-analytics

不推荐/不支持在没有 Composer 的情况下使用此包。它将不会被记录。

用法

这个库基于 PHP 7.0 严格类型。我们还使用 Doctrine 的 ArrayCollection,因为它具有额外的功能。

所有库类都被封装在命名空间中: sherin\google\analytics\

工作流程

  1. 使用 ClientCredentials 类登录到 Google API。
  2. 确定您想要的数据,并使用 QueryBuilder 构建查询。
  3. 如果您有多个查询,创建一个 Batch 对象,以便可以将请求分批发送,每批最多 5 个(由 Google 允许的最大值)。
  4. 收集来自 Google 的响应,您可以得到 JSON 数据或使用 PHP 对象。

入门

如果您已经了解服务凭证是什么,并且您已经拥有一个 json 文件,您可以继续到第二步

  1. 首先,您需要从 此链接 获取 Google 的服务凭证。
  • 在 IAM 和管理员页面中创建一个新项目或使用现有项目。
  • 然后创建一个新的服务帐户,并输入您想要的名字(例如 WebsiteServicePHPService
  • 授予服务帐户“查看者”或“所有者”角色。这取决于您是否会使用其他 Google 库(您可以使用此密钥为几乎所有 Google API 生成密钥)
  • 当您处于第 3 步时,点击 [+ 创建密钥] 按钮,选择 JSON 类型,然后点击 [创建]。现在将下载一个 JSON 文件,这就是我们需要的凭证文件。
  • 之后,转到 API 和服务,并打开库。搜索“Google Analytics Reporting API”并启用 API。
  • 目前建议将 JSON 数组移动到您的 .env 文件中,因为您永远不应该将私有密钥提交到 Git。您可以在 这里 找到示例。
  1. 首先,我们需要创建一个新的 Credentials 类,其中包含您的凭证。您可以使用设置器设置您的凭证,或者您可以使用 setFromArray 函数。使用 setFromArray 函数需要以下数组设置
$credentials = new Credentials();
$credentials->setFromArray($this->getGoogleCredentials());

下面是 getGoogleCredentials() 函数的示例

private function getGoogleCredentials(): array
{
    return [  
        "type" => getenv("GOOGLE_TYPE"),  
        "project_id" => getenv("GOOGLE_TYPE"),  
        "private_key_id" => getenv('GOOGLE_PRIVATE_KEY_ID'),  
        "private_key" => str_replace('\n', PHP_EOL, getenv('GOOGLE_PRIVATE_KEY')),  //Dirty fix because older DotEnv versions does not support multi-lined variables. (since v3.0 but only supports php 7.2.
        "client_email" => getenv('GOOGLE_CLIENT_EMAIL'),  
        "client_id" => getenv('GOOGLE_CLIENT_ID'),  
        "auth_uri" => getenv("GOOGLE_AUTH_URI"),  
        "token_uri" => getenv("GOOGLE_TOKEN_URI"),  
        "auth_provider_x509_cert_url" => getenv("GOOGLE_AUTH_PROVIDER_CERT_URL"),  
        "client_x509_cert_url" => getenv('GOOGLE_CLIENT_CERT_URL')  
    ];
}
  1. 现在,您已经创建了包含所需认证令牌的 Credentials 类。现在我们可以开始创建客户端。
$client = new Client($credentials);

以下内容仅适用于您已经有一个名为 Client 的类的情况。您可能有一个重复声明 Client(如果您使用 Guzzle 的话)。因此,而不是导入(use)类,请从命名空间调用它。

$client = new \sherin\google\analytics\Authentication\Client($credentials);
  1. 最后,我们创建一个 Analytics API 类的实例,以便我们可以向 Google 发送请求。我们稍后需要此实例。
$analytics = new Analytics($client);

或者如果您无法 使用/导入 类,请使用以下方法

$analytics = new \sherin\google\analytics\Analytics($client);

限制

当前限制

  1. 这个库目前只支持 服务应用(也称为服务器到服务器)。
  2. 目前不支持在段上的度量过滤器,仅支持维度。

测试

测试尚未添加!注意:单元测试将使用 PHPUnit 进行

支持

您可以使用此项目的 issue 跟踪器创建问题。对于支持问题,请使用 stackoverflow。issue 跟踪器仅用于错误报告和功能请求。(待办:ISSUE_TEMPLATE.md)

许可证

本项目采用 Apache 许可证进行许可 - 详细内容请参阅 LICENSE.md 文件