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

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

תוכן עניינים

סנכרון מלא

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

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

סנכרון חלקי

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

מגבלות

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