Sincronización de clientes con Gmail

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:

  1. Llama a messages.list para recuperar la primera página de los IDs de mensajes.
  2. 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 usar format=FULL o format=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 usar format=MINIMAL para reducir el tamaño de la respuesta, ya que solo puede cambiar labelIds.
  3. 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 de list) 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.