W przypadku większości scenariuszy ważne jest, aby klient był zsynchronizowany z Gmailem. Istnieją 2 ogólne scenariusze synchronizacji: pełna i częściowa. Pełna synchronizacja jest wymagana przy pierwszym połączeniu klienta z Gmailem oraz w niektórych innych rzadkich sytuacjach. Jeśli klient został niedawno zsynchronizowany, częściowa synchronizacja jest lżejszą alternatywą dla pełnej synchronizacji. Możesz też używać powiadomień push, aby uruchamiać częściową synchronizację w czasie rzeczywistym i tylko wtedy, gdy jest to konieczne. Dzięki temu unikniesz niepotrzebnego pobierania danych.
Spis treści
Pełna synchronizacja
Podczas pierwszego połączenia aplikacji z Gmailem lub jeśli częściowa synchronizacja jest niedostępna, musisz przeprowadzić pełną synchronizację. Podczas pełnej synchronizacji aplikacja powinna pobrać i zapisać tyle najnowszych wiadomości lub wątków, ile jest potrzebne do wykonania danej operacji. Jeśli np. Twoja aplikacja wyświetla listę ostatnich wiadomości, warto pobrać i przechować w pamięci podręcznej wystarczającą liczbę wiadomości, aby umożliwić płynne działanie interfejsu, gdy użytkownik przewinie listę poza pierwsze wyświetlane wiadomości. Ogólna procedura pełnej synchronizacji wygląda tak:
- Zadzwoń pod numer
messages.list
, aby pobrać pierwszą stronę identyfikatorów wiadomości. - Utwórz prośbę zbiorczą z
messages.get
prośbami o każdy z komunikatów zwróconych przez prośbę o listę. Jeśli aplikacja wyświetla zawartość wiadomości, podczas pierwszego pobierania wiadomości należy użyć metodyformat=FULL
lubformat=RAW
, a potem przechowywać wyniki w pamięci podręcznej, aby uniknąć dodatkowych operacji pobierania. Jeśli pobierasz wiadomość z pamięci podręcznej, użyj parametruformat=MINIMAL
, aby zmniejszyć rozmiar odpowiedzi, ponieważ tylko parametrformat=MINIMAL
może się zmienić.labelIds
- scalić aktualizacje z wynikami z pamięci podręcznej. Aplikacja powinna przechowywać
historyId
najnowszej wiadomości (pierwszej wiadomości w odpowiedzilist
) na potrzeby przyszłej częściowej synchronizacji.
Częściowa synchronizacja
Jeśli aplikacja została niedawno zsynchronizowana, możesz wykonać częściową synchronizację za pomocą metody history.list
, aby zwrócić wszystkie rekordy historii nowsze niż określony w prośbie parametr startHistoryId
. Rekordy historii zawierają identyfikatory wiadomości i typ zmian w przypadku każdej wiadomości, np. dodanie, usunięcie lub zmodyfikowanie etykiety od momentu utworzenia startHistoryId
. Możesz pobrać i zapisać historyId
najnowszej wiadomości z pełnej lub częściowej synchronizacji, aby udostępnić ją jako startHistoryId
w przyszłych operacjach częściowej synchronizacji.
Ograniczenia
Rekordy historii są zwykle dostępne przez co najmniej tydzień, a często dłużej. Jednak okres, przez jaki są dostępne, może być znacznie krótszy, a w rzadkich przypadkach mogą być one niedostępne. Jeśli startHistoryId
podany przez klienta wykracza poza dostępny zakres rekordów historycznych, interfejs API zwraca odpowiedź błędu HTTP 404
. W takim przypadku klient musi wykonać pełną synchronizację w sposób opisany w poprzedniej sekcji.