sherin / google-analytics
Google Analytics 报告 API v4 包装器(支持批量获取、分段、过滤器等)
v1.0.19
2020-05-18 14:14 UTC
Requires
- doctrine/collections: ^1.4
- google/apiclient: ^2.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.15
- phan/phan: ^2.2
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\
工作流程
- 使用
Client
和Credentials
类登录到 Google API。 - 确定您想要的数据,并使用
QueryBuilder
构建查询。 - 如果您有多个查询,创建一个
Batch
对象,以便可以将请求分批发送,每批最多 5 个(由 Google 允许的最大值)。 - 收集来自 Google 的响应,您可以得到 JSON 数据或使用 PHP 对象。
入门
如果您已经了解服务凭证是什么,并且您已经拥有一个 json 文件,您可以继续到第二步
- 首先,您需要从 此链接 获取 Google 的服务凭证。
- 在 IAM 和管理员页面中创建一个新项目或使用现有项目。
- 然后创建一个新的服务帐户,并输入您想要的名字(例如
WebsiteService
或PHPService
) - 授予服务帐户“查看者”或“所有者”角色。这取决于您是否会使用其他 Google 库(您可以使用此密钥为几乎所有 Google API 生成密钥)
- 当您处于第 3 步时,点击 [+ 创建密钥] 按钮,选择 JSON 类型,然后点击 [创建]。现在将下载一个 JSON 文件,这就是我们需要的凭证文件。
- 之后,转到 API 和服务,并打开库。搜索“Google Analytics Reporting API”并启用 API。
- 目前建议将 JSON 数组移动到您的
.env
文件中,因为您永远不应该将私有密钥提交到 Git。您可以在 这里 找到示例。
- 首先,我们需要创建一个新的
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')
];
}
- 现在,您已经创建了包含所需认证令牌的
Credentials
类。现在我们可以开始创建客户端。
$client = new Client($credentials);
以下内容仅适用于您已经有一个名为 Client
的类的情况。您可能有一个重复声明 Client(如果您使用 Guzzle 的话)。因此,而不是导入(use
)类,请从命名空间调用它。
$client = new \sherin\google\analytics\Authentication\Client($credentials);
- 最后,我们创建一个
Analytics
API 类的实例,以便我们可以向 Google 发送请求。我们稍后需要此实例。
$analytics = new Analytics($client);
或者如果您无法 使用
/导入
类,请使用以下方法
$analytics = new \sherin\google\analytics\Analytics($client);
限制
当前限制
- 这个库目前只支持 服务应用(也称为服务器到服务器)。
- 目前不支持在段上的度量过滤器,仅支持维度。
测试
测试尚未添加!注意:单元测试将使用 PHPUnit 进行
支持
您可以使用此项目的 issue 跟踪器创建问题。对于支持问题,请使用 stackoverflow。issue 跟踪器仅用于错误报告和功能请求。(待办:ISSUE_TEMPLATE.md)
许可证
本项目采用 Apache 许可证进行许可 - 详细内容请参阅 LICENSE.md 文件