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:
- Wywołaj
messages.list
, aby pobrać pierwszą stronę identyfikatorów wiadomości. - Utwórz żądanie zbiorcze z
messages.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 funkcjiformat=FULL
lubformat=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 parametruformat=MINIMAL
, aby zmniejszyć rozmiar odpowiedzi, ponieważ może się zmienić tylkolabelIds
. - Scal aktualizacje z wynikami z pamięci podręcznej. Aplikacja powinna przechowywać
historyId
najnowszej wiadomości (pierwszej wiadomości w odpowiedzilist
) 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.