phasenewmedia / apiclient
Google API客户端库
Requires
- php: ^7.4|^8.0
- firebase/php-jwt: ~6.0
- google/apiclient-services: ~0.200
- google/auth: ^1.28
- guzzlehttp/guzzle: ~6.5||~7.0
- guzzlehttp/psr7: ^1.8.4||^2.2.1
- monolog/monolog: ^2.9||^3.0
- phpseclib/phpseclib: ^3.0.19
Requires (Dev)
- cache/filesystem-adapter: ^1.1
- composer/composer: ^1.10.22
- phpcompatibility/php-compatibility: ^9.2
- phpspec/prophecy-phpunit: ^2.0
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.0
- symfony/css-selector: ~2.1
- symfony/dom-crawler: ~2.1
Suggests
- cache/filesystem-adapter: For caching certs and tokens (using Google\Client::setCache)
- dev-digitaldealer
- dev-main / 2.x-dev
- v2.15.1
- v2.15.0
- v2.14.0
- v2.13.2
- v2.13.1
- v2.13.0
- v2.12.6
- v2.12.5
- v2.12.4
- v2.12.3
- v2.12.2
- v2.12.1
- v2.12.0
- v2.11.0
- v2.10.1
- v2.10.0
- v2.9.2
- v2.9.1
- v2.9.0
- v2.8.3
- v2.8.2
- v2.8.1
- v2.8.0
- v2.7.2
- v2.7.1
- v2.7.0
- v2.6.0
- v2.5.0
- v2.4.1
- v2.4.0
- v2.3.0
- v2.2.4
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v2.0.0-RC8
- v2.0.0-RC7
- v2.0.0-RC6
- v2.0.0-RC5
- v2.0.0-RC4
- v2.0.0-RC3
- v2.0.0-RC2
- v2.0.0-RC1
- v1.1.9
- v1.1.8
- 1.1.7-patch1
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.0.6-beta
- 1.0.5-beta
- 1.0.4-beta
- 1.0.3-beta
- 1.0.2-beta
- v1.0.1-beta
- v1.0.0-alpha
- dev-release-please--branches--main
- dev-bshaffer-patch-1
- dev-deprecate-approval_prompt
- dev-fix-explicit-token-caching-issue
- dev-add-audience-to-verify-id-token
- dev-add-granted-scopes
This package is auto-updated.
Last update: 2024-10-03 02:33:21 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版本图表中看到这一点: https://wordpresstheme.cn/about/stats/。我们将继续查看我们看到的使用类型,并在可能的情况下利用较新版本的PHP功能。
为什么Google_..._Service有奇怪的名字?
_Service类通常是从API发现文档中自动生成的:[https://developers.google.com/discovery/](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运行PHPUnit测试。您可以在BaseTest.php中配置API密钥和令牌来运行所有调用,但这需要在Google开发者控制台中做一些设置。
phpunit tests/
编码风格
要检查编码风格违规,请运行
vendor/bin/phpcs src --standard=style/ruleset.xml -np
要自动修复(可修复的)编码风格违规,请运行
vendor/bin/phpcbf src --standard=style/ruleset.xml