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