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