Mantenere il client sincronizzato con Gmail è importante per la maggior parte degli scenari di applicazione. Esistono due scenari di sincronizzazione complessivi: la sincronizzazione completa e la sincronizzazione parziale. La sincronizzazione completa è necessaria la prima volta che il client si connette a Gmail e in alcuni altri rari scenari. Se il tuo cliente si è sincronizzato di recente, la sincronizzazione parziale è un'alternativa più leggera alla sincronizzazione completa. Puoi anche utilizzare le notifiche push per attivare la sincronizzazione parziale in tempo reale e solo quando necessario, evitando così inutili polling.
Sommario
Sincronizzazione completa
La prima volta che l'applicazione si connette a Gmail o se la sincronizzazione parziale non è disponibile, devi eseguire una sincronizzazione completa. In un'operazione di sincronizzazione completa, la tua applicazione deve recuperare e memorizzare il maggior numero di messaggi o thread più recenti necessari per le tue finalità. Ad esempio, se la tua applicazione visualizza un elenco di messaggi recenti, ti consigliamo di recuperare e memorizzare nella cache un numero sufficiente di messaggi per consentire un'interfaccia adattabile 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 degli ID messaggio. - Crea una richiesta batch di richieste
messages.get
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 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, in quanto sololabelIds
può cambiare. - Unisci gli aggiornamenti ai risultati memorizzati nella cache. L'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 del startHistoryId
specificato nella richiesta. I record della cronologia forniscono gli ID messaggio e il tipo di modifica per ciascun messaggio, ad esempio messaggio aggiunto, eliminato o etichette modificate dal momento del startHistoryId
. Puoi ottenere e memorizzare il historyId
del messaggio più recente da una sincronizzazione completa o parziale per fornirlo come startHistoryId
per le future operazioni di sincronizzazione parziale.
Limitazioni
I record della cronologia sono generalmente disponibili per almeno una settimana e spesso anche più a lungo. Tuttavia, il periodo di tempo per cui sono disponibili i record potrebbe essere molto inferiore e, in rari casi, i record potrebbero non essere disponibili. Se il valore startHistoryId
fornito dal client non rientra nell'intervallo disponibile dei record della cronologia, l'API restituisce una risposta di errore HTTP 404
. In questo caso, il cliente deve eseguire una sincronizzazione completa come descritto nella sezione precedente.