Clients mit Gmail synchronisieren

Die Synchronisierung Ihres Clients mit Gmail ist für die meisten Anwendungsszenarien wichtig. Grundsätzlich gibt es zwei Synchronisierungsszenarien: vollständige und teilweise Synchronisierung. Die vollständige Synchronisierung ist erforderlich, wenn Ihr Client zum ersten Mal eine Verbindung zu Gmail herstellt. Dies gilt auch für einige andere seltene Szenarien. Wenn Ihr Client kürzlich synchronisiert wurde, ist die teilweise Synchronisierung eine einfachere Alternative zu einer vollständigen Synchronisierung. Sie können auch Push-Benachrichtigungen verwenden, um eine teilweise Synchronisierung in Echtzeit und nur bei Bedarf auszulösen, um unnötige Abfragen zu vermeiden.

Inhalt

Vollständige Synchronisierung

Wenn Ihre Anwendung zum ersten Mal eine Verbindung zu Gmail herstellt oder keine teilweise Synchronisierung verfügbar ist, müssen Sie eine vollständige Synchronisierung durchführen. Bei einer vollständigen Synchronisierung sollte Ihre Anwendung so viele der neuesten Nachrichten oder Threads abrufen und speichern, wie für Ihren Zweck erforderlich sind. Wenn Ihre Anwendung beispielsweise eine Liste aktueller Nachrichten anzeigt, möchten Sie möglicherweise genügend Nachrichten abrufen und im Cache speichern, um eine responsive Oberfläche zu ermöglichen, wenn der Nutzer über die ersten angezeigten Nachrichten hinaus scrollt. Das allgemeine Verfahren zur Durchführung einer vollständigen Synchronisierung sieht so aus:

  1. Rufen Sie messages.list auf, um die erste Seite der Nachrichten-IDs abzurufen.
  2. Erstellen Sie eine Batchanfrage von messages.get-Anfragen für jede der Nachrichten, die von der Listenanfrage zurückgegeben werden. Wenn Ihre Anwendung Nachrichteninhalte anzeigt, sollten Sie format=FULL oder format=RAW verwenden, wenn die Anwendung zum ersten Mal eine Nachricht abruft, und die Ergebnisse im Cache speichern, um zusätzliche Abrufvorgänge zu vermeiden. Wenn Sie eine zuvor im Cache gespeicherte Nachricht abrufen, sollten Sie format=MINIMAL verwenden, um die Größe der Antwort zu reduzieren, da sich nur labelIds ändern kann.
  3. Führen Sie die Aktualisierungen mit den im Cache gespeicherten Ergebnissen zusammen. Ihre Anwendung sollte den historyId der neuesten Nachricht (die erste Nachricht in der list-Antwort) für die zukünftige Teilsynchronisierung speichern.

Teilsynchronisierung

Wenn Ihre Anwendung kürzlich synchronisiert wurde, können Sie mit der Methode history.list eine Teilsynchronisierung durchführen, um alle Verlaufseinträge zurückzugeben, die neuer als die in der Anfrage angegebene startHistoryId sind. Verlaufseinträge enthalten Nachrichten-IDs und die Art der Änderung, z. B. hinzugefügte oder gelöschte Nachrichten oder Labels, die seit dem startHistoryId geändert wurden. Sie können den historyId der letzten Nachricht aus einer vollständigen oder teilweisen Synchronisierung abrufen und speichern, um sie als startHistoryId für zukünftige Teilsynchronisierungsvorgänge bereitzustellen.

Beschränkungen

Verlaufseinträge sind in der Regel mindestens eine Woche und oft auch länger verfügbar. Der Zeitraum, für den Datensätze verfügbar sind, kann jedoch erheblich kürzer sein und Datensätze sind in seltenen Fällen manchmal nicht verfügbar. Wenn der von Ihrem Client bereitgestellte startHistoryId außerhalb des verfügbaren Bereichs der Verlaufseinträge liegt, gibt die API die Fehlerantwort HTTP 404 zurück. In diesem Fall muss Ihr Client eine vollständige Synchronisierung durchführen, wie im vorherigen Abschnitt beschrieben.