סנכרון לקוחות עם 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. במקרה כזה, הלקוח צריך לבצע סנכרון מלא כפי שמתואר בקטע הקודם.