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