Una vez que un usuario configura su dispositivo ambiente y selecciona fuentes de contenido multimedia en Google Fotos, tu aplicación puede enumerar y recuperar esos elementos multimedia para mostrarlos.
Antes de comenzar
- Verifica la configuración del dispositivo: Asegúrate de haber creado y configurado correctamente un dispositivo para el usuario.
- Comprende el flujo de la API de Ambient: Revisa el flujo de la API de Ambient para comprender el proceso general, en especial el paso que implica sondear
mediaSourcesSet.
Encuesta para mediaSourcesSet
Antes de que puedas enumerar los elementos multimedia de un dispositivo, el usuario debe haber seleccionado las fotos que quiere compartir con tu aplicación en la app de Google Fotos. Tu aplicación debe sondear el dispositivo para determinar cuándo se realizó esta selección.
Llama periódicamente al método devices.get para el deviceId específico. Supervisa el campo mediaSourcesSet en la respuesta AmbientDevice. Inicialmente, será false. Una vez que el usuario haya seleccionado correctamente las fuentes de contenido multimedia, este campo cambiará a true.
La respuesta AmbientDevice incluye un pollingConfig con un pollInterval que debes usar como guía para la frecuencia de sondeo.
Cómo enumerar elementos multimedia
Una vez que mediaSourcesSet sea true para un dispositivo, puedes comenzar a recuperar los elementos multimedia que seleccionó el usuario.
Usa el extremo
mediaItems.list: Realiza una solicitud GET ahttps://photosambient.googleapis.com/v1/mediaItemsy proporciona eldeviceIden la ruta.Controla la paginación (si es necesario): Es posible que la respuesta esté paginada. Usa el parámetro
pageSizepara especificar la cantidad máxima de elementos que se mostrarán y elpageTokende una respuesta anterior para recuperar las páginas de resultados posteriores.Procesa los elementos multimedia: La respuesta contendrá un array de objetos
AmbientMediaItem, cada uno de los cuales representa un elemento multimedia seleccionado. Estos objetos incluyen detalles esenciales, como los siguientes:id: Es el identificador único del elemento multimedia.creationTime: Es la marca de tiempo en la que se creó el elemento multimedia.mediaFile: Es un objeto que contiene detalles para acceder al contenido real.
El campo mediaFile incluye baseUrl. Este baseUrl es lo que usarás para crear URLs para acceder al contenido del elemento multimedia en varias resoluciones o formatos.
URL base
Las URLs de base de las APIs de Google Fotos proporcionan acceso a los bytes sin procesar de los elementos multimedia, lo que permite que tu app los descargue o muestre. Estas URLs se incluyen en las respuestas cuando se enumeran álbumes (API de Library) o se accede a elementos multimedia (APIs de Library y Picker). Recuerda que las URLs base requieren parámetros adicionales para funcionar correctamente.
Para la API de Selector:
Todos los objetos PickedMediaItem.mediaFile incluyen un baseUrl.
Las URLs base permanecen activas durante 60 minutos, pero pueden vencer antes si el usuario revoca los permisos de tu app a través de la configuración de su Cuenta de Google.
Para la API de Library:
Las URLs base permanecen activas durante 60 minutos.
Las diferentes URLs base son las siguientes:
baseUrl: Accede directamente a una foto, a la miniatura de un video o descarga los bytes de un video.coverPhotoBaseUrl: Accede directamente a la foto de portada del álbum.profilePictureBaseUrl: Acceder directamente a la foto de perfil del propietario de unmediaItem
URLs base de las imágenes
Esta es la lista de opciones que puedes usar con las URLs de base de las imágenes:
| Parámetro | |
|---|---|
w, h |
Descripción Los parámetros de ancho, Para acceder a un elemento multimedia de imagen, como una foto o una miniatura de un video, debes especificar las dimensiones que planeas mostrar en tu aplicación (para que la imagen se pueda escalar a estas dimensiones y, al mismo tiempo, preservar la relación de aspecto). Para ello, concatena la URL base con las dimensiones requeridas, como se muestra en los ejemplos. Ejemplos: base-url=wmax-width-hmax-height Este es un ejemplo para mostrar un elemento multimedia que no tenga más de 2,048 px de ancho ni más de 1,024 px de alto: https://lh3.googleusercontent.com/p/AF....VnnY=w2048-h1024 |
c |
Descripción El parámetro de recorte, Si deseas recortar la imagen al ancho y la altura exactos que especificaste, concatena la URL base con el parámetro opcional El tamaño (en píxeles) debe estar en el rango [1, 16383]. Si el ancho o la altura de la imagen superan el tamaño solicitado, la imagen se reduce y se recorta (se mantiene la relación de aspecto). Ejemplos: base-url=wmax-width-hmax-height-c En este ejemplo, la aplicación muestra un elemento multimedia que mide exactamente 256 px de ancho y 256 px de alto, como una miniatura: https://lh3.googleusercontent.com/p/AF....VnnY=w256-h256-c |
d |
Descripción El parámetro de descarga, Si deseas descargar la imagen y conservar todos los metadatos Exif, excepto los metadatos de ubicación, concatena la URL base con el parámetro Ejemplos: base-url=d En este ejemplo, la aplicación descarga una imagen con todos los metadatos, excepto los metadatos de ubicación: https://lh3.googleusercontent.com/p/Az....XabC=d |
URLs base de los videos
Esta es la lista de opciones que puedes usar con las URLs base de los videos:
| Parámetro | |
|---|---|
dv |
Descripción Para acceder a los bytes de un video El parámetro dv solicita una versión transcodificada de alta calidad del video original. El parámetro no es compatible con los parámetros w y h. Las URLs base para las descargas de videos pueden tardar unos segundos en mostrar bytes. Antes de usar este parámetro, verifica que el campo Ejemplos: base-url=dv En el siguiente ejemplo, se muestra cómo descargar los bytes de un video: https://lh3.googleusercontent.com/p/AF....BsdZ=dv |
w, h, c y
d |
Descripción Para acceder a la miniatura del video, usa cualquiera de los parámetros de la URL base de la imagen. De forma predeterminada, todas las miniaturas de video incluyen una superposición de un botón de reproducción. Consulta el parámetro -no para quitar esta superposición. Ejemplos: Consulta la tabla de URLs de imágenes base para ver ejemplos. |
no |
Descripción El parámetro Si deseas recuperar la miniatura de un video sin la superposición de un botón de reproducción, concatena la URL base con el parámetro no. El parámetro no se debe usar con al menos uno de los parámetros de URL de imagen base. Ejemplos: base-url=wmax-width-hmax-height-no En el siguiente ejemplo, se muestra una miniatura de video que tiene exactamente 1280 px de ancho y 720 px de alto, y no incluye una superposición de botón de reproducción: https://lh3.googleusercontent.com/p/AF....VnnY=w1280-h720-no |
URLs base de fotos en movimiento
Las fotos en movimiento contienen elementos de fotos y videos. Puedes usar parámetros de URLs de base de imágenes o URLs de base de video para las solicitudes de baseUrl de fotos en movimiento.
| Parámetro | |
|---|---|
dv |
Descripción Para recuperar el elemento de video de un elemento multimedia de foto en movimiento, usa el parámetro |
w, h, c y
d |
Descripción Para recuperar el elemento de foto de un elemento multimedia de foto en movimiento, usa el formato de las URLs de imagen base. |
Próximos pasos
- Aplicación de ejemplo: Nuestra aplicación de ejemplo incluye un ejemplo de cómo enumerar y recuperar elementos multimedia. Consulta las funciones
checkMediaSourcesSetyfetch_media_item_listpara obtener más información. - Documentación de referencia: Revisa los documentos de referencia completos sobre los elementos multimedia para obtener información detallada sobre todos los métodos disponibles, los parámetros de solicitud y respuesta, y los códigos de error.