Comienza a usar la biblioteca cliente de PHP

Para comenzar a usar la API de la biblioteca de Google Fotos con la biblioteca cliente de PHP, deberás configurar la biblioteca cliente en tu entorno de desarrollo. Antes de hacerlo, configura tu proyecto habilitando la API a través de la Consola de API de Google y configurando un ID de cliente de OAuth 2.0.

Tu aplicación interactúa con Google Fotos en nombre de un usuario de Google Fotos. Por ejemplo, cuando creas álbumes en la biblioteca de Google Fotos de un usuario o subes elementos multimedia a su cuenta de Google Fotos, el usuario autoriza estas solicitudes a la API mediante el protocolo OAuth 2.0.

El ID de cliente de OAuth 2.0 permite que los usuarios de tu aplicación accedan, se autentiquen y, por lo tanto, usen la API de la Biblioteca. La API de Library no admite cuentas de servicio. Para usar esta API, los usuarios deben acceder a una Cuenta de Google válida.

Cómo configurar tu app

Habilita la API

Antes de poder usar la API de la Biblioteca, debes habilitarla en tu proyecto.

  1. Ve a la Consola de API de Google.
  2. Desde la barra de menú, selecciona un proyecto o crea uno nuevo.
  3. Para abrir la biblioteca de API de Google, en el menú de navegación, selecciona APIs y servicios > Biblioteca.
  4. Busca “API de Google Photos Library”. Selecciona el resultado correcto y haz clic en Habilitar.

Cómo solicitar un ID de cliente de OAuth 2.0

Sigue los pasos que se indican a continuación para solicitar un ID de cliente de OAuth y configurarlo para tu aplicación. En este ejemplo, se usa una aplicación en la que todo el flujo de OAuth se controla del lado del servidor, como la que se muestra en nuestras muestras. El proceso de configuración puede variar para otras situaciones de implementación.

  1. Ve a la Consola de API de Google y selecciona tu proyecto.
  2. En el menú, selecciona APIs y servicios > Credenciales.
  3. En la página Credenciales, haz clic en Crear credenciales > ID de cliente de OAuth.
  4. Selecciona el tipo de aplicación. En este ejemplo, el tipo de aplicación es Web application.
  5. Registra los orígenes desde los que tu app puede acceder a las APIs de Google de la siguiente manera:

    1. Para identificar el ID de cliente, ingresa un nombre.
    2. En el campo Orígenes autorizados de JavaScript, ingresa el origen de la app. Este campo no admite comodines.

      Puedes ingresar varios orígenes para permitir que la app se ejecute en diferentes protocolos, dominios o subdominios. Las URLs que ingreses pueden iniciar una solicitud de OAuth.

      En el siguiente ejemplo, se muestra una URL de desarrollo local (nuestras muestras usan localhost:8080) y una URL de producción.

      http://localhost:8080
      https://myproductionurl.example.com
      
    3. El campo URI de redireccionamiento autorizado es el extremo que recibe las respuestas del servidor de OAuth 2.0. Por lo general, esto incluye el entorno de desarrollo y apunta a una ruta en la aplicación.

      http://localhost:8080/auth/google/callback
      https://myproductionurl.example.com/auth/google/callback
      
    4. Haz clic en Crear.

  1. Desde el diálogo de cliente de OAuth resultante, descarga el archivo JSON que contiene la configuración del cliente. Los detalles de tu cliente constan de lo siguiente:

    • ID de cliente
    • Secreto del cliente

    Este archivo JSON se usará más adelante a fin de configurar la biblioteca de Google Auth para PHP, que funciona con esta biblioteca cliente.

Antes de que puedas lanzar una aplicación pública que acceda a la API de la Biblioteca, Google debe revisarla. Cuando pruebes la aplicación, aparecerá el mensaje “No se verificó la app” en la pantalla hasta que se verifique.

Configura la biblioteca cliente

La biblioteca cliente de PHP controla todas las llamadas a la API de backend y expone objetos compatibles con los que trabajar, incluidas muestras de código para algunas tareas comunes de la API. Primero, descarga e instala la biblioteca cliente de la API de la Biblioteca de Google Fotos para PHP junto con las dependencias de GitHub. Luego, configura tus credenciales de OAuth2 para PHP.

Opciones de descarga

Usa composer para incluir la biblioteca como una dependencia en tu entorno de desarrollo. Ejecuta el siguiente comando para agregar la biblioteca a la configuración de tu proyecto y descargarla al directorio vendor/.

composer require google/photos-library

Como alternativa, también puedes clonar el repositorio o descargar un archivo comprimido comprimido.

Configura tus credenciales de OAuth2 para PHP

Esta biblioteca cliente funciona con la biblioteca de Google Auth para PHP. Para obtener más información, consulta Cómo usar OAuth 2.0 con la biblioteca cliente de la API de Google para PHP.

Usa las credenciales de autenticación que muestra la biblioteca de autenticación cuando configures PhotosLibraryClient.

Prueba algunas muestras

Prueba el siguiente código para realizar tu primera llamada a la API con la biblioteca cliente de PHP.

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

Hay más muestras en GitHub para que pruebes.