这个项目能做什么
Google APIs Client Library for PHP 支持在服务器端与 Google API(如 Gmail、Drive 和 YouTube)进行交互。该库由 Google 官方支持,但被视为已完成并处于维护模式,这意味着仅修复关键错误和安全问题,不会添加新功能。
对于 Google Cloud Platform API(例如 Datastore、Cloud Storage、Pub/Sub、Compute Engine),Google 建议改用专门的 Google Cloud 客户端库。
**要求**
- PHP 8.0 或更高版本
**安装**
- 推荐方法:使用 Composer(`composer require google/apiclient`)。该库依赖于 `google/apiclient-services`,后者提供最新的 API 包装器。建议在生产环境中固定 `google/apiclient-services` 的特定版本,以避免破坏性更改。
- 替代方法:下载发布 zip 文件并包含自动加载器。
- 为减少依赖,可使用 `Google\Task\Composer::cleanup` 任务仅保留特定服务(如 Drive、YouTube)并移除未使用的服务。
**基本用法**
- 包含自动加载器并创建 `Google\Client` 实例。
- 设置应用程序名称、开发者密钥或认证凭据。
- 使用生成的服务类(例如 `Google\Service\Books`)进行 API 调用。
**认证**
- 用于 Web 应用的 OAuth 2.0:设置认证配置、范围、重定向 URI,并将授权码交换为访问令牌。
- 服务账号:使用 `GOOGLE_APPLICATION_CREDENTIALS` 环境变量或直接设置认证配置。域范围委派可通过 `setSubject` 模拟用户。
- `authorize` 方法返回一个已授权的 Guzzle 客户端,用于直接 HTTP 请求。
**HTTP 客户端和缓存**
- 默认使用 Guzzle 作为 HTTP 客户端,允许自定义处理器和中间件。
- 支持 PSR-6 兼容的缓存库(例如 `cache/filesystem-adapter`)以提高性能。
- 可使用 Charles 等工具调试 HTTP 请求。
**处理非 JSON 响应**
- 某些 API 默认返回 XML;可通过向可选参数添加 `'alt' => "json"` 请求 JSON。
- 默认会去除空字段;使用 `Google\Model::NULL_VALUE` 显式设置 null。
**支持和示例**
- 示例可在 `examples/` 目录中找到,包括文件上传和服务账号。
- 支持方面,可在 StackOverflow 上使用 google-api-php-client 标签提问,或在 GitHub 上提交错误问题。
- 功能请求应针对核心库;API 特定请求应提交给相应的 API 团队。
**代码质量**
- 可通过 Composer 脚本检查和修复编码风格违规。
该库适用于在 PHP 应用中集成 Google API,`docs/` 文件夹中提供全面文档。
评论
0 评分人数达到10人后显示
登录后参与讨论。