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