Synchronizowanie klientów z Gmailem

Z tego dokumentu dowiesz się, jak synchronizować klientów za pomocą interfejsu Gmail API.

Synchronizacja klienta z Gmailem jest ważna w większości scenariuszy aplikacji. Dostępne są 2 metody synchronizacji: pełna synchronizacjaczęściowa synchronizacja. Pełna synchronizacja jest wymagana, gdy klient po raz pierwszy łączy się 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, co pozwala uniknąć niepotrzebnego sondowania.

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 aplikacja wyświetla listę ostatnich wiadomości, możesz pobrać i zapisać w pamięci podręcznej wystarczającą liczbę wiadomości, aby zapewnić responsywność interfejsu, gdy użytkownik przewinie listę poza pierwsze kilka wyświetlanych wiadomości.

Aby przeprowadzić pełną synchronizację, wykonaj te czynności:

  1. Aby pobrać pierwszą stronę identyfikatorów wiadomości, wywołaj metodę messages.list.

  2. Utwórz żądanie zbiorcze składające się z messages.get żądań metody dla każdego z komunikatów zwróconych przez żądanie listy.

    Jeśli Twoja aplikacja wyświetla treść wiadomości, ustaw wartość Format na format=FULL lub format=RAW przy pierwszym pobraniu wiadomości przez aplikację 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 zapisanymi w pamięci podręcznej. Aplikacja powinna przechowywać historyId ostatniej wiadomości (pierwszej wiadomości w odpowiedzi list) na potrzeby przyszłych synchronizacji częściowych.

Synchronizacja częściowa

Jeśli aplikacja była niedawno synchronizowana, możesz przeprowadzić synchronizację częściową za pomocą metody history.list , aby zwrócić wszystkie rekordy historii nowsze niż parametr zapytania startHistoryId, który musisz podać w żądaniu.

Parametr zapytania startHistoryId musi być ustawiony na historyId ostatniej wiadomości. Aby pobrać historyId ostatniej wiadomości, użyj metod messages.get lub messages.list. Możesz też ustawić wartość podczas pełnej lub częściowej synchronizacji, aby użyć jej w przyszłości.

Zwrócony obiekt History zawiera identyfikatory wiadomości i typ zmiany dla każdej wiadomości, np. dodanie wiadomości lub zmiana etykiet, od czasu podanego w polu startHistoryId.

Ograniczenia

Zapisy historii są zwykle dostępne przez co najmniej tydzień, a często dłużej. Okres, przez który dane są dostępne, może być jednak znacznie krótszy, a w rzadkich przypadkach dane mogą być niedostępne.

Jeśli startHistoryId dostarczony przez klienta wykracza poza dostępny zakres rekordów historii, interfejs Gmail API zwraca HTTP 404 odpowiedź z błędem. W takim przypadku klient musi przeprowadzić pełną synchronizację.