ক্লায়েন্টদের Gmail এর সাথে সিঙ্ক্রোনাইজ করুন

এই ডকুমেন্টটিতে জিমেইল এপিআই (Gmail API) ব্যবহার করে ক্লায়েন্টদের সিঙ্ক্রোনাইজ করার পদ্ধতি ব্যাখ্যা করা হয়েছে।

বেশিরভাগ অ্যাপের ক্ষেত্রেই আপনার ক্লায়েন্টকে জিমেইলের সাথে সিঙ্ক্রোনাইজ করে রাখা জরুরি। সিঙ্ক্রোনাইজেশনের দুটি পদ্ধতি রয়েছে: সম্পূর্ণ সিঙ্ক্রোনাইজেশন এবং আংশিক সিঙ্ক্রোনাইজেশন । আপনার ক্লায়েন্ট যখন প্রথমবার জিমেইলের সাথে সংযুক্ত হয়, তখন এবং কিছু বিরল ক্ষেত্রে আপনাকে অবশ্যই সম্পূর্ণ সিঙ্ক্রোনাইজেশন করতে হবে। যদি আপনার ক্লায়েন্ট সম্প্রতি সিঙ্ক্রোনাইজ করে থাকে, তবে সম্পূর্ণ সিঙ্কের একটি হালকা বিকল্প হলো আংশিক সিঙ্ক্রোনাইজেশন। এছাড়াও, অপ্রয়োজনীয় পোলিং এড়িয়ে আপনি রিয়েল টাইমে এবং শুধুমাত্র প্রয়োজনের সময় আংশিক সিঙ্ক্রোনাইজেশন চালু করতে পুশ নোটিফিকেশন ব্যবহার করতে পারেন।

সম্পূর্ণ সিঙ্ক্রোনাইজেশন

আপনার অ্যাপ যখন প্রথমবার জিমেইলের সাথে সংযুক্ত হবে, অথবা যদি আংশিক সিঙ্ক্রোনাইজেশন উপলব্ধ না থাকে, তবে আপনাকে অবশ্যই একটি সম্পূর্ণ সিঙ্ক্রোনাইজেশন করতে হবে। একটি সম্পূর্ণ সিঙ্ক অপারেশনে, আপনার অ্যাপকে আপনার উদ্দেশ্যের জন্য প্রয়োজনীয় সংখ্যক সাম্প্রতিকতম বার্তা বা থ্রেড পুনরুদ্ধার এবং সংরক্ষণ করতে হবে। উদাহরণস্বরূপ, যদি আপনার অ্যাপ সাম্প্রতিক বার্তাগুলির একটি তালিকা প্রদর্শন করে, তবে ব্যবহারকারী প্রদর্শিত প্রথম কয়েকটি বার্তার বাইরে স্ক্রোল করলেও একটি রেসপন্সিভ ইন্টারফেস চালু রাখার জন্য আপনি পর্যাপ্ত সংখ্যক বার্তা পুনরুদ্ধার এবং ক্যাশ করতে পারেন।

সম্পূর্ণ সিঙ্ক করতে এই ধাপগুলো অনুসরণ করুন:

  1. মেসেজ আইডিগুলোর প্রথম পাতাটি পেতে messages.list মেথডটি কল করুন।

  2. লিস্ট রিকোয়েস্ট থেকে প্রাপ্ত প্রতিটি মেসেজের জন্য messages.get মেথডের একটি ব্যাচ রিকোয়েস্ট তৈরি করুন।

    আপনার অ্যাপ যদি মেসেজের বিষয়বস্তু প্রদর্শন করে, তাহলে প্রথমবার মেসেজ পুনরুদ্ধার করার সময় format প্যারামিটারটি format=full বা format=raw সেট করুন এবং অতিরিক্ত পুনরুদ্ধার প্রক্রিয়া এড়াতে ফলাফলগুলো ক্যাশ করে রাখুন। আপনি যদি পূর্বে ক্যাশ করা কোনো মেসেজ পুনরুদ্ধার করেন, তাহলে রেসপন্সের আকার কমাতে format=minimal ব্যবহার করুন, কারণ সেক্ষেত্রে শুধুমাত্র labelIds পরিবর্তিত হতে পারে।

  3. আপডেটগুলো আপনার ক্যাশ করা ফলাফলের সাথে একীভূত করুন। ভবিষ্যতের আংশিক সিঙ্ক্রোনাইজেশনের জন্য আপনার অ্যাপে সবচেয়ে সাম্প্রতিক মেসেজের ( list রেসপন্সের প্রথম মেসেজ) historyId সংরক্ষণ করা উচিত।

আংশিক সিঙ্ক্রোনাইজেশন

আপনার অ্যাপটি যদি সম্প্রতি সিঙ্ক্রোনাইজ করা হয়ে থাকে, তাহলে আপনি history.list মেথডটি ব্যবহার করে একটি আংশিক সিঙ্ক করতে পারেন। এর মাধ্যমে আপনার রিকোয়েস্টে অবশ্যই উল্লেখ করতে হবে এমন startHistoryId কোয়েরি প্যারামিটারের চেয়ে নতুন সমস্ত হিস্ট্রি রেকর্ড ফেরত আসবে।

startHistoryId কোয়েরি প্যারামিটারটি অবশ্যই একটি সাম্প্রতিক মেসেজের historyId তে সেট করতে হবে। একটি সাম্প্রতিক মেসেজের historyId পেতে, messages.get অথবা messages.list মেথডগুলো ব্যবহার করুন। এছাড়াও, ভবিষ্যতের ব্যবহারের জন্য আপনি একটি সম্পূর্ণ বা আংশিক সিঙ্কের সময় এই মানটি সেট করতে পারেন।

ফেরত আসা History অবজেক্টটিতে প্রদত্ত startHistoryId সময় থেকে প্রতিটি মেসেজের মেসেজ আইডি এবং পরিবর্তনের ধরন, যেমন—মেসেজ যোগ করা হয়েছে বা লেবেল পরিবর্তন করা হয়েছে, অন্তর্ভুক্ত থাকে।

সীমাবদ্ধতা

ইতিহাসের রেকর্ডগুলো সাধারণত কমপক্ষে এক সপ্তাহ এবং প্রায়শই তার চেয়েও বেশি সময়ের জন্য উপলব্ধ থাকে। তবে, যে সময়কালের জন্য রেকর্ডগুলো উপলব্ধ থাকে তা উল্লেখযোগ্যভাবে কম হতে পারে এবং বিরল ক্ষেত্রে রেকর্ডগুলো অনুপলব্ধও থাকতে পারে।

আপনার ক্লায়েন্ট কর্তৃক সরবরাহকৃত startHistoryId যদি হিস্ট্রি রেকর্ডের উপলব্ধ পরিসরের বাইরে থাকে, তাহলে Gmail API একটি HTTP 404 ত্রুটি প্রতিক্রিয়া ফেরত দেয়। এই ক্ষেত্রে, আপনার ক্লায়েন্টকে অবশ্যই একটি সম্পূর্ণ সিঙ্ক করতে হবে।