Mantenere sincronizzato il client con Gmail è importante per la maggior parte degli scenari di applicazione. Esistono due scenari di sincronizzazione complessivi: sincronizzazione completa e sincronizzazione parziale. La sincronizzazione completa è necessaria la prima volta che il client si connette a Gmail e in alcuni altri rari scenari. Se il client è stato sincronizzato di recente, la sincronizzazione parziale è un'alternativa più leggera rispetto a una sincronizzazione completa. Puoi anche utilizzare le notifiche push per attivare la sincronizzazione parziale in tempo reale e solo quando necessario, evitando così il polling non necessario.
Sommario
Sincronizzazione completa
La prima volta che la tua applicazione si connette a Gmail o se la sincronizzazione parziale non è disponibile, devi eseguire una sincronizzazione completa. In un'operazione di sincronizzazione completa, l'applicazione deve recuperare e archiviare il maggior numero possibile di messaggi o thread più recenti necessari per il tuo scopo. Ad esempio, se la tua applicazione mostra un elenco di messaggi recenti, potresti voler recuperare e memorizzare nella cache un numero sufficiente di messaggi per consentire un'interfaccia reattiva se l'utente scorre oltre i primi messaggi visualizzati. La procedura generale per eseguire un'operazione di sincronizzazione completa è la seguente:
- Chiama
messages.list
per recuperare la prima pagina di ID messaggio. - Crea una richiesta batch di
messages.get
richieste per ciascuno dei messaggi restituiti dalla richiesta di elenco. Se la tua applicazione mostra i contenuti dei messaggi, devi utilizzareformat=FULL
oformat=RAW
la prima volta che la tua applicazione recupera un messaggio e memorizzare nella cache i risultati per evitare ulteriori operazioni di recupero. Se stai recuperando un messaggio memorizzato nella cache in precedenza, devi utilizzareformat=MINIMAL
per ridurre le dimensioni della risposta, poiché sololabelIds
potrebbe cambiare. - Unisci gli aggiornamenti ai risultati memorizzati nella cache. La tua applicazione deve memorizzare
il
historyId
del messaggio più recente (il primo messaggio nella rispostalist
) per la sincronizzazione parziale futura.
Sincronizzazione parziale
Se la tua applicazione è stata sincronizzata di recente, puoi eseguire una sincronizzazione parziale utilizzando il metodo history.list
per restituire tutti i record della cronologia più recenti della data startHistoryId
specificata nella richiesta. I record della cronologia forniscono ID messaggio e tipo di modifica per
ogni messaggio, ad esempio messaggio aggiunto, eliminato o etichette modificate dall'ora
del startHistoryId
. Puoi ottenere e archiviare l'historyId
del messaggio più recente da una sincronizzazione completa o parziale da fornire come startHistoryId
per le future operazioni di sincronizzazione parziale.
Limitazioni
I record della cronologia sono in genere disponibili per almeno una settimana e spesso
più a lungo. Tuttavia, il periodo di tempo per il quale i record sono disponibili potrebbe essere
significativamente inferiore e, in rari casi, i record potrebbero non essere disponibili. Se
startHistoryId
fornito dal client non rientra nell'intervallo disponibile di
record della cronologia, l'API restituisce una risposta di errore HTTP 404
. In questo caso,
il client deve eseguire una sincronizzazione completa come descritto nella sezione precedente.