En este documento, se explica cómo sincronizar clientes con la API de Gmail.
Mantener tu cliente sincronizado con Gmail es importante para la mayoría de los casos de uso de la app. Existen dos métodos de sincronización: la sincronización completa y la sincronización parcial. La sincronización completa es necesaria la primera vez que tu cliente se conecta a Gmail y en algunos otros casos poco frecuentes. Si tu cliente se sincronizó recientemente, la sincronización parcial es una alternativa más liviana que la sincronización completa. También puedes usar notificaciones push para activar la sincronización parcial en tiempo real y solo cuando sea necesario, lo que evita el sondeo innecesario.
Sincronización completa
La primera vez que tu app se conecta a Gmail, o si la sincronización parcial no está disponible, debes realizar una sincronización completa. En una operación de sincronización completa, tu app debe recuperar y almacenar tantos mensajes o subprocesos recientes como sean necesarios para tu propósito. Por ejemplo, si tu app muestra una lista de mensajes recientes, es posible que desees recuperar y almacenar en caché suficientes mensajes para permitir una interfaz responsiva si el usuario se desplaza más allá de los primeros mensajes que se muestran.
Sigue estos pasos para realizar una sincronización completa:
Llama al método
messages.listpara recuperar la primera página de IDs de mensajes.Crea una solicitud por lotes de solicitudes del método
messages.getpara cada uno de los mensajes que devolvió la solicitud de lista.Si tu app muestra el contenido de los mensajes, debes establecer
Formatenformat=FULLoformat=RAWla primera vez que la app recupere un mensaje y almacene en caché los resultados para evitar operaciones de recuperación adicionales. Si recuperas un mensaje almacenado en caché anteriormente, debes usarformat=MINIMALpara reducir el tamaño de la respuesta, ya que solo puede cambiar ellabelIds.Combina las actualizaciones en los resultados almacenados en caché. Tu app debe almacenar el
historyIddel mensaje más reciente (el primer mensaje en la respuestalist) para futuras sincronizaciones parciales.
Sincronización parcial
Si tu app se sincronizó recientemente, puedes realizar una sincronización parcial con el método history.list para devolver todos los registros del historial más recientes que el parámetro de búsqueda startHistoryId que debes especificar en tu solicitud.
El parámetro de consulta startHistoryId debe establecerse en el historyId de un mensaje reciente. Para recuperar el historyId de un mensaje reciente, usa los métodos messages.get o messages.list. También puedes establecer el valor durante una sincronización completa o parcial para usarlo en el futuro.
El objeto History que se devuelve incluye los IDs de los mensajes y el tipo de cambio de cada mensaje, como el mensaje agregado o las etiquetas modificadas, desde el momento del startHistoryId proporcionado.
Limitaciones
Por lo general, los registros del historial están disponibles durante al menos una semana y, a menudo, por más tiempo. Sin embargo, el período durante el cual los registros están disponibles puede ser significativamente menor y, en ocasiones, los registros pueden no estar disponibles en casos excepcionales.
Si el startHistoryId que proporciona tu cliente está fuera del rango disponible de registros del historial, la API de Gmail devuelve una respuesta de error HTTP 404.
En este caso, tu cliente debe realizar una sincronización completa.