Mantener tu cliente sincronizado con Gmail es importante para la mayoría de los casos de aplicaciones. Existen dos situaciones de sincronización generales: sincronización completa y sincronización parcial. Se requiere una sincronización completa la primera vez que tu cliente se conecta a Gmail y en algunas otras situaciones poco frecuentes. Si tu cliente se sincronizó recientemente, la sincronización parcial es una alternativa más ligera a una sincronización completa. También puedes usar notificaciones push para activar una sincronización parcial en tiempo real y solo cuando sea necesario, lo que evita sondeos innecesarios.
Contenido
Sincronización completa
La primera vez que tu aplicación se conecte 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 sea necesario para tu propósito. Por ejemplo, si tu aplicación muestra una lista de mensajes recientes, tal vez quieras 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 los IDs de mensajes. - Crea una solicitud por lotes de solicitudes
messages.get
para cada uno de los mensajes que muestra la solicitud de lista. Si tu aplicación muestra contenido de mensajes, debes usarformat=FULL
oformat=RAW
la primera vez que recupere un mensaje y almacenar en caché los resultados para evitar operaciones de recuperación adicionales. Si vas a recuperar un mensaje almacenado en caché previamente, debes usarformat=MINIMAL
para reducir el tamaño de la respuesta, ya que solo puede cambiarlabelIds
. - Combina las actualizaciones en 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 usando el método history.list
para mostrar todos los registros del historial más recientes que el startHistoryId
que especifiques en la solicitud. Los registros de historial proporcionan los IDs de mensajes y el tipo de cambio para cada mensaje, como mensaje agregado, borrado o etiquetas modificadas desde el momento del startHistoryId
. Puedes obtener y almacenar el historyId
del mensaje más reciente de una sincronización completa o parcial a fin de proporcionarlo como un startHistoryId
para futuras operaciones de sincronización parcial.
Limitaciones
Los registros del historial suelen estar disponibles durante al menos una semana y, a menudo, durante más tiempo. Sin embargo, el período para el que están disponibles los registros puede ser mucho menor y, a veces, 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 muestra una respuesta de error HTTP 404
. En este caso, el cliente debe realizar una sincronización completa, como se describe en la sección anterior.