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.
- Crea una sessione per consentire a un utente di selezionare gli elementi multimediali.
- Esegui il polling della sessione per verificare quando l'utente ha terminato la selezione degli elementi multimediali.
- Elencare e recuperare gli elementi multimediali.
- 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 ottimalitimeoutIn
: 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.
- Crea una sessione:chiama
sessions.create
per avviare una nuova sessione e ottenerepickerUri
. - 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. - Vota la sessione:
- Utilizza il valore pollInterval consigliato da
pollingConfig
. - Controlla se
mediaItemsSet
è vero.- Se
true
, procedi con l'elenco degli elementi multimediali selezionati. - Se
false
, continua a eseguire il polling fino a quando non viene raggiuntotimeoutIn
.
- Se
- Gestisci facilmente timeout e annullamenti.
- Utilizza il valore pollInterval consigliato da
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 multimedialipollingConfig.pollInterval
: tempo consigliato di attesa prima del sondaggio successivopollingConfig.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.