Zsynchronizowanie klienta z Gmailem jest ważne w większości scenariuszy dotyczących aplikacji. Istnieją 2 ogólne scenariusze synchronizacji: pełna i częściowa. Pełna synchronizacja jest wymagana przy pierwszym połączeniu klienta z Gmailem, a także w niektórych rzadkich sytuacjach. Jeśli klient przeprowadzał ostatnio synchronizację, jest to mniej rygorystyczna alternatywa dla pełnej synchronizacji. Możesz też używać powiadomień push, aby aktywować częściową synchronizację w czasie rzeczywistym i tylko wtedy, gdy jest to konieczne. Pozwoli to uniknąć niepotrzebnego odpytywania.
Spis treści
Pełna synchronizacja
Musisz przeprowadzić pełną synchronizację, gdy aplikacja po raz pierwszy łączy się z Gmailem lub jeśli częściowa synchronizacja nie jest dostępna. Podczas pełnej synchronizacji aplikacja powinna pobierać i przechowywać tyle najnowszych wiadomości lub wątków, ile jest konieczne do wykonania danego zadania. Jeśli na przykład aplikacja wyświetla listę najnowszych wiadomości, być może trzeba będzie pobrać i zapisać w pamięci podręcznej taką ilość wiadomości, aby interfejs elastyczny był potrzebny, gdy użytkownik przewinie stronę poza kilka pierwszych wyświetlonych wiadomości. Ogólna procedura wykonywania pełnej synchronizacji wygląda tak:
- Wywołaj
messages.list
, aby pobrać pierwszą stronę identyfikatorów wiadomości. - Utwórz żądanie zbiorcze żądań
messages.get
dla każdej wiadomości zwróconej przez żądanie listy. Jeśli Twoja aplikacja wyświetla treść wiadomości, przy pierwszym pobieraniu wiadomości użyj metodyformat=FULL
lubformat=RAW
, aby uniknąć dodatkowych operacji pobierania. Jeśli pobierasz wiadomość, która była wcześniej zapisana w pamięci podręcznej, użyj poleceniaformat=MINIMAL
, aby zmniejszyć rozmiar odpowiedzi, ponieważ tylkolabelIds
może się zmienić. - Scal aktualizacje w wyniki w pamięci podręcznej. Twoja aplikacja powinna przechowywać
historyId
najnowszej wiadomości (pierwsza wiadomość w odpowiedzilist
) na potrzeby przyszłej częściowej synchronizacji.
Częściowa synchronizacja
Jeśli aplikacja była ostatnio synchronizowana, możesz przeprowadzić częściową synchronizację przy użyciu metody history.list
, aby zwrócić wszystkie rekordy historii nowsze niż wartość startHistoryId
określona w żądaniu. Rekordy historii zawierają identyfikatory i rodzaje zmian poszczególnych wiadomości, np. dodanych, usuniętych lub zmodyfikowanych 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
na potrzeby przyszłych operacji częściowej synchronizacji.
Ograniczenia
Zapisy historii są zwykle dostępne przez co najmniej tydzień, a często dłużej. Jednak przedział czasu, dla którego są dostępne rekordy, może być znacznie krótszy i w rzadkich przypadkach mogą być niedostępne. Jeśli wartość startHistoryId
podana przez klienta nie mieści się w dostępnym zakresie rekordów historii, interfejs API zwraca odpowiedź o błędzie HTTP 404
. W takim przypadku klient musi przeprowadzić pełną synchronizację w sposób opisany w poprzedniej sekcji.