Synchronizowanie klientów z Gmailem

Z tego dokumentu dowiesz się, jak synchronizować klientów z interfejsem Gmail API.

Synchronizacja klienta z Gmailem jest ważna w większości scenariuszy aplikacji. Dostępne są 2 metody synchronizacji: pełna synchronizacjaczęściowa synchronizacja. Przy pierwszym połączeniu klienta z Gmailem i w rzadkich przypadkach musisz przeprowadzić pełną synchronizację. Jeśli klient został niedawno zsynchronizowany, synchronizacja częściowa jest prostą alternatywą dla pełnej synchronizacji. Możesz też używać powiadomień push, aby wywoływać częściową synchronizację w czasie rzeczywistym i tylko wtedy, gdy jest to konieczne, unikając niepotrzebnego odpytywania.

Pełna synchronizacja

Gdy aplikacja po raz pierwszy łączy się z Gmailem lub gdy synchronizacja częściowa jest niedostępna, musisz przeprowadzić pełną synchronizację. Podczas pełnej synchronizacji aplikacja powinna pobrać i zapisać jak najwięcej najnowszych wiadomości lub wątków, które są potrzebne do jej działania. Jeśli na przykład Twoja aplikacja wyświetla listę ostatnich wiadomości, możesz pobrać i zapisać w pamięci podręcznej wystarczającą liczbę wiadomości, aby zapewnić responsywny interfejs, gdy użytkownik przewinie listę poza pierwsze kilka wyświetlonych wiadomości.

Aby przeprowadzić pełną synchronizację, wykonaj te czynności:

  1. Aby pobrać pierwszą stronę identyfikatorów wiadomości, wywołaj metodę messages.list.

  2. Utwórz żądanie zbiorcze składające się z messages.get żądań metody dla każdego z komunikatów zwróconych przez żądanie listy.

    Jeśli Twoja aplikacja wyświetla treść wiadomości, ustaw parametr format na format=full lub format=raw przy pierwszym pobraniu wiadomości przez aplikację i zapisz wyniki w pamięci podręcznej, aby uniknąć dodatkowych operacji pobierania. Jeśli pobierasz wcześniej zapisaną w pamięci podręcznej wiadomość, użyj parametru format=minimal, aby zmniejszyć rozmiar odpowiedzi, ponieważ może się zmienić tylko parametr labelIds.

  3. Scal aktualizacje z wynikami zapisanymi w pamięci podręcznej. Aplikacja powinna przechowywać historyId ostatniej wiadomości (pierwszej wiadomości w odpowiedzi list) na potrzeby przyszłych synchronizacji częściowych.

Synchronizacja częściowa

Jeśli aplikacja była niedawno synchronizowana, możesz przeprowadzić synchronizację częściową za pomocą metody history.list w celu zwrócenia wszystkich rekordów historii nowszych niż parametr zapytania startHistoryId, który musisz podać w żądaniu.

Parametr zapytania startHistoryId musi być ustawiony na historyId ostatniej wiadomości. Aby pobrać historyId ostatniej wiadomości, użyj metod messages.get lub messages.list. Możesz też ustawić wartość podczas pełnej lub częściowej synchronizacji, aby użyć jej w przyszłości.

Zwrócony obiekt History zawiera identyfikatory wiadomości i typ zmiany każdej wiadomości, np. dodanie wiadomości lub zmiana etykiet, od czasu podanego w polu startHistoryId.

Ograniczenia

Zapisy historii są zwykle dostępne przez co najmniej tydzień, a często dłużej. Okres, w którym dostępne są rekordy, może być jednak znacznie krótszy, a w rzadkich przypadkach rekordy mogą być niedostępne.

Jeśli wartość startHistoryId podana przez klienta wykracza poza dostępny zakres rekordów historii, interfejs Gmail API zwraca odpowiedź z HTTP 404błędem. W takim przypadku klient musi przeprowadzić pełną synchronizację.