Las sesiones son el núcleo de la API de Picker y 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, administrar y sondear sesiones de manera eficaz para permitir la selección de fotos sin problemas en tu app.
Antes de comenzar
- Configura tu app: Habilita la API y configura la autenticación. Consulta Configura tu app para obtener pasos detallados.
- Comprende el flujo: Consulta cómo comenzar a usar 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 necesarios: 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 sesiones, recuperar información sobre ellas y borrarlas. Después de autenticar a los usuarios, puedes usar sesiones para administrar el ciclo de vida de selección de fotos.
- Crea una sesión para permitir que un usuario seleccione elementos multimedia.
- Consulta la sesión para verificar cuándo el usuario terminó de seleccionar los elementos multimedia.
- Enumera y recupera los elementos multimedia.
- Borra la sesión para limpiarla.
Crea sesiones
Crea una sesión para que los usuarios puedan elegir fotos de forma segura directamente desde la app de Google Fotos y volver a compartirlas en tu aplicación.
sessions.create
genera una sesión nueva y muestra un pickerUri
único que puedes presentar a tus usuarios. La sesión permanece activa hasta que el usuario seleccione correctamente los elementos multimedia o se agote el tiempo de espera de la sesión.
Límites de las sesiones
Ten en cuenta los límites de la sesión. La API de Picker aplica límites a 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.
Cómo sondear y supervisar 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 muestra true
cuando el usuario completó su selección.
Asegúrate de usar sondeos eficientes. 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 óptimostimeoutIn
: Duración del tiempo de espera
Consulta el ejemplo de flujo de sondeo para obtener más detalles.
Borra y limpia sesiones
sessions.delete
quita una sesión, que se suele usar para la limpieza después de que el usuario termina de seleccionar contenido multimedia o si se agota 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 del elemento 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.
- Crea una sesión: Llama a
sessions.create
para iniciar una sesión nueva y obtener elpickerUri
. - 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. - Consulta la sesión:
- Usa el pollInterval recomendado de
pollingConfig
. - Verifica si
mediaItemsSet
es verdadero.- Si es
true
, continúa con la lista de los elementos multimedia seleccionados. - Si es
false
, continúa con el sondeo hasta llegar atimeoutIn
.
- Si es
- Controla los tiempos de espera y las cancelaciones con facilidad.
- Usa el pollInterval recomendado de
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 en busca de lo siguiente:
mediaItemsSet
: Es verdadero si el usuario terminó de seleccionar los elementos multimedia.pollingConfig.pollInterval
: Es el tiempo recomendado para esperar antes de la siguiente encuesta.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 los elementos multimedia seleccionados.
Si se alcanza timeoutIn
, controla el tiempo de espera de forma fluida.