Synchroniser les clients avec Gmail

Il est important de synchroniser votre client avec Gmail pour la plupart des scénarios d'application. Il existe deux scénarios de synchronisation globaux: la synchronisation complète et la synchronisation partielle. Une synchronisation complète est requise la première fois que votre client se connecte à Gmail et dans certains cas rares. Si votre client s'est récemment synchronisé, la synchronisation partielle est une alternative plus légère à la synchronisation complète. Vous pouvez également utiliser des notifications push pour déclencher une synchronisation partielle en temps réel et uniquement lorsque cela est nécessaire, ce qui évite les requêtes inutiles.

Sommaire

Synchronisation complète

La première fois que votre application se connecte à Gmail ou si la synchronisation partielle n'est pas disponible, vous devez effectuer une synchronisation complète. Dans une opération de synchronisation complète, votre application doit récupérer et stocker autant de messages ou de fils de discussion les plus récents que nécessaire. Par exemple, si votre application affiche une liste de messages récents, vous pouvez souhaiter récupérer et mettre en cache suffisamment de messages pour permettre une interface responsive si l'utilisateur fait défiler la page au-delà des premiers messages affichés. La procédure générale pour effectuer une opération de synchronisation complète est la suivante:

  1. Appelez messages.list pour récupérer la première page des ID de message.
  2. Créez une requête par lot de requêtes messages.get pour chacun des messages renvoyés par la requête de liste. Si votre application affiche le contenu des messages, vous devez utiliser format=FULL ou format=RAW la première fois que votre application récupère un message et mettre en cache les résultats pour éviter les opérations de récupération supplémentaires. Si vous récupérez un message précédemment mis en cache, vous devez utiliser format=MINIMAL pour réduire la taille de la réponse, car seul le labelIds peut changer.
  3. Fusionnez les mises à jour dans vos résultats mis en cache. Votre application doit stocker le historyId du message le plus récent (le premier message de la réponse list) pour une future synchronisation partielle.

Synchronisation partielle

Si votre application a été synchronisée récemment, vous pouvez effectuer une synchronisation partielle à l'aide de la méthode history.list pour renvoyer tous les enregistrements d'historique plus récents que l'startHistoryId que vous spécifiez dans votre requête. Les enregistrements d'historique fournissent les ID de message et le type de modification pour chaque message, par exemple un message ajouté, supprimé ou des libellés modifiés depuis l'heure de l'startHistoryId. Vous pouvez obtenir et stocker le historyId du message le plus récent à partir d'une synchronisation complète ou partielle pour le fournir en tant que startHistoryId pour les futures opérations de synchronisation partielle.

Limites

Les enregistrements d'historique sont généralement disponibles pendant au moins une semaine, et souvent plus longtemps. Toutefois, la période pendant laquelle les enregistrements sont disponibles peut être considérablement plus courte, et dans de rares cas, ils peuvent ne pas être disponibles. Si le startHistoryId fourni par votre client se trouve en dehors de la plage d'enregistrements d'historique disponible, l'API renvoie une réponse d'erreur HTTP 404. Dans ce cas, votre client doit effectuer une synchronisation complète, comme décrit dans la section précédente.