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

इस दस्तावेज़ में, Gmail API का इस्तेमाल करके क्लाइंट को सिंक करने का तरीका बताया गया है.

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

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

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

पूरा डेटा सिंक करने के लिए, यह तरीका अपनाएं:

  1. मैसेज आईडी का पहला पेज वापस पाने के लिए, messages.list मेथड को कॉल करें.

  2. सूची बनाने के अनुरोध से मिले हर मैसेज के लिए, बैच अनुरोध का messages.get तरीका इस्तेमाल करके अनुरोध करें.

    अगर आपका ऐप्लिकेशन मैसेज का कॉन्टेंट दिखाता है, तो आपको Format को format=FULL या format=RAW पर सेट करना चाहिए. ऐसा तब करें, जब आपका ऐप्लिकेशन पहली बार कोई मैसेज वापस पाता है. साथ ही, आपको नतीजों को कैश मेमोरी में सेव करना चाहिए, ताकि वापस पाने की अतिरिक्त कार्रवाइयों से बचा जा सके. अगर आपको पहले से कैश मेमोरी में सेव किया गया कोई मैसेज वापस पाना है, तो आपको format=MINIMAL का इस्तेमाल करना चाहिए, ताकि जवाब का साइज़ कम हो सके. ऐसा इसलिए, क्योंकि सिर्फ़ labelIds में बदलाव हो सकता है.

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

कुछ डेटा सिंक होना

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

startHistoryId क्वेरी पैरामीटर को हाल ही के मैसेज के historyId पर सेट किया जाना चाहिए. हाल ही के मैसेज का historyId वापस पाने के लिए, messages.get या messages.list तरीकों का इस्तेमाल करें. इसका इस्तेमाल आने वाले समय में करने के लिए, पूरी तरह या आंशिक रूप से सिंक करने के दौरान भी वैल्यू सेट की जा सकती है.

जवाब में मिले History ऑब्जेक्ट में, मैसेज आईडी और हर मैसेज के लिए बदलाव का टाइप शामिल होता है. जैसे, startHistoryId के बाद से मैसेज जोड़ा गया या लेबल में बदलाव किया गया.

सीमाएं

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

अगर आपके क्लाइंट की ओर से दिया गया startHistoryId, इतिहास के उपलब्ध रिकॉर्ड की सीमा से बाहर है, तो Gmail API, HTTP 404 गड़बड़ी वाला जवाब दिखाता है. इस मामले में, आपके क्लाइंट को पूरी तरह से सिंक करना होगा.