Synchronizowanie klientów z Gmailem

Synchronizacja klienta z Gmailem jest ważna w większości scenariuszy aplikacji. Istnieją 2 główne scenariusze synchronizacji: pełna synchronizacja i częściowa synchronizacja. Pełna synchronizacja jest wymagana przy pierwszym połączeniu klienta z Gmailem oraz w niektórych innych rzadkich przypadkach. Jeśli klient został niedawno zsynchronizowany, synchronizacja częściowa jest lżejszą 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 w ten sposób niepotrzebnego odpytywania.

Spis treści

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 interfejs był responsywny, gdy użytkownik przewinie listę poza pierwsze kilka wyświetlanych wiadomości. Ogólna procedura przeprowadzania pełnej synchronizacji wygląda tak:

  1. Wywołaj messages.list, aby pobrać pierwszą stronę identyfikatorów wiadomości.
  2. Utwórz żądanie zbiorczemessages.get żądań dla każdego z komunikatów zwróconych przez żądanie listy. Jeśli Twoja aplikacja wyświetla treść wiadomości, przy pierwszym pobraniu wiadomości użyj funkcji format=FULL lub format=RAW i zapisz wyniki w pamięci podręcznej, aby uniknąć dodatkowych operacji pobierania. Jeśli pobierasz wcześniej zapisane w pamięci podręcznej wiadomości, użyj parametru format=MINIMAL, aby zmniejszyć rozmiar odpowiedzi, ponieważ może się zmienić tylko labelIds.
  3. Scal aktualizacje z wynikami z pamięci podręcznej. Aplikacja powinna przechowywać historyId najnowszej wiadomości (pierwszej wiadomości w odpowiedzi list) na potrzeby przyszłej synchronizacji częściowej.

Synchronizacja częściowa

Jeśli aplikacja była niedawno synchronizowana, możesz wykonać synchronizację częściową za pomocą metody history.list, aby zwrócić wszystkie rekordy historii nowsze niż startHistoryId określone w żądaniu. Rekordy historii zawierają identyfikatory wiadomości i typ zmiany dla każdej wiadomości, np. dodanie, usunięcie lub zmiana etykiet od czasu startHistoryId. Możesz uzyskać i przechowywać historyId najnowszej wiadomości z pełnej lub częściowej synchronizacji, aby używać jej jako startHistoryId w przyszłych operacjach synchronizacji częściowej.

Ograniczenia

Zapisy historii są zwykle dostępne przez co najmniej tydzień, a często dłużej. Okres, w którym dostępne są dane, może być jednak znacznie krótszy, a w rzadkich przypadkach dane mogą być niedostępne. Jeśli wartość startHistoryId dostarczona przez klienta wykracza poza dostępny zakres rekordów historii, interfejs API zwraca odpowiedź z błędem HTTP 404. W takim przypadku klient musi przeprowadzić pełną synchronizację zgodnie z opisem w poprzedniej sekcji.