סנכרון לקוחות עם Gmail

ברוב תרחישי האפליקציות חשוב לשמור על סנכרון הלקוח עם Gmail. יש שני תרחישים של סנכרון כללי: סנכרון מלא וסנכרון חלקי. סנכרון מלא נדרש בפעם הראשונה שהלקוח מתחבר ל-Gmail ובמקרים נדירים נוספים. אם הלקוח שלכם הסתנכרן לאחרונה, סנכרון חלקי הוא חלופה פשוטה יותר לסנכרון מלא. אפשר גם להשתמש בהתראות כדי להפעיל סנכרון חלקי בזמן אמת ורק כשצריך, וכך להימנע מסקרים מיותרים.

תוכן עניינים

סנכרון מלא

בפעם הראשונה שבה האפליקציה מתחברת ל-Gmail, או אם אין סנכרון חלקי, תצטרכו לבצע סנכרון מלא. כשמבצעים סנכרון מלא, האפליקציה צריכה לאחזר ולאחסן כמה שיותר מההודעות או השרשורים האחרונים שנחוצים למטרה שלכם. לדוגמה, אם האפליקציה מציגה רשימה של הודעות אחרונות, ייתכן שתרצו לאחזר ולשמור מספיק הודעות במטמון כדי לאפשר שימוש בממשק רספונסיבי, במקרה שהמשתמש גולל מעבר למספר ההודעות הראשונות שמוצגות. התהליך הכללי לביצוע פעולת סנכרון מלאה הוא:

  1. מתקשרים אל messages.list כדי לאחזר את הדף הראשון של מזהי ההודעות.
  2. יוצרים בקשה לכמות גדולה של בקשות messages.get לכל אחת מההודעות שהוחזרו בבקשת הרשימה. אם האפליקציה שלכם מציגה תוכן הודעות, עליכם להשתמש ב-format=FULL או ב-format=RAW בפעם הראשונה שהאפליקציה מאחזרת הודעה ותשמור את התוצאות במטמון כדי למנוע פעולות אחזור נוספות. אם מאחזרים הודעה שנשמרה במטמון, צריך להשתמש ב-format=MINIMAL כדי להקטין את גודל התשובה, כי רק labelIds יכול להשתנות.
  3. ממזגים את העדכונים עם התוצאות שנשמרו במטמון. האפליקציה שלכם אמורה לשמור את ה-historyId של ההודעה האחרונה (ההודעה הראשונה בתגובה list) לצורך סנכרון חלקי בעתיד.

סנכרון חלקי

אם האפליקציה שלכם הסתנכרנה לאחרונה, אפשר לבצע סנכרון חלקי באמצעות method history.list כדי להחזיר את כל רשומות ההיסטוריה החדשות יותר מ-startHistoryId שציינתם בבקשה. רשומות ההיסטוריה מספקות את מזהי ההודעות ואת סוג השינוי של כל הודעה, כמו הודעות שנוספו, נמחקו או תוויות ששונו מאז ה-startHistoryId. אפשר להשיג ולאחסן את ה-historyId של ההודעה האחרונה מסנכרון מלא או חלקי, כדי לספק אותה כ-startHistoryId לפעולות סנכרון חלקיות עתידיות.

מגבלות

בדרך כלל רשומות ההיסטוריה זמינות למשך שבוע אחד לפחות ולרוב אף יותר. עם זאת, פרק הזמן שבו הרשומות זמינות עשוי להיות קצר באופן משמעותי, ולפעמים הרשומות לא זמינות במקרים נדירים. אם הערך startHistoryId שסופק על ידי הלקוח נמצא מחוץ לטווח הזמין של רשומות ההיסטוריה, ה-API יחזיר את תגובת השגיאה HTTP 404. במקרה כזה, הלקוח צריך לבצע סנכרון מלא כמו שמתואר בסעיף הקודם.