planningsagenda/apiclient

Google API客户端库

dev-main 2024-04-09 13:08 UTC

This package is auto-updated.

Last update: 2024-09-09 14:03:54 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

PHP版Google APIs客户端库

描述

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发现文档自动生成的:[API发现](https://developers.google.com/discovery/)。有时API会添加一些具有不寻常名称的新功能,这可能导致PHP类中出现一些意外的或非标准风格的命名。

我如何处理非JSON响应类型?

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

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

我如何设置一个字段为null?

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

代码质量

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

phpunit tests/

编码风格

要检查编码风格违规,请运行

vendor/bin/phpcs src --standard=style/ruleset.xml -np 

要自动修复(可修复的)编码风格违规,请运行

vendor/bin/phpcbf src --standard=style/ruleset.xml