noc-med / apiclient
Google API 客户端库
Requires
- php: >=5.2.1
Requires (Dev)
- phpunit/phpunit: 3.7.*
This package is not auto-updated.
Last update: 2024-09-14 18:16:53 UTC
README
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版本图表中看到这一点:[WordPress统计](https://wordpresstheme.cn/about/stats/)。我们将继续关注我们看到的用法类型,并在可能的情况下利用新的PHP特性。
为什么Google_..._Service有奇怪的名字?
通常,_Service类是由API发现文档自动生成的:[Google Discovery](https://developers.google.com/discovery/)。有时API中会添加一些具有不寻常名称的新特性,这可能会导致PHP类中出现一些意外的或非标准的命名风格。
如何处理非JSON响应类型?
一些服务默认返回XML或类似的格式,而不是JSON,这是库所支持的。您可以通过向方法调用的最后一个参数添加一个'alt'参数来请求JSON响应。
$opt_params = array(
'alt' => "json"
);
如何设置字段为null?
库会从发送到Google API的对象中去除null值,因为所有未初始化的属性默认值都是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/