Mantener tu cliente sincronizado con Gmail es importante para la mayoría de los casos de uso de la aplicación. Existen dos situaciones generales 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 a 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.
Contenido
Sincronización completa
La primera vez que tu aplicación 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 aplicación debe recuperar y almacenar tantos mensajes o subprocesos más recientes como sean necesarios para tu propósito. Por ejemplo, si tu aplicación 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. El procedimiento general para realizar una operación de sincronización completa es el siguiente:
- Llama a
messages.list
para recuperar la primera página de IDs de mensajes. - Crea una solicitud por lotes de solicitudes de
messages.get
para cada uno de los mensajes que devuelve la solicitud de lista. Si tu aplicación muestra el contenido de los mensajes, debes usarformat=FULL
oformat=RAW
la primera vez que la aplicación recupera un mensaje y almacena en caché los resultados para evitar operaciones de recuperación adicionales. Si recuperas un mensaje almacenado en caché anteriormente, debes usarformat=MINIMAL
para reducir el tamaño de la respuesta, ya que solo puede cambiar ellabelIds
. - Combina las actualizaciones con los resultados almacenados en caché. Tu aplicación debe almacenar el
historyId
del mensaje más reciente (el primer mensaje en la respuesta delist
) para la sincronización parcial futura.
Sincronización parcial
Si tu aplicación 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 startHistoryId
que especificaste en tu solicitud. Los registros del historial proporcionan los IDs de los mensajes y el tipo de cambio para cada mensaje, como mensaje agregado, borrado o etiquetas modificadas desde el momento de la startHistoryId
. Puedes obtener y almacenar el historyId
del mensaje más reciente de una sincronización completa o parcial para proporcionarlo como un startHistoryId
para futuras operaciones de sincronización parcial.
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 devuelve una respuesta de error HTTP 404
. En este caso, tu cliente debe realizar una sincronización completa como se describe en la sección anterior.