इस दस्तावेज़ में, Gmail API के साथ क्लाइंट को सिंक करने का तरीका बताया गया है.
ज़्यादातर ऐप्लिकेशन के लिए, क्लाइंट को Gmail के साथ सिंक रखना ज़रूरी होता है. सिंक करने के दो तरीके हैं: पूरी तरह से सिंक करना और आंशिक रूप से सिंक करना. जब आपका क्लाइंट पहली बार Gmail से कनेक्ट होता है, तब आपको पूरा डेटा सिंक करना होगा. ऐसा कभी-कभी ही करना पड़ता है. अगर आपके क्लाइंट ने हाल ही में सिंक किया है, तो पूरा सिंक करने के बजाय आंशिक सिंक करना बेहतर होता है. पुश नोटिफ़िकेशन का इस्तेमाल करके, रीयल टाइम में और सिर्फ़ ज़रूरी होने पर, आंशिक तौर पर डेटा सिंक किया जा सकता है. इससे, बिना वजह पोलिंग करने से बचा जा सकता है.
पूरा डेटा सिंक करना
जब आपका ऐप्लिकेशन पहली बार Gmail से कनेक्ट होता है या जब आंशिक सिंक्रनाइज़ेशन उपलब्ध नहीं होता है, तब आपको पूरा सिंक्रनाइज़ेशन करना होगा. फ़ुल सिंक ऑपरेशन में, आपके ऐप्लिकेशन को हाल ही के ज़्यादा से ज़्यादा मैसेज या थ्रेड को वापस पाना चाहिए और उन्हें सेव करना चाहिए. ऐसा आपके मकसद के लिए ज़रूरी है. उदाहरण के लिए, अगर आपका ऐप्लिकेशन हाल ही के मैसेज की सूची दिखाता है, तो आपके पास इतने मैसेज वापस पाने और उन्हें कैश मेमोरी में सेव करने का विकल्प होता है कि उपयोगकर्ता को इंटरफ़ेस तेज़ी से दिखे. ऐसा तब होता है, जब उपयोगकर्ता दिखाए गए पहले कुछ मैसेज से आगे स्क्रोल करता है.
पूरा डेटा सिंक करने के लिए, यह तरीका अपनाएं:
मैसेज आईडी का पहला पेज वापस पाने के लिए,
messages.listतरीके को कॉल करें.सूची बनाने के अनुरोध के जवाब में मिले हर मैसेज के लिए, बैच अनुरोध में
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 गड़बड़ी वाला जवाब दिखाता है. इस मामले में, आपके क्लाइंट को पूरी तरह से सिंक करना होगा.