Le sessioni sono al centro dell'API Picker e offrono agli utenti un modo sicuro e controllato per selezionare foto e video dalla 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'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 le sessioni. Dopo aver autenticato gli utenti, puoi utilizzare le sessioni per gestire il ciclo di vita della scelta delle foto.
- Crea una sessione per consentire a un utente di selezionare elementi multimediali.
- Esegui il polling della sessione per controllare quando l'utente ha terminato di selezionare gli elementi multimediali.
- Elenca e recupera gli elementi multimediali.
- Esegui la pulizia della 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 ai tuoi utenti. La sessione rimane attiva finché l'utente non ha selezionato correttamente gli elementi multimediali o non scade il tempo di attesa.
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, per evitare problemi, ti consigliamo di monitorare ed eseguire la pulizia delle sessioni in modo proattivo.
Effettuare sondaggi 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 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.
- Crea una sessione:chiama
sessions.create
per avviare una nuova sessione e ottenere ilpickerUri
. - Presenta il
pickerUri
all'utente: mostra l'URL o genera un codice QR da scansionare. Leggi una panoramica dell'esperienza di scelta dell'utente. - Esegui il sondaggio della sessione:
- Utilizza il valore pollInterval consigliato da
pollingConfig
. - Verifica se
mediaItemsSet
è vero.- Se è
true
, procedi elencando gli elementi multimediali selezionati. - Se è
false
, continua a eseguire il polling fino a quando non viene raggiuntotimeoutIn
.
- Se è
- Gestisci correttamente i timeout e gli annullamenti.
- Utilizza il valore pollInterval consigliato da
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 verificare quanto segue:
mediaItemsSet
: true se l'utente ha completato la selezione degli elementi multimedialipollingConfig.pollInterval
: tempo consigliato da attendere prima del sondaggio successivopollingConfig.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 elencando gli elementi multimediali selezionati.
Se viene raggiunto il valore timeoutIn
, gestisci il timeout in modo corretto.