এই ডকুমেন্টটি ব্যাখ্যা করে কিভাবে Gmail API ব্যবহার করে ক্লায়েন্টদের সিঙ্ক্রোনাইজ করতে হয়।
বেশিরভাগ অ্যাপের ক্ষেত্রেই আপনার ক্লায়েন্টকে Gmail-এর সাথে সিঙ্ক্রোনাইজ রাখা গুরুত্বপূর্ণ। দুটি সিঙ্ক্রোনাইজেশন পদ্ধতি রয়েছে: সম্পূর্ণ সিঙ্ক্রোনাইজেশন এবং আংশিক সিঙ্ক্রোনাইজেশন । আপনার ক্লায়েন্ট যখন প্রথমবার Gmail-এর সাথে সংযোগ স্থাপন করে তখন সম্পূর্ণ সিঙ্ক্রোনাইজেশন প্রয়োজন হয় এবং কিছু বিরল পরিস্থিতিতেও। যদি আপনার ক্লায়েন্ট সম্প্রতি সিঙ্ক্রোনাইজ করে থাকে, তাহলে আংশিক সিঙ্ক্রোনাইজেশন সম্পূর্ণ সিঙ্ক্রোনাইজেশনের চেয়ে হালকা বিকল্প। আপনি রিয়েল-টাইমে এবং শুধুমাত্র প্রয়োজনে আংশিক সিঙ্ক্রোনাইজেশন ট্রিগার করতে পুশ নোটিফিকেশন ব্যবহার করতে পারেন, যার ফলে অপ্রয়োজনীয় পোলিং এড়ানো যায়।
সম্পূর্ণ সিঙ্ক্রোনাইজেশন
আপনার অ্যাপটি যখন প্রথমবার Gmail-এর সাথে সংযুক্ত হয়, অথবা যদি আংশিক সিঙ্ক্রোনাইজেশন উপলব্ধ না থাকে, তাহলে আপনাকে অবশ্যই একটি সম্পূর্ণ সিঙ্ক্রোনাইজেশন করতে হবে। একটি সম্পূর্ণ সিঙ্ক্রোনাইজেশন অপারেশনে, আপনার অ্যাপটি আপনার উদ্দেশ্যে প্রয়োজনীয় যতগুলি সাম্প্রতিক বার্তা বা থ্রেড পুনরুদ্ধার এবং সংরক্ষণ করবে। উদাহরণস্বরূপ, যদি আপনার অ্যাপটি সাম্প্রতিক বার্তাগুলির একটি তালিকা প্রদর্শন করে, তাহলে ব্যবহারকারী যদি প্রদর্শিত প্রথম কয়েকটি বার্তার বাইরে স্ক্রোল করে তবে একটি প্রতিক্রিয়াশীল ইন্টারফেস তৈরি করার জন্য আপনি পর্যাপ্ত বার্তা পুনরুদ্ধার এবং ক্যাশে করতে চাইতে পারেন।
সম্পূর্ণ সিঙ্ক করার জন্য এই পদক্ষেপগুলি অনুসরণ করুন:
মেসেজ আইডির প্রথম পৃষ্ঠা পুনরুদ্ধার করতে
messages.listপদ্ধতিতে কল করুন।তালিকা অনুরোধ দ্বারা ফেরত আসা প্রতিটি বার্তার জন্য
messages.getপদ্ধতি অনুরোধের একটি ব্যাচ অনুরোধ তৈরি করুন।যদি আপনার অ্যাপটি বার্তার বিষয়বস্তু প্রদর্শন করে, তাহলে আপনার অ্যাপটি প্রথমবার কোনও বার্তা পুনরুদ্ধার করার সময়
Formatformat=FULLঅথবাformat=RAWসেট করা উচিত এবং অতিরিক্ত পুনরুদ্ধারের ক্রিয়াকলাপ এড়াতে ফলাফলগুলি ক্যাশে করা উচিত। যদি আপনি পূর্বে ক্যাশে করা বার্তা পুনরুদ্ধার করেন, তাহলে প্রতিক্রিয়ার আকার কমাতেformat=MINIMALব্যবহার করা উচিত কারণ শুধুমাত্রlabelIdsপরিবর্তন হতে পারে।আপনার ক্যাশে করা ফলাফলের সাথে আপডেটগুলি মার্জ করুন। ভবিষ্যতের আংশিক সিঙ্ক্রোনাইজেশনের জন্য আপনার অ্যাপের সাম্প্রতিক বার্তার (
listপ্রতিক্রিয়ার প্রথম বার্তা)historyIdসংরক্ষণ করা উচিত।
আংশিক সিঙ্ক্রোনাইজেশন
যদি আপনার অ্যাপটি সম্প্রতি সিঙ্ক্রোনাইজ করা হয়ে থাকে, তাহলে আপনি history.list পদ্ধতি ব্যবহার করে আংশিক সিঙ্ক করতে পারেন যাতে আপনার অনুরোধে উল্লেখ করা startHistoryId কোয়েরি প্যারামিটারের চেয়ে নতুন সব ইতিহাস রেকর্ড ফেরত দেওয়া যায়।
startHistoryId কোয়েরি প্যারামিটারটি অবশ্যই একটি সাম্প্রতিক বার্তার historyId তে সেট করতে হবে। একটি সাম্প্রতিক বার্তার historyId পুনরুদ্ধার করতে, messages.get অথবা messages.list পদ্ধতিগুলি ব্যবহার করুন। ভবিষ্যতে ব্যবহারের জন্য আপনি সম্পূর্ণ বা আংশিক সিঙ্কের সময় মানটিও সেট করতে পারেন।
রিটার্ন করা History অবজেক্টে মেসেজ আইডি এবং প্রতিটি মেসেজের পরিবর্তনের ধরণ অন্তর্ভুক্ত থাকে, যেমন মেসেজ যোগ করা হয়েছে বা লেবেল পরিবর্তন করা হয়েছে, প্রদত্ত startHistoryId এর সময় থেকে।
সীমাবদ্ধতা
ইতিহাসের রেকর্ড সাধারণত কমপক্ষে এক সপ্তাহ এবং প্রায়শই তার বেশি সময় ধরে পাওয়া যায়। তবে, রেকর্ডগুলি যে সময়কালের জন্য পাওয়া যায় তা উল্লেখযোগ্যভাবে কম হতে পারে এবং কখনও কখনও বিরল ক্ষেত্রে রেকর্ডগুলি অনুপলব্ধ হতে পারে।
যদি আপনার ক্লায়েন্ট দ্বারা সরবরাহিত startHistoryId ইতিহাস রেকর্ডের উপলব্ধ পরিসরের বাইরে থাকে, তাহলে Gmail API একটি HTTP 404 ত্রুটি প্রতিক্রিয়া প্রদান করে। এই ক্ষেত্রে, আপনার ক্লায়েন্টকে একটি সম্পূর্ণ সিঙ্ক করতে হবে।