Mantenere il client sincronizzato 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.listper recuperare la prima pagina di ID messaggio. - Crea una richiesta batch di
messages.getrichieste per ciascuno dei messaggi restituiti dalla richiesta di elenco. Se la tua applicazione mostra i contenuti dei messaggi, devi utilizzareformat=FULLoformat=RAWla 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=MINIMALper ridurre le dimensioni della risposta, poiché sololabelIdspotrebbe cambiare. - Unisci gli aggiornamenti ai risultati memorizzati nella cache. La tua applicazione deve memorizzare
il
historyIddel 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.