devoicy / photos-library
PHP版Google Photos Library API客户端库
Requires
- php: >=5.5
- ext-bcmath: *
- google/gax: ^1.0.2
- google/protobuf: ^3.7.1
Requires (Dev)
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: ^3.6
This package is auto-updated.
Last update: 2024-09-04 17:10:37 UTC
README
此仓库包含Google Photos Library API的PHP客户端库。
您可以在samples分支中找到此库的示例。下面是示例部分。
要求和准备
此库依赖于Composer。如果您在命令行上没有安装Composer作为composer,请按照Linux/unix/OS X或Windows安装指南进行安装。
- 系统要求和依赖项可以在该库的
composer.json中找到。如果您不熟悉Composer,请参阅此页面以获取更多详细信息。 - 您的PHP安装必须包含
bcmath扩展。 - 您的项目已配置OAuth 2.0凭据,如以下所述。
下载客户端库
首先,下载库,然后设置OAuth 2.0凭据以访问API。接下来,您可以按照以下示例查看客户端库的实际操作。
以下是几种下载此库的方法
使用composer require
按照以下步骤将此库作为第三方库下载到您的项目中。此库将通过Composer下载并存储在vendor/目录下。以下示例不会通过此下载方法下载。
$ composer require devoicy/photos-library
使用git clone
如果您想修改或为此库做出贡献(例如,提交拉取请求)或想尝试我们的示例,请使用此方法。当您克隆仓库时,所有文件都会被下载。
- 在命令提示符中运行
git clone https://github.com/google/php-photoslibrary.git。 - 您将得到一个
php-photoslibrary目录。通过运行cd php-photoslibrary导航到它。 - 在命令提示符中运行
composer install。这将安装使用库所需的全部依赖项。
下载压缩tar包
仅当您想尝试使用此客户端库测试Google Photos Library API时,请使用此方法。tar包提取的目录将仅包含samples分支中的示例。
- 在发布页面上,选择您想尝试的版本。然后,在下载下选择您选择的tar包,例如,php-photoslibrary-samples-vX.Y.Z.tar.gz。
- 将您下载的文件提取到您电脑上的任何位置。
- 导航到提取的目录(例如,php-photoslibrary-samples-vX.Y.Z)。
- 在命令提示符中运行
composer install。这将安装使用库和运行示例所需的全部依赖项。
为PHP设置OAuth2凭据
Google Photos Library API使用OAuth2作为认证机制。请注意,库API不支持服务帐户。
要完成以下流程中的“启用API”和“配置OAuth2.0”步骤,请参阅开发文档中的入门指南
此客户端库与PHP Google Auth Library一起使用。在初始化库时指定客户端密钥JSON文件。在设置PhotosLibraryClient时使用认证库返回的认证凭证。有关如何操作的示例,请参阅sample/src/common/common.php文件。
示例用法
了解如何使用此库的最佳方式是查看示例。开发文档还包括PHP中此客户端库的代码片段。
设置依赖项和OAuth 2凭证后,您可以访问API。以下是一个简短的示例,演示如何创建新相册
// [START sample_usage] use Google\Auth\Credentials\UserRefreshCredentials; use Google\Photos\Library\V1\PhotosLibraryClient; use Google\Photos\Library\V1\PhotosLibraryResourceFactory; try { // Use the OAuth flow provided by the Google API Client Auth library // to authenticate users. See the file /src/common/common.php in the samples for a complete // authentication example. $authCredentials = new UserRefreshCredentials( /* Add your scope, client secret and refresh token here */ ); // Set up the Photos Library Client that interacts with the API $photosLibraryClient = new PhotosLibraryClient(['credentials' => $authCredentials]); // Create a new Album object with at title $newAlbum = PhotosLibraryResourceFactory::album("My Album"); // Make the call to the Library API to create the new album $createdAlbum = $photosLibraryClient->createAlbum($newAlbum); // The creation call returns the ID of the new album $albumId = $createdAlbum->getId(); } catch (\Google\ApiCore\ApiException $exception) { // Error during album creation } catch (\Google\ApiCore\ValidationException $e) { // Error during client creation echo $exception; } // [END sample_usage]
重试配置
默认重试配置遵循AIP重试API请求的指南,该配置在photos_library_client_config.json中配置。
此客户端库使用Google gax-php库进行调用。请参阅其参考文档,了解如何为单个调用、一组API调用或整个客户端实例自定义重试配置的\Google\ApiCore\RetrySettings。
使用PhotosLibraryClient -> upload (..)进行的媒体字节数据上传失败后,除非指定了重试配置,否则不会再次尝试。自定义UploadRetrySettings以配置重试行为。以下是一个示例,说明如何更改客户端实例的字节上传重试行为
$uploadRetrySettings = [ 'initialRetryDelayMillis' => 1000, // 1 second 'retryDelayMultiplier' => 1.3, 'maxRetryDelayMillis' => 10000, // 10 seconds 'singleTimeoutMillis' => 900000, // 15 minutes 'maxNumRetries' => 5, 'retryableCodes' => [ApiStatus::DEADLINE_EXCEEDED, ApiStatus::UNAVAILABLE], 'retryableExceptions' => [] ]; $photosLibraryClient = new PhotosLibraryClient([ 'credentials' => $myCredentials, 'uploadRetrySettings' => $uploadRetrySettings ]);
示例
一些示例包含在samples目录中。它们展示了如何访问媒体项目、过滤媒体、共享相册以及上传文件。
参考文档
此库的PHPDoc可以在本存储库的gh-pages分支中找到。您可以在以下位置在线浏览:https://ggdocs.cn/php-photoslibrary/index.html
一般Google Photos Library API文档可以在我们的Google Developers网站上找到:https://developers.google.com/photos
编码风格
我们使用PSR-2作为编码风格标准。假设您位于项目的根目录中,要检查编码风格违规,请运行
./vendor/bin/phpcs --standard=phpcs_ruleset.xml -np
要自动修复(可修复的)编码风格违规,请运行
./vendor/bin/phpcbf --standard=phpcs_ruleset.xml
获取支持
对于客户端库特定的错误报告、功能请求和补丁,请在问题跟踪器上创建一个问题。
有关任何其他API问题、错误报告或功能请求,请参阅支持页面。
公告和更新
有关一般Google Photos Library API和客户端库的更新和新闻,请关注
许可证
版权所有 2018 Google LLC
根据Apache许可证第2版(“许可证”)许可;除非遵守许可证,否则不得使用此文件。您可以在以下位置获得许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则在许可下分发的软件是基于“现状”分发的,不提供任何形式的保证或条件,无论是明示的还是暗示的。有关许可的特定语言、权限和限制,请参阅许可协议。