Sincronización de clientes con Gmail

Mantener tu cliente sincronizado con Gmail es importante para la mayoría de las situaciones de aplicación. Existen dos situaciones de sincronización generales: la sincronización completa y la parcial. La sincronización completa es necesaria la primera vez que tu cliente se conecta a Gmail y en algunas otras situaciones poco comunes. Si tu cliente se sincronizó recientemente, la sincronización parcial es una alternativa más liviana a una 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 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 de los mensajes o conversaciones más recientes como sea necesario para tu propósito. Por ejemplo, si tu aplicación muestra una lista de mensajes recientes, te recomendamos que recuperes y almacenes 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 los 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 el contenido de los mensajes, debes usar format=FULL o format=RAW la primera vez que recupera un mensaje y almacenar en caché los resultados para evitar operaciones de recuperación adicionales. Si recuperas un mensaje almacenado en caché anteriormente, debes usar format=MINIMAL para reducir el tamaño de la respuesta, ya que solo puede cambiar el labelIds.
  3. Combina las actualizaciones en tus resultados almacenados en caché. Tu aplicación debe almacenar el historyId del mensaje más reciente (el primer mensaje en la respuesta list) 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 mostrar todos los registros de historial más recientes que el startHistoryId que especificaste en tu solicitud. Los registros de historial proporcionan los IDs de los mensajes y el tipo de cambio para cada mensaje, como mensajes agregados, borrados 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 startHistoryId para operaciones de sincronización parciales futuras.

Limitaciones

Por lo general, los registros históricos están disponibles durante al menos una semana y, a menudo, durante más tiempo. Sin embargo, el período durante el cual los registros están disponibles puede ser mucho menor y, en algunos casos excepcionales, es posible que no estén disponibles. Si el startHistoryId que proporcionó tu cliente está fuera del rango disponible de registros históricos, la API muestra una respuesta de error HTTP 404. En este caso, tu cliente debe realizar una sincronización completa como se describió en la sección anterior.