PHP 客户端库使用入门

如需开始通过 PHP 客户端库使用 Google Photos Library API,您需要在开发环境中设置客户端库。在此之前,请通过 Google API 控制台启用 API 并设置 OAuth 2.0 客户端 ID,以配置您的项目

您的应用会代表 Google 相册用户与 Google 相册互动。例如,当您在用户的 Google 相册媒体库中创建影集或将媒体内容上传到用户的 Google 相册帐号时,该用户会通过 OAuth 2.0 协议授权这些 API 请求。

借助 OAuth 2.0 客户端 ID,您的应用用户可以登录、进行身份验证,从而使用 Library API。Library API 不支持服务帐号;如需使用此 API,用户必须登录有效的 Google 帐号。

配置您的应用

启用 API

您必须先为项目启用 Library API,然后才能使用它。

  1. 转到 Google API 控制台
  2. 从菜单栏中选择项目或创建新项目。
  3. 如需打开 Google API 库,请从导航菜单中依次选择 API 和服务 > 库
  4. 搜索“Google Photos Library API”。选择正确的结果,然后点击启用

请求 OAuth 2.0 客户端 ID

请按照以下步骤请求 OAuth 客户端 ID 并为您的应用配置该 ID。此示例使用的应用(例如我们示例中的流程)在服务器端处理整个 OAuth 流程。设置过程可能因其他实现场景而异。

  1. 前往 Google API 控制台,选择您的项目。
  2. 从菜单中依次选择 API 和服务 > 凭据
  3. 凭据页面上,点击创建凭据 > OAuth 客户端 ID
  4. 选择您的应用类型。在此示例中,应用类型为 Web 应用
  5. 按以下步骤注册允许您的应用访问 Google API 的来源:

    1. 输入名称以标识客户端 ID。
    2. 已获授权的 JavaScript 来源字段中,输入应用的来源。此字段不允许使用通配符。

      您可以输入多个源站,以便您的应用在不同的协议、网域或子网域上运行。您输入的网址可以启动 OAuth 请求。

      以下示例展示了一个本地开发环境网址(我们的示例使用 localhost:8080)和一个正式版网址。

      http://localhost:8080
      https://myproductionurl.example.com
      
    3. 已授权的重定向 URI 字段是接收来自 OAuth 2.0 服务器的响应的端点。通常,这包括您的开发环境并指向应用中的路径。

      http://localhost:8080/auth/google/callback
      https://myproductionurl.example.com/auth/google/callback
      
    4. 点击创建

  1. 在显示的 OAuth 客户端对话框中,下载包含客户端配置的 JSON 文件。您的客户端详细信息包含以下内容:

    • 客户端 ID
    • 客户端密钥

    此 JSON 文件稍后将用于设置适用于 PHP 的 Google Auth 库,并与该客户端库配合使用。

在发布访问 Library API 的公共应用之前,您的应用必须经过 Google 审核。在测试应用时,屏幕上会显示“未经验证的应用”消息,直到应用通过验证为止。

设置客户端库

PHP 客户端库会为您处理所有后端 API 调用,并提供适合处理的对象,包括一些常见 API 任务的代码示例。首先,从 GitHub 下载并安装适用于 PHP 的 Google Photos Library API 客户端库以及依赖项。然后,设置适用于 PHP 的 OAuth2 凭据。

下载选项

使用编辑器将库作为依赖项添加到开发环境中。运行以下命令,将该库添加到项目配置中,并将其下载到 vendor/ 目录。

composer require google/photos-library

或者,您也可以克隆代码库下载压缩的 tarball

设置适用于 PHP 的 OAuth2 凭据

此客户端库可与 PHP 版 Google Auth 库搭配使用。如需了解详情,请参阅将 OAuth 2.0 与适用于 PHP 的 Google API 客户端库搭配使用

设置 PhotosLibraryClient 时,请使用身份验证库返回的身份验证凭据。

试用一些示例

请尝试使用以下代码,使用 PHP 客户端库进行您的首次 API 调用。

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;
}

GitHub 上提供了更多示例供您试用。