Sincronizzazione dei client con Gmail

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:

  1. Chiama messages.list per recuperare la prima pagina degli ID messaggio.
  2. 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 utilizzare format=FULL o format=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 utilizzare format=MINIMAL per ridurre le dimensioni della risposta, in quanto solo labelIds può cambiare.
  3. Unisci gli aggiornamenti ai risultati memorizzati nella cache. L'applicazione deve memorizzare il historyId del messaggio più recente (il primo messaggio nella risposta list) 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.