Synchronizowanie klientów z Gmailem

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:

  1. Wywołaj messages.list, aby pobrać pierwszą stronę identyfikatorów wiadomości.
  2. 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 metody format=FULL lub format=RAW, aby uniknąć dodatkowych operacji pobierania. Jeśli pobierasz wiadomość, która była wcześniej zapisana w pamięci podręcznej, użyj polecenia format=MINIMAL, aby zmniejszyć rozmiar odpowiedzi, ponieważ tylko labelIds może się zmienić.
  3. Scal aktualizacje w wyniki w pamięci podręcznej. Twoja aplikacja powinna przechowywać historyId najnowszej wiadomości (pierwsza wiadomość w odpowiedzi list) 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.