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