क्लाइंट को Gmail के साथ सिंक करना

ऐप्लिकेशन की ज़्यादातर स्थितियों के लिए, अपने क्लाइंट को Gmail के साथ सिंक करके रखना ज़रूरी है. सिंक करने की दो स्थितियां होती हैं: पूरी तरह सिंक होना और कुछ हद तक सिंक करना. जब आपका क्लाइंट पहली बार Gmail से कनेक्ट होता है और कुछ अन्य दुर्लभ परिस्थितियों में, तब पूरी तरह सिंक करने की ज़रूरत होती है. अगर आपके क्लाइंट ने हाल ही में सिंक किया है, तो कुछ हद तक सिंक करना, पूरी तरह सिंक करने का कम विकल्प है. रीयल टाइम में कुछ हद तक सिंक करने की सुविधा को ट्रिगर करने के लिए, पुश नोटिफ़िकेशन का भी इस्तेमाल किया जा सकता है. ऐसा सिर्फ़ ज़रूरत पड़ने पर ही किया जा सकता है. इससे ग़ैर-ज़रूरी पोल की संख्या से बचा जा सकता है.

विषय सूची

पूरा सिंक्रनाइज़ेशन

जब आपका ऐप्लिकेशन पहली बार Gmail से कनेक्ट होता है या कुछ हद तक सिंक करने की सुविधा उपलब्ध न हो, तो आपको पूरी तरह सिंक करना होगा. पूरी तरह सिंक करने की कार्रवाई में, आपके ऐप्लिकेशन को नए मैसेज या थ्रेड के जितने चाहें, उतने नए मैसेज या थ्रेड को वापस लाने और सेव करने चाहिए. उदाहरण के लिए, अगर आपका ऐप्लिकेशन हाल ही के मैसेज की सूची दिखाता है, तो हो सकता है कि आप उतने मैसेज वापस लाना चाहें और कैश मेमोरी में सेव करना चाहें जिनसे रिस्पॉन्सिव इंटरफ़ेस के लिए अनुमति मिले. ऐसा तब होता है, जब उपयोगकर्ता पहले दिखाए गए कई मैसेज को छोड़कर आगे बढ़ता है. पूरी तरह सिंक होने की कार्रवाई इस तरह की जाती है:

  1. मैसेज आईडी के पहले पेज को वापस पाने के लिए, messages.list को कॉल करें.
  2. सूची के लिए मिले अनुरोध से मिले हर मैसेज के लिए, messages.get अनुरोधों के लिए एक बैच अनुरोध बनाएं. अगर आपका ऐप्लिकेशन मैसेज का कॉन्टेंट दिखाता है, तो आपको तब format=FULL या format=RAW का इस्तेमाल करना चाहिए, जब आपका ऐप्लिकेशन पहली बार मैसेज फिर से हासिल करे. साथ ही, अतिरिक्त डेटा वापस पाने की कार्रवाइयों से बचने के लिए, नतीजों को कैश मेमोरी में सेव करे. अगर आपको कैश मेमोरी में सेव किए गए पुराने मैसेज को वापस लाना है, तो रिस्पॉन्स का साइज़ कम करने के लिए, format=MINIMAL का इस्तेमाल करें. ऐसा इसलिए, क्योंकि सिर्फ़ labelIds में बदलाव हो सकता है.
  3. अपडेट को अपनी कैश मेमोरी में सेव किए गए नतीजों में मर्ज करें. आपके ऐप्लिकेशन को आने वाले समय में कुछ हद तक सिंक करने के लिए, सबसे हाल के मैसेज (list जवाब का पहला मैसेज) का historyId सेव करना चाहिए.

कुछ हद तक सिंक करना

अगर आपके ऐप्लिकेशन ने हाल ही में सिंक किया है, तो आपके पास history.list तरीके का इस्तेमाल करके, कुछ हिस्से को सिंक करने का विकल्प है. इससे, अनुरोध में बताए गए startHistoryId से नए इतिहास के रिकॉर्ड दिखाए जा सकेंगे. इतिहास के रिकॉर्ड में, हर मैसेज का मैसेज आईडी और उसमें किए गए बदलाव का टाइप दिया जाता है. जैसे, जोड़ा गया, मिटाया गया मैसेज या startHistoryId के बाद से हुए बदलाव. आने वाले समय में कुछ हद तक सिंक करने की कार्रवाइयों के लिए, startHistoryId के तौर पर उपलब्ध कराने के लिए, किसी फ़ुल या कुछ हिस्से के सिंक से, सबसे हाल ही के मैसेज के historyId को हासिल और सेव किया जा सकता है.

सीमाएं

इतिहास के रिकॉर्ड आम तौर पर कम से कम एक हफ़्ते और अक्सर उपलब्ध होते हैं. हालांकि, जिस समयावधि के लिए रिकॉर्ड उपलब्ध होते हैं वह काफ़ी कम हो सकती है. साथ ही, ऐसा भी हो सकता है कि कुछ मामलों में रिकॉर्ड उपलब्ध न हों. अगर आपके क्लाइंट से मिला startHistoryId, इतिहास के रिकॉर्ड की उपलब्ध रेंज से बाहर है, तो एपीआई HTTP 404 गड़बड़ी का जवाब देता है. इस मामले में, आपके क्लाइंट को पिछले सेक्शन में बताए गए तरीके से, पूरी तरह से सिंक करना होगा.