Il est important de synchroniser votre client avec Gmail dans la plupart des scénarios d'application. Il existe deux scénarios de synchronisation globale : 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 autres cas rares. Si votre client a été synchronisé récemment, la synchronisation partielle est une alternative plus légère à la synchronisation complète. Vous pouvez également utiliser les notifications push pour déclencher une synchronisation partielle en temps réel et uniquement lorsque cela est nécessaire, ce qui évite les sondages 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. Lors d'une opération de synchronisation complète, votre application doit récupérer et stocker autant de messages ou de fils de discussion récents que nécessaire pour votre objectif. Par exemple, si votre application affiche une liste de messages récents, vous pouvez récupérer et mettre en cache suffisamment de messages pour permettre une interface réactive 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 :
- Appelez
messages.list
pour récupérer la première page d'ID de messages. - Créez une requête par lot de
messages.get
requêtes pour chacun des messages renvoyés par la requête list. Si votre application affiche le contenu des messages, vous devez utiliserformat=FULL
ouformat=RAW
la première fois que votre application récupère un message, puis mettre en cache les résultats pour éviter d'autres opérations de récupération. Si vous récupérez un message précédemment mis en cache, vous devez utiliserformat=MINIMAL
pour réduire la taille de la réponse, car seullabelIds
peut changer. - 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éponsehistoryId
) pour la future synchronisation partielle.list
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 de l'historique plus récents que le startHistoryId
que vous spécifiez dans votre requête. Les enregistrements de l'historique fournissent l'ID et le type de modification de chaque message (message ajouté, supprimé ou libellés modifiés depuis le startHistoryId
, par exemple). Vous pouvez obtenir et stocker le historyId
du message le plus récent 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 de l'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 beaucoup plus courte et il peut arriver que les enregistrements ne soient pas disponibles dans de rares cas. Si le startHistoryId
fourni par votre client est en dehors de la plage disponible des enregistrements de l'historique, 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.