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

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

कॉन्टेंट

पूरा डेटा सिंक करना

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

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

कुछ हिस्से का सिंक होना

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

सीमाएं

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