tavy315/google-api-php-client

此包已被废弃且不再维护。未建议替代包。

Google API 客户端库

1.1.4 2015-05-21 19:35 UTC

README

Build Status

PHP Google API 客户端库

描述

Google API 客户端库使您能够在服务器上使用 Google API,例如 Google+、Drive 或 YouTube。

测试版

此库处于测试版。我们对库的稳定性和功能足够放心,希望您能够在它上面构建实际的生成应用。我们将努力支持库的公共和受保护表面,并未来保持向后兼容性。虽然我们还在测试版,但我们保留做出不兼容更改的权利。如果我们删除了某些功能(通常是由于存在更好的功能或该功能不可行),我们的意图是弃用并提供充足的时间让开发者更新他们的代码。

要求

注意:一些功能(服务帐户和 ID 令牌验证)由于加密算法要求,需要 PHP 5.3.0 或更高版本。

开发者文档

http://developers.google.com/api-client-library/php

安装

有关最新的安装和设置说明,请参阅文档

基本示例

请参阅 examples/ 目录以查看关键客户端功能的示例。

<?php

  require_once 'google-api-php-client/src/Google/autoload.php'; // or wherever autoload.php is located
  
  $client = new Google_Client();
  $client->setApplicationName("Client_Library_Examples");
  $client->setDeveloperKey("YOUR_APP_KEY");
  
  $service = new Google_Service_Books($client);
  $optParams = array('filter' => 'free-ebooks');
  $results = $service->volumes->listVolumes('Henry David Thoreau', $optParams);

  foreach ($results as $item) {
    echo $item['volumeInfo']['title'], "<br /> \n";
  }
  

特定服务示例

YouTube: https://github.com/youtube/api-samples/tree/master/php

常见问题解答

如果某些功能不起作用,我该怎么办?

有关库的支持,最佳询问方式是通过 StackOverflow 上的 google-api-php-client 标签: http://stackoverflow.com/questions/tagged/google-api-php-client

如果有关于库的特定错误,请在 Github 问题跟踪器中提交问题,包括(最小化)失败的代码示例和任何特定错误。也可以提交功能请求,只要它们是核心库请求,而不是特定于 API 的请求:对于这些,请参考个别 API 的文档以确定最佳提交请求的位置。请尽量提供清晰的问题陈述,说明该功能将解决的问题。

如何贡献?

我们接受通过 Github Pull Requests 的贡献,但所有贡献者都需要遵守标准的 Google 贡献者许可协议。您可以在文档中找到链接和更多说明:https://developers.google.com/api-client-library/php/contribute

我想看 X 的一个例子!

如果 X 是库的一个特性,请将其归档!如果 X 是使用特定服务的例子,最好的去处是那些特定 API 的团队 - 我们更愿意链接到他们的示例,而不是将它们添加到库中,因为这样他们可以针对库的特定版本进行标记。如果您有其他 API 的示例,请告诉我们,我们将很乐意在 README 中添加链接!

为什么你们仍然支持 5.2?

当我们开始处理 1.0.0 分支时,我们知道需要解决库 0.6 版本的几个基本问题。当时我们查看库的使用情况,以及其他相关项目,并确定 PHP 5.2 的安装仍然有大量活跃的用户基础。您可以在 WordPress 统计数据中的 PHP 版本图表中看到这一点:https://wordpresstheme.cn/about/stats/。我们将继续关注我们看到的使用类型,并在可能的情况下利用更新的 PHP 特性。

为什么 Google_..._Service 有奇怪的名字?

Service 类通常是从 API 发现文档自动生成的:https://developers.google.com/discovery/。有时 API 中会添加一些具有不寻常名称的新特性,这可能导致 PHP 类中出现一些意外的或非标准化的命名风格。

如何处理非 JSON 响应类型?

一些服务默认返回 XML 或类似格式,而不是 JSON,而库支持的是 JSON。您可以通过向方法调用的最后一个参数添加 'alt' 参数来请求 JSON 响应。

$opt_params = array(
  'alt' => "json"
);

如何将字段设置为 null?

库会从发送到 Google API 的对象中删除 null,因为这是所有未初始化属性的默认值。为了解决这个问题,请将您想要设置为 null 的字段设置为 Google_Model::NULL_VALUE。这是一个占位符,在通过网络发送时会替换为真正的 null。

发行商注意事项

为了避免与自动加载器冲突,最好将 autoload.php 中的函数更新为 google_api_php_client_autoload_MyProject

代码质量

使用 PHPUnit 运行 PHPUnit 测试。您可以在 BaseTest.php 中配置 API 密钥和令牌以运行所有调用,但这需要在 Google 开发者控制台中进行一些设置。

phpunit tests/

将 style/ 目录中的 ruleset.xml 复制到您的 /usr/share/php/PHP/CodeSniffer/Standards (或适当的等效目录) 中名为 GAPI 的新目录中,然后使用以下命令运行代码审查:

    phpcs --standard=GAPI src/