Elencare album e elementi multimediali creati dall'app

Ambiti di autorizzazione richiesti

Per elencare i contenuti creati dall'app è necessario lo scopo photoslibrary.readonly.appcreateddata. Per ulteriori informazioni sugli ambiti, consulta Ambiti di autorizzazione.

Panoramica

L'API Library ti consente di elencare e accedere agli elementi multimediali creati dalla tua applicazione.

Ecco alcune funzionalità chiave degli elementi multimediali della scheda:

  • Elenca gli elementi multimediali di album creati con l'app specifici o dell'intera raccolta creata con l'app
  • Applica i filtri (data, categoria di contenuti, tipo di media) quando inserisci una scheda per restringere i risultati.

  • Recupera gli oggetti mediaItem con dettagli essenziali come link diretti e metadati.

L'elenco dei contenuti della raccolta e dell'album restituisce un elenco di elementi multimediali. Gli arricchimenti che fanno parte di un album non sono inclusi. Gli elementi multimediali descrivono una foto, un video o altri contenuti multimediali. Un mediaItem include un link diretto all'elemento, un link all'elemento in Google Foto e altri metadati pertinenti. Per ulteriori informazioni, consulta Accedere agli elementi multimediali e mediaItems.

Elenco di album creati dall'app

Puoi elencare gli album creati dalla tua app utilizzando albums.list.

REST

Ecco un esempio di richiesta:

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

La richiesta restituisce il seguente risultato:

{
  "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"
}

Ogni album restituito ha un ID che può essere utilizzato per recuperare i contenuti dell'album come mostrato in Elenca i contenuti dell'album. Include anche il titolo e il numero di elementi multimediali che contiene.

productUrl rimanda all'album in Google Foto che può essere aperto dall'utente.

coverPhotoMediaItemId contiene l'ID elemento media che rappresenta la foto di copertina di questo album. Per accedere a questa immagine di copertina, usa coverPhotoBaseUrl. Non devi utilizzare coverPhotoBaseUrl direttamente senza specificare parametri aggiuntivi.

La risposta contiene anche un nextPageToken. Per maggiori informazioni, consulta Impaginazione.

La risposta per gli album vuoti varia in quanto mediaItemsCount e coverPhotoMediaItemId sono impostati su 0 per impostazione predefinita e vengono omessi dalla risposta REST. Tieni inoltre presente che coverPhotoBaseUrl fa riferimento a un'immagine segnaposto predefinita.

Elenca i contenuti della raccolta creati dall'app

Puoi elencare tutti gli elementi multimediali della raccolta di Google Foto dell'utente creati dalla tua app. Sono esclusi gli elementi archiviati ed eliminati. Puoi elencare gli elementi multimediali in base ai contenuti, alla data e ad altre proprietà applicando filtri.

Per elencare gli elementi multimediali, chiama mediaItems.list.

REST

Ecco una richiesta di esempio:

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

La richiesta GET restituisce la seguente risposta:

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

La risposta contiene un elenco di elementi multimediali, ordinati dal più recente al meno recente. Per maggiori informazioni, vedi mediaItems. Contiene inoltre un nextPageToken, descritto in modo più dettagliato nella sezione Paginazione.

Elenca contenuti album

Per elencare tutti gli elementi multimediali di un album, aggiungi il campo albumId alla richiesta di ricerca. Per maggiori informazioni su albumId, consulta la sezione Elenco di album. Se albumId non è valido, viene restituito un errore Bad Request. Se l'ID è valido, ma l'album non esiste per l'utente autenticato, viene restituito un errore Not Found. Per maggiori dettagli sulla gestione degli errori, consulta Suggerimenti per il rendimento e Best practice.

REST

Ecco una richiesta di esempio:

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

La richiesta POST restituisce la seguente risposta:

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

La risposta contiene un nextPageToken e l'elenco degli elementi multimediali. A differenza di quanto accade per i contenuti della raccolta, gli elementi multimediali vengono restituiti nell'album in base al relativo ordine. Per maggiori dettagli, consulta mediaItems e Paginazione. L'utente può modificare l'ordine nell'interfaccia di Google Foto.

Se è impostato albumId, non puoi applicare un filtro quando elenchi i contenuti dell'album. In questo modo si verifica un errore Bad Request.

Impaginazione per REST

Per migliorare le prestazioni, i metodi che restituiscono un numero elevato di risultati (ad esempio i metodi di elenco) possono paginare la risposta. Il numero massimo di risultati in ogni pagina è indicato dal parametro pageSize.

Per le chiamate a mediaItems.search e mediaItems.list, la dimensione predefinita della pagina è 25 elementi. Consigliamo questo formato di pagina perché offre un equilibrio tra le dimensioni della risposta e il tasso di riempimento. La dimensione massima della pagina per le richieste di ricerca e elenco di elementi multimediali è di 100 elementi.

La dimensione pagina predefinita e consigliata per la visualizzazione degli album è 20 album, con un massimo di 50 album.

Quando il numero di risultati disponibili è superiore alla dimensione della pagina, la risposta include un nextPageToken, che indica alla tua applicazione che sono disponibili più risultati da recuperare dal server.

Esempio

Devi aggiungere nextPageToken alle richieste successive nel parametro pageToken, come mostrato nell'esempio seguente. Specifica pageToken insieme agli altri parametri richiesti per l'operazione nel corpo della richiesta o come parametro di query.

Richiesta 1

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

Risposta 1

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

Richiesta 2

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

Risposta 2

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

Continua questo pattern finché non ci sono altri nextPageToken oggetti.

nextPageToken è valido solo per la stessa richiesta. Se vengono modificati i parametri, nella stessa richiesta non deve essere utilizzato un valore nextPageToken utilizzato in precedenza.