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

במאמר הזה מוסבר איך לסנכרן לקוחות עם Gmail API.

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

סנכרון מלא

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

כדי לבצע סנכרון מלא:

  1. מתקשרים לשיטה messages.list כדי לאחזר את הדף הראשון של מזהי ההודעות.

  2. יוצרים בקשת Batch של בקשות לשיטת messages.get לכל אחת מההודעות שמוחזרות על ידי בקשת הרשימה.

    אם האפליקציה מציגה את תוכן ההודעה, צריך להגדיר את הפרמטר format לערך format=full או format=raw בפעם הראשונה שהאפליקציה מאחזרת הודעה, ולשמור את התוצאות במטמון כדי להימנע מפעולות אחזור נוספות. אם אתם מאחזרים הודעה ששמורה במטמון, כדאי להשתמש ב-format=minimal כדי לצמצם את גודל התשובה, כי יכול להיות שרק labelIds ישתנה.

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

סנכרון חלקי

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

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

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

מגבלות

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

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