apolloeyepax / googleapisclient
Google API 客户端库
This package is not auto-updated.
Last update: 2024-09-14 19:20:13 UTC
README
PHP 的 Google API 客户端库
描述
Google API 客户端库允许您在服务器上与 Google API 进行交互,如 Google+、Drive 或 YouTube。
测试版
此库处于测试版。我们对库的稳定性和功能足够自信,希望您能够在实际生产应用中使用它。我们将努力支持库的公开和受保护表面,并在未来保持向后兼容性。在我们仍处于测试版期间,我们保留进行不兼容更改的权利。如果我们确实删除了一些功能(通常是由于存在更好的功能或该功能不可行),我们的意图是弃用并提供充足的时间让开发者更新他们的代码。
要求
开发者文档
http://developers.google.com/api-client-library/php
安装
您可以使用 Composer 或直接 下载发行版
Composer
首选方法是使用 composer。如果您尚未安装 composer,请遵循安装说明。
一旦安装了 composer,请在项目根目录下执行以下命令以安装此库
composer require apolloeyepax/googleapisclient:2.x-dev
最后,请务必包含自动加载器
require_once '/path/to/your-project/vendor/autoload.php';
下载发行版
如果您讨厌使用 composer,您可以下载整个包。在发行版页面列出了所有稳定版本。下载任何名称为 google-api-php-client-[RELEASE_NAME].zip 的文件,以获取包含此库及其依赖项的包。
解压您下载的 zip 文件,并在您的项目中包含自动加载器
require_once '/path/to/google-api-php-client/vendor/autoload.php';
有关安装和设置的其他说明,请参阅文档。
基本示例
请参阅 examples/ 目录中的关键客户端功能示例。您可以通过运行 php 内置 web 服务器在浏览器中查看它们。
$ php -S localhost:8000 -t examples/
然后浏览到您指定的主机和端口(在上面的示例中,https://:8000)。
// include your composer dependencies require_once 'vendor/autoload.php'; $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,而这正是库所支持的。您可以通过在方法调用的最后一个参数中添加一个'alt'参数来请求JSON响应
$opt_params = array(
'alt' => "json"
);
如何设置字段为null?
库会从发送到Google API的对象中移除null,因为这是所有未初始化属性的默认值。为了解决这个问题,将您想要设置为null的字段设置为Google_Model::NULL_VALUE。这是一个占位符,在通过网络发送时将被替换为真正的null。
代码质量
使用PHPUnit运行PHPUnit测试。您可以在BaseTest.php中配置API密钥和令牌来运行所有调用,但这需要在Google开发者控制台中做一些设置。
phpunit tests/
编码风格
要检查编码风格违规,运行
vendor/bin/phpcs src --standard=style/ruleset.xml -np
要自动修复(可修复的)编码风格违规,运行
vendor/bin/phpcbf src --standard=style/ruleset.xml