Creare e gestire sessioni

Le sessioni sono al centro dell'API Picker e forniscono un modo sicuro e controllato per consentire agli utenti di selezionare foto e video dalla propria raccolta Google Foto. Questa guida illustra come creare, gestire e sondare in modo efficace le sessioni per consentire una selezione di foto senza interruzioni nella tua app.

Prima di iniziare

  • Configura la tua app:abilita l'API e configura l'autenticazione. Per la procedura dettagliata, vedi Configurare l'app.
  • Comprendi il flusso: consulta l'articolo Inizia a utilizzare l'API Picker per una panoramica dell'intero processo di selezione delle foto.
  • Esamina gli ambiti di autorizzazione richiesti: per lavorare con le sessioni è necessario l'ambito photospicker.mediaitems.readonly. Per ulteriori informazioni sugli ambiti, consulta Ambiti di autorizzazione.

Ciclo di vita della sessione

L'API Picker fornisce metodi per creare, recuperare informazioni su ed eliminare sessioni. Dopo aver autenticato gli utenti, puoi utilizzare le sessioni per gestire il ciclo di vita della selezione delle foto.

  1. Crea una sessione per consentire a un utente di selezionare gli elementi multimediali.
  2. Esegui il polling della sessione per verificare quando l'utente ha terminato la selezione degli elementi multimediali.
  3. Elencare e recuperare gli elementi multimediali.
  4. Pulisci la sessione eliminandola.

Creare sessioni

Crea una sessione in modo che gli utenti possano scegliere in modo sicuro le foto direttamente dall'app Google Foto e condividerle di nuovo con la tua applicazione.

sessions.create genera una nuova sessione, restituendo un pickerUri univoco che puoi presentare ai tuoi utenti. La sessione rimane attiva finché l'utente non ha selezionato correttamente gli elementi multimediali o finché non scade il timeout della sessione. Per le applicazioni basate sul web, puoi aggiungere /autoclose a pickerUri per chiudere automaticamente la finestra o la scheda di Google Foto dopo che l'utente ha completato la selezione. Per maggiori dettagli, consulta Selezione di foto: cosa vedono gli utenti.

Limiti di sessioni

Tieni presente i limiti delle sessioni. L'API Picker applica limiti al numero di sessioni che puoi creare per garantire un utilizzo responsabile e prevenire abusi. In circostanze normali, è improbabile che tu raggiunga questi limiti. Tuttavia, devi monitorare e pulire le sessioni in modo proattivo per evitare problemi.

Eseguire il polling e monitorare le sessioni

Una volta creata una sessione, esegui periodicamente il polling dell'endpoint sessions.get per ottenere lo stato di una sessione. La proprietà mediaItemsSet nella risposta restituisce true quando l'utente ha completato la selezione.

Assicurati di utilizzare un polling efficiente. La risposta sessions.get include l'oggetto pollingConfig. Utilizza i seguenti campi per evitare chiamate non necessarie e creare un'esperienza utente fluida:

  • pollInterval: intervalli di polling ottimali
  • timeoutIn: durata del timeout

Per maggiori dettagli, consulta il flusso di polling di esempio.

Eliminare e ripulire le sessioni

sessions.delete rimuove una sessione, in genere utilizzata per la pulizia dopo che l'utente ha terminato la selezione dei contenuti multimediali o se la sessione va in timeout.

È una best practice eliminare le sessioni una volta che l'utente ha selezionato gli elementi multimediali e la tua app ha recuperato i byte dell'elemento multimediale.

Esempio di flusso di sondaggio

Questo è un esempio di creazione e sondaggio di una sessione. Dopo aver autenticato l'utente, crea una nuova sessione.

  1. Crea una sessione:chiama sessions.create per avviare una nuova sessione e ottenere pickerUri.
  2. Presenta l'pickerUri all'utente:mostra l'URL o genera un codice QR che l'utente può scansionare. Leggi una panoramica dell'esperienza di prelievo dell'utente.
  3. Vota la sessione:
    1. Utilizza il valore pollInterval consigliato da pollingConfig.
    2. Controlla se mediaItemsSet è vero.
      1. Se true, procedi con l'elenco degli elementi multimediali selezionati.
      2. Se false, continua a eseguire il polling fino a quando non viene raggiunto timeoutIn.
    3. Gestisci facilmente timeout e annullamenti.
GET https://photoslibrary.googleapis.com/v1/sessions/{sessionId}

Ecco una risposta di esempio:

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

Presenta il pickerUri all'utente, quindi inizia a sondare la sessione.

Controlla la risposta per verificare quanto segue:

  • mediaItemsSet: true se l'utente ha terminato la selezione degli elementi multimediali
  • pollingConfig.pollInterval: tempo consigliato di attesa prima del sondaggio successivo
  • pollingConfig.timeoutIn: tempo totale di attesa prima del timeout

Se mediaItemsSet è false e timeoutIn non è stato raggiunto, attendi pollInterval e poi esegui di nuovo il polling.

Se mediaItemsSet è true, procedi con l'elenco degli elementi multimediali selezionati.

Se viene raggiunto timeoutIn, gestisci il timeout in modo controllato.