Enumera elementos multimedia y álbumes creados por la app

Permisos de autorización obligatorios

Para mostrar contenido creado por la app, se requiere el permiso photoslibrary.readonly.appcreateddata. Para obtener más información sobre los alcances, consulta Autorización permisos.

Descripción general

La API de la Biblioteca te permite enumerar y acceder a los elementos multimedia que tu aplicación .

Algunas funciones clave de la lista de elementos multimedia son las siguientes:

  • Enumera elementos multimedia de álbumes creados en una app específicos o de toda la app creada biblioteca
  • Aplica filtros (fecha, categoría de contenido, medios). tipo) cuando se publican para limitar la resultados

  • Recupera objetos mediaItem con detalles esenciales, como vínculos directos y metadatos.

Cuando se enumera el contenido de la biblioteca y el álbum, se muestra una lista de elementos multimedia. Enriquecimientos que son parte de un álbum no están incluidas. Los elementos multimedia describen una foto, un video o algún otro contenido multimedia. R mediaItem incluye un vínculo directo al elemento, un vínculo al elemento en Google Fotos y otros metadatos relevantes Para obtener más información, consulta Acceder a elementos multimedia y mediaItems

Cómo mostrar una lista de álbumes creados por la app

Puedes ver una lista de los álbumes que creó tu app con albums.list

REST

A continuación, se muestra una solicitud de ejemplo:

GET https://photoslibrary.googleapis.com/v1/albums

La solicitud muestra el siguiente resultado:

{
  "albums": [
    {
      "id": "album-id",
      "title": "album-title",
      "productUrl": "album-product-url",
      "coverPhotoBaseUrl": "album-cover-base-url_do-not-use-directly",
      "coverPhotoMediaItemId": "album-cover-media-item-id",
      "isWriteable": "whether-you-can-write-to-this-album",
      "mediaItemsCount": "number-of-media-items-in-album"
    },
    ...
  ],
  "nextPageToken": "token-for-pagination"
}

Cada álbum devuelto tiene un ID que se puede usar para recuperar el contenido de la álbum, como se muestra en el artículo Enumerar el contenido del álbum. También incluye el título y el número de elementos multimedia que contiene.

La productUrl apunta al álbum en Google Fotos que puede ser una abierto por el usuario.

coverPhotoMediaItemId contiene el elemento multimedia. ID que representa la portada foto de este álbum. Para acceder a esta imagen de portada, usa coverPhotoBaseUrl. No debes usar coverPhotoBaseUrl directamente sin especificarlo. parámetros adicionales.

La respuesta también contiene una nextPageToken. Para obtener más información, consulta Paginación.

La respuesta de los álbumes vacíos varía en que mediaItemsCount y coverPhotoMediaItemId se establecen en 0 de forma predeterminada y se omiten de la respuesta de REST. También ten en cuenta que coverPhotoBaseUrl apunta a una imagen de marcador de posición predeterminada.

Cómo enumerar el contenido de la biblioteca creado por la app

Puedes enumerar todos los elementos multimedia de la biblioteca de Google Fotos del usuario que creó tu app. Esto excluye los elementos archivados y borrados. Tú puedes enumerar elementos multimedia según su contenido, fecha y otras propiedades aplicar filtros.

Para mostrar un elemento multimedia, llama mediaItems.list

REST

A continuación, se muestra una solicitud de ejemplo:

GET https://photoslibrary.googleapis.com/v1/mediaItems
Content-type: application/json
Authorization: Bearer oauth2-token
{
  "pageSize": "100",
}

La solicitud GET muestra la siguiente respuesta:

{
  "mediaItems": [
    ...
  ],
  "nextPageToken": "token-for-pagination"
}

La respuesta contiene una lista de elementos multimedia ordenados del más al menos reciente. Para obtener más información, consulta mediaItems También contiene un nextPageToken, que se describe con más detalle en Paginación.

Mostrar el contenido del álbum

Para enumerar todos los elementos multimedia de un álbum, agrega el campo albumId a tu para cada solicitud de búsqueda. Para obtener más información sobre albumId, consulta Fichas álbumes. Si el albumId no es válido, se produce un error Bad Request. que se devuelven. Si el ID es válido, pero no existe el álbum para la persona autenticada usuario, se muestra un error Not Found. Para obtener más información sobre el error consulta las Sugerencias de rendimiento y Prácticas recomendadas.

REST

A continuación, se muestra una solicitud de ejemplo:

POST https://photoslibrary.googleapis.com/v1/mediaItems:search
Content-type: application/json
Authorization: Bearer oauth2-token
{
  "pageSize": "100",
  "albumId": "album-id"
}

La solicitud POST muestra la siguiente respuesta:

{
  "mediaItems": [
    ...
  ],
  "nextPageToken": "token-for-pagination"
}

La respuesta contiene un nextPageToken y la lista de elementos multimedia. A diferencia de lo que sucede cuando se enumera el contenido de la biblioteca, los elementos multimedia se muestran según su orden en el álbum. Para obtener más detalles, consulta mediaItems y Paginación. El usuario puede editar el pedido en la Interfaz de Google Fotos.

Si estableces albumId, no podrás aplicar un filtro cuando enumeres el contenido de un álbum. Si lo haces, se generará un error Bad Request.

Paginación para REST

Para mejorar el rendimiento, los métodos que devuelven una gran cantidad de resultados (como list) puede paginar la respuesta. El número máximo de resultados en cada página se proporciona con el parámetro pageSize.

Para las llamadas a mediaItems.search y mediaItems.list, el tamaño predeterminado de la página es el siguiente: 25 elementos. Recomendamos este tamaño de página porque tiene un equilibrio entre las el tamaño de la respuesta y la tasa de relleno. El tamaño máximo de la página para un elemento multimedia de solicitudes de búsqueda y listas es de 100 elementos.

El tamaño de página predeterminado y recomendado cuando se enumeran álbumes es de 20, con un un máximo de 50 álbumes.

Cuando la cantidad de resultados disponibles es mayor que el tamaño de la página, la respuesta incluye un nextPageToken, que le indica a tu aplicación que hay que se puedan recuperar del servidor.

Ejemplo

Debes agregar el nextPageToken a las solicitudes posteriores en el parámetro. pageToken, como se muestra en el siguiente ejemplo. Especifica pageToken en conjunto con otros parámetros necesarios para la operación, ya sea en el cuerpo del solicitud, o como un parámetro de consulta.

Solicitud n.° 1

{
  "pageSize": "5",
  "filters": { … }
}

Respuesta no 1

{
  "mediaItem": [ … ],
  "nextPageToken": "next-page-token"
}

Solicitud 2

{
  "pageSize": "5",
  "filters": { … },
  "pageToken": "page-token"
}

Respuesta n.o 2

{
  "mediaItem": [ … ],
  "nextPageToken": "next-page-token"
}

Continúa este patrón hasta que no haya más objetos nextPageToken.

El nextPageToken solo es válido para la misma solicitud. Si se cambia alguno de los parámetros, no se debe usar un nextPageToken que se haya usado anteriormente en la misma solicitud.