Creare e gestire sessioni

Le sessioni sono al centro dell'API Picker e offrono agli utenti un modo sicuro e controllato per selezionare foto e video dalla loro raccolta di Google Foto. Questa guida illustra come creare, gestire e eseguire sondaggi in modo efficace sulle sessioni per consentire la selezione di foto senza interruzioni nella tua app.

Prima di iniziare

  • Configura l'app:abilita l'API e configura l'autenticazione. Per la procedura dettagliata, consulta Configurare l'app.
  • Comprendi il flusso: consulta la sezione Iniziare 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'ambitophotospicker.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 le sessioni. Dopo aver autenticato gli utenti, puoi utilizzare le sessioni per gestire il ciclo di vita della scelta delle foto.

  1. Crea una sessione per consentire a un utente di selezionare elementi multimediali.
  2. Esegui il polling della sessione per controllare quando l'utente ha terminato di selezionare gli elementi multimediali.
  3. Elenca e recupera gli elementi multimediali.
  4. Ripulisci la sessione eliminandola.

Creare sessioni

Crea una sessione in modo che gli utenti possano scegliere in sicurezza le foto direttamente dalla loro app Google Foto e condividerle nuovamente con la tua applicazione.

sessions.create genera una nuova sessione, restituendo un pickerUri univoco che puoi presentare agli utenti. La sessione rimane attiva finché l'utente non ha selezionato gli elementi multimediali o fino al timeout della sessione.

Limiti di sessioni

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

Sessioni di sondaggio e monitoraggio

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 ulteriori dettagli, consulta l'esempio di flusso di polling.

Eliminare e ripulire le sessioni

sessions.delete rimuove una sessione, in genere utilizzata per la pulizia dopo che l'utente ha terminato di selezionare i contenuti multimediali o se la sessione scade.

È buona norma eliminare le sessioni dopo che l'utente ha selezionato gli elementi multimediali e la tua app ha recuperato i byte degli elementi multimediali.

Esempio di flusso di polling

Questo è un esempio di creazione e polling di una sessione. Dopo la prima autenticazione dell'utente, crea una nuova sessione.

  1. Crea una sessione:chiama sessions.create per avviare una nuova sessione e ottenere il pickerUri.
  2. Presenta il pickerUri all'utente: mostra l'URL o genera un codice QR da scansionare. Leggi una panoramica dell'esperienza di scelta dell'utente.
  3. Esegui il sondaggio della sessione:
    1. Utilizza il valore pollInterval consigliato da pollingConfig.
    2. Verifica se mediaItemsSet è vero.
      1. Se è true, procedi elencando gli elementi multimediali selezionati.
      2. Se è false, continua a eseguire il polling fino a quando non viene raggiunto timeoutIn.
    3. Gestisci correttamente i timeout e gli annullamenti.
GET https://photoslibrary.googleapis.com/v1/sessions/{sessionId}

Ecco un esempio di risposta:

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

Presenta il pickerUri all'utente e poi inizia a eseguire il polling della sessione.

Controlla la risposta per quanto segue:

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

Se mediaItemsSet è falso e timeoutIn non è stato raggiunto, attendi pollInterval e poi esegui di nuovo la richiesta.

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

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