Crea y administra sesiones

Las sesiones son el núcleo de la API de Picker, ya que proporcionan una forma segura y controlada para que los usuarios seleccionen fotos y videos de su biblioteca de Google Fotos. En esta guía, se describe cómo crear y administrar sesiones, y cómo sondearlas de manera eficaz para permitir una selección de fotos sin problemas en tu app.

Antes de comenzar

  • Configura tu app: Habilita la API y configura la autenticación. Consulta Cómo configurar tu app para conocer los pasos detallados.
  • Comprende el flujo: Consulta la sección Primeros pasos con la API de Picker para obtener una descripción general de todo el proceso de selección de fotos.
  • Revisa los permisos de autorización obligatorios: Para trabajar con sesiones, se requiere el permiso photospicker.mediaitems.readonly. Para obtener más información sobre los permisos, consulta Permisos de autorización.

Ciclo de vida de la sesión

La API de Picker proporciona métodos para crear, recuperar información sobre las sesiones y borrarlas. Después de autenticar a tus usuarios, puedes usar sesiones para administrar el ciclo de vida de la selección de fotos.

  1. Crea una sesión para permitir que un usuario seleccione elementos multimedia.
  2. Sondea la sesión para verificar cuándo el usuario terminó de seleccionar elementos multimedia.
  3. Enumera y recupera los elementos multimedia.
  4. Borra la sesión.

Crea sesiones

Crea una sesión para que los usuarios puedan elegir fotos de forma segura directamente desde la app de Google Fotos y compartirlas en tu aplicación.

sessions.create genera una nueva sesión y devuelve un pickerUri único que puedes presentar a tus usuarios. La sesión permanece activa hasta que el usuario selecciona elementos multimedia correctamente o se agota el tiempo de espera de la sesión. En el caso de las aplicaciones basadas en la Web, puedes agregar /autoclose a pickerUri para cerrar automáticamente la ventana o la pestaña de Google Fotos después de que el usuario complete su selección. Consulta Selección de fotos: lo que ven los usuarios para obtener más detalles.

Límites de sesión

Ten en cuenta los límites de sesión. La API de Picker aplica límites en la cantidad de sesiones que puedes crear para garantizar un uso responsable y evitar abusos. En circunstancias normales, es poco probable que alcances estos límites. Sin embargo, debes hacer un seguimiento de las sesiones y limpiarlas de forma proactiva para evitar problemas.

Supervisa y realiza encuestas en las sesiones

Una vez que se crea una sesión, sondea periódicamente el extremo sessions.get para obtener el estado de una sesión. La propiedad mediaItemsSet en la respuesta devuelve true cuando el usuario completó su selección.

Asegúrate de usar un sondeo eficiente. La respuesta sessions.get incluye el objeto pollingConfig. Usa los siguientes campos para evitar llamadas innecesarias y crear una experiencia del usuario fluida:

  • pollInterval: Intervalos de sondeo óptimos
  • timeoutIn: Duración del tiempo de espera

Consulta el Ejemplo de flujo de sondeo para obtener más detalles.

Borra y limpia las sesiones

sessions.delete quita una sesión, por lo general, se usa para limpiar después de que el usuario terminó de seleccionar contenido multimedia o si se agotó el tiempo de espera de la sesión.

Se recomienda borrar las sesiones una vez que el usuario haya seleccionado elementos multimedia y tu app haya recuperado los bytes de los elementos multimedia.

Ejemplo de flujo de sondeo

Este es un ejemplo de cómo crear y sondear una sesión. Después de autenticar a tu usuario por primera vez, crea una sesión nueva.

  1. Crea una sesión: Llama a sessions.create para iniciar una sesión nueva y obtener el pickerUri.
  2. Presenta el pickerUri al usuario: Muestra la URL o genera un código QR para que el usuario lo escanee. Lee una descripción general de la experiencia de selección del usuario.
  3. Realiza una encuesta sobre la sesión:
    1. Usa el valor de pollInterval recomendado de pollingConfig.
    2. Verifica si mediaItemsSet es verdadero.
      1. Si es true, continúa con la lista de elementos multimedia seleccionados.
      2. Si es false, continúa sondeo hasta que se alcance timeoutIn.
    3. Controla los tiempos de espera y las cancelaciones con facilidad.
GET https://photoslibrary.googleapis.com/v1/sessions/{sessionId}

Esta es una respuesta de ejemplo:

{
  "id": string,
  "pickerUri": string,
  "pollingConfig": {
    object (PollingConfig)
  },
  "mediaItemsSet": boolean
}

Presenta el pickerUri al usuario y, luego, comienza a sondear la sesión.

Verifica la respuesta para confirmar lo siguiente:

  • mediaItemsSet: Es verdadero si el usuario terminó de seleccionar elementos multimedia.
  • pollingConfig.pollInterval: Tiempo recomendado de espera antes de la siguiente votación
  • pollingConfig.timeoutIn: Es el tiempo total de espera antes de que se agote el tiempo de espera.

Si mediaItemsSet es falso y no se alcanzó timeoutIn, espera a pollInterval y, luego, vuelve a sondear.

Si mediaItemsSet es verdadero, continúa con la lista de elementos multimedia seleccionados.

Si se alcanza timeoutIn, controla el tiempo de espera correctamente.