ברוב תרחישי האפליקציות חשוב לשמור על סנכרון הלקוח עם Gmail. יש שני תרחישים של סנכרון כללי: סנכרון מלא וסנכרון חלקי. סנכרון מלא נדרש בפעם הראשונה שהלקוח מתחבר ל-Gmail ובמקרים נדירים נוספים. אם הלקוח שלכם הסתנכרן לאחרונה, סנכרון חלקי הוא חלופה פשוטה יותר לסנכרון מלא. אפשר גם להשתמש בהתראות כדי להפעיל סנכרון חלקי בזמן אמת ורק כשצריך, וכך להימנע מסקרים מיותרים.
תוכן עניינים
סנכרון מלא
בפעם הראשונה שבה האפליקציה מתחברת ל-Gmail, או אם אין סנכרון חלקי, תצטרכו לבצע סנכרון מלא. כשמבצעים סנכרון מלא, האפליקציה צריכה לאחזר ולאחסן כמה שיותר מההודעות או השרשורים האחרונים שנחוצים למטרה שלכם. לדוגמה, אם האפליקציה מציגה רשימה של הודעות אחרונות, ייתכן שתרצו לאחזר ולשמור מספיק הודעות במטמון כדי לאפשר שימוש בממשק רספונסיבי, במקרה שהמשתמש גולל מעבר למספר ההודעות הראשונות שמוצגות. התהליך הכללי לביצוע פעולת סנכרון מלאה הוא:
- מתקשרים אל
messages.list
כדי לאחזר את הדף הראשון של מזהי ההודעות. - יוצרים בקשה לכמות גדולה של בקשות
messages.get
לכל אחת מההודעות שהוחזרו בבקשת הרשימה. אם האפליקציה שלכם מציגה תוכן הודעות, עליכם להשתמש ב-format=FULL
או ב-format=RAW
בפעם הראשונה שהאפליקציה מאחזרת הודעה ותשמור את התוצאות במטמון כדי למנוע פעולות אחזור נוספות. אם מאחזרים הודעה שנשמרה במטמון, צריך להשתמש ב-format=MINIMAL
כדי להקטין את גודל התשובה, כי רקlabelIds
יכול להשתנות. - ממזגים את העדכונים עם התוצאות שנשמרו במטמון. האפליקציה שלכם אמורה לשמור את ה-
historyId
של ההודעה האחרונה (ההודעה הראשונה בתגובהlist
) לצורך סנכרון חלקי בעתיד.
סנכרון חלקי
אם האפליקציה שלכם הסתנכרנה לאחרונה, אפשר לבצע סנכרון חלקי באמצעות method history.list
כדי להחזיר את כל רשומות ההיסטוריה החדשות יותר מ-startHistoryId
שציינתם בבקשה. רשומות ההיסטוריה מספקות את מזהי ההודעות ואת סוג השינוי של כל הודעה, כמו הודעות שנוספו, נמחקו או תוויות ששונו מאז ה-startHistoryId
. אפשר להשיג ולאחסן את ה-historyId
של ההודעה האחרונה
מסנכרון מלא או חלקי, כדי לספק אותה כ-startHistoryId
לפעולות סנכרון חלקיות עתידיות.
מגבלות
בדרך כלל רשומות ההיסטוריה זמינות למשך שבוע אחד לפחות ולרוב אף יותר. עם זאת, פרק הזמן שבו הרשומות זמינות עשוי להיות קצר באופן משמעותי, ולפעמים הרשומות לא זמינות במקרים נדירים. אם הערך startHistoryId
שסופק על ידי הלקוח נמצא מחוץ לטווח הזמין של רשומות ההיסטוריה, ה-API יחזיר את תגובת השגיאה HTTP 404
. במקרה כזה, הלקוח צריך לבצע סנכרון מלא כמו שמתואר בסעיף הקודם.