গুগল ক্যালেন্ডার ইন্টারফেস তৈরি করুন

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

ক্যালেন্ডারের জন্য একটি গুগল ওয়ার্কস্পেস অ্যাড-অন ইন্টারফেস তৈরি করার সময়, আপনি একটি হোমপেজ দিতে পারেন। আপনি একাধিক হোস্টের জন্য একই হোমপেজ ব্যবহার করতে পারেন, অথবা ক্যালেন্ডারের জন্য একটি নির্দিষ্ট হোমপেজ ডিজাইন করতে পারেন।

আপনার অ্যাড-অন এমন একটি ইন্টারফেসও নির্ধারণ করতে পারে, যা ব্যবহারকারীর ক্যালেন্ডারের কোনো ইভেন্ট খোলা থাকলে প্রদর্শিত হবে।

অ্যাড-অন UI অ্যাক্সেস করুন

প্রসঙ্গের উপর নির্ভর করে আপনার UI বিভিন্নভাবে প্রদর্শিত হতে পারে। উদাহরণস্বরূপ, একটি অ্যাড-অন একটি হোমপেজ ইন্টারফেস, একটি ক্যালেন্ডার ইভেন্ট ইন্টারফেস, একটি অ্যাটাচমেন্ট নির্বাচন ইন্টারফেস, অথবা এই তিনটিই সংজ্ঞায়িত করতে পারে:

  • যদি কোনো ব্যবহারকারী ক্যালেন্ডার ভিউতে থাকা অবস্থায় অ্যাড-অন আইকনে ক্লিক করেন, তাহলে অ্যাড-অনটি সংশ্লিষ্ট calendar.homepageTrigger ফাংশনটি (যদি থাকে) কার্যকর করে। এই ফাংশনটি একটি হোমপেজ কার্ড তৈরি করে এবং প্রদর্শনের জন্য ক্যালেন্ডারে ফেরত পাঠায়। যদি কোনো calendar.homepageTrigger ফাংশন সংজ্ঞায়িত না থাকে, তাহলে তার পরিবর্তে একটি জেনেরিক হোমপেজ কার্ড প্রদর্শিত হয়।
  • যদি ব্যবহারকারী একটি ক্যালেন্ডার ইভেন্ট খোলার পর অ্যাড-অন আইকনে ক্লিক করেন, অথবা ব্যবহারকারী যখন কোনো ইভেন্ট খোলেন তখন অ্যাড-অনটি খোলা থাকে, তাহলে অ্যাড-অনটি সংশ্লিষ্ট eventOpenTrigger ফাংশনটি (যদি থাকে) কার্যকর করে। এই ফাংশনটি অ্যাড-অনটির ক্যালেন্ডার ইভেন্ট ইন্টারফেস তৈরি করে এবং প্রদর্শনের জন্য ক্যালেন্ডারে ফিরে যায়।
  • যদি অ্যাড-অনটিতে একটি eventAttachmentTrigger ফাংশন সংজ্ঞায়িত করা থাকে, তাহলে ব্যবহারকারী যখন কোনো ক্যালেন্ডার ইভেন্ট সম্পাদনা করার সময় 'Add attachment'-এ ক্লিক করেন, তখন অ্যাড-অনটি একটি অ্যাটাচমেন্ট প্রদানকারী হিসেবে প্রদর্শিত হয়। অ্যাড-অনটি নির্বাচিত হলে, eventAttachmentTrigger ফাংশনটি অ্যাড-অনটির অ্যাটাচমেন্ট নির্বাচন ইন্টারফেস তৈরি করে এবং প্রদর্শনের জন্য সেটিকে ক্যালেন্ডারে ফেরত পাঠায়।

অ্যাড-অন ক্যালেন্ডার ইন্টারফেস তৈরি করুন

আপনার UI তৈরি করতে এই ধাপগুলো অনুসরণ করুন। এই ধাপগুলো অনুসরণ করে আপনি একটি গুগল ওয়ার্কস্পেস অ্যাড-অন দিয়ে ক্যালেন্ডারকে আরও উন্নত করতে পারেন:

  1. আপনার অ্যাড-অনের জন্য একটি ক্যালেন্ডার-নির্দিষ্ট হোমপেজ থাকবে কিনা তা স্থির করুন। এছাড়াও, ব্যবহারকারী যখন ক্যালেন্ডারের ইভেন্টগুলো সম্পাদনা করবেন, তখন তাকে একটি কাস্টম ইন্টারফেস প্রদান করতে চান কিনা, সে বিষয়েও সিদ্ধান্ত নিন।
  2. অ্যাড-অন স্ক্রিপ্ট প্রজেক্ট ম্যানিফেস্টে উপযুক্ত addOns.common এবং addOns.calendar ফিল্ডগুলো যোগ করুন, এর সাথে প্রয়োজনীয় স্কোপগুলোও অন্তর্ভুক্ত করুন।
  3. আপনি যদি ক্যালেন্ডার-নির্দিষ্ট কোনো হোমপেজ প্রদান করেন, তবে এই ইন্টারফেসটি তৈরি করতে calendar.homepageTrigger ফাংশনটি ইমপ্লিমেন্ট করুন। এছাড়াও, একাধিক হোস্ট অ্যাপ্লিকেশনের জন্য আপনি common.homepageTrigger ইন্টারফেসটি ব্যবহার করতে পারেন।
  4. আপনি যদি একটি ক্যালেন্ডার ইভেন্ট ইন্টারফেস প্রদান করেন, তবে এই ইন্টারফেসটি তৈরি করতে একটি calendar.eventOpenTrigger ফাংশন ইমপ্লিমেন্ট করুন। বিস্তারিত জানতে ক্যালেন্ডার ইভেন্ট ইন্টারফেস সম্প্রসারণ দেখুন।
  5. ব্যবহারকারীর UI ইন্টারঅ্যাকশন, যেমন বাটনে ক্লিক, এর প্রতিক্রিয়া জানাতে প্রয়োজনীয় সংশ্লিষ্ট কলব্যাক ফাংশনগুলো বাস্তবায়ন করুন।

ক্যালেন্ডারের মূল পাতা

অ্যাড-অনগুলো গুগল ওয়ার্কস্পেস অ্যাড-অন হোমপেজ প্রদর্শনে সহায়তা করে। ক্যালেন্ডারে আপনার অ্যাড-অনের সাধারণ হোমপেজটি দেখানোর জন্য, নিশ্চিত করুন যে অ্যাড-অনটির ম্যানিফেস্টে একটি addOns.calendar ফিল্ড রয়েছে।

বিকল্পভাবে, ক্যালেন্ডারের জন্য একটি নির্দিষ্ট হোমপেজ প্রদান করতে অ্যাড-অন ম্যানিফেস্টে একটি calendar.homepageTrigger যোগ করুন।

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

ক্যালেন্ডার ইভেন্ট ইন্টারফেস প্রসারিত করুন

ব্যবহারকারী যখন কোনো ক্যালেন্ডার ইভেন্ট সম্পাদনা করেন, তখন কোন ইন্টারফেস (যদি থাকে) প্রদর্শন করা হবে তা নির্ধারণ করতে ক্যালেন্ডার একটি কনটেক্সচুয়াল ট্রিগারের উপর নির্ভর করে। যখন ট্রিগারটি সক্রিয় হয়, তখন এটি অ্যাড-অন ম্যানিফেস্টে থাকা calendar.eventOpenTrigger ফিল্ড দ্বারা নির্দিষ্ট কনটেক্সচুয়াল ট্রিগার ফাংশনটি কার্যকর করে।

calendar.eventOpenTrigger ফিল্ডে উল্লেখিত ফাংশনটি ইমপ্লিমেন্ট করুন। এই ফাংশনটি আর্গুমেন্ট হিসেবে একটি ইভেন্ট অবজেক্ট গ্রহণ করে এবং ব্যবহারকারীর ইভেন্টটি খোলা থাকা অবস্থায় ক্যালেন্ডারে প্রদর্শনের জন্য এটিকে অবশ্যই একটি একক Card অবজেক্ট অথবা Card অবজেক্টের একটি অ্যারে রিটার্ন করতে হবে।

ইভেন্ট অবজেক্ট

যখন কোনো ব্যবহারকারী একটি ক্যালেন্ডার ইভেন্ট খোলেন, তখন একটি ইভেন্ট অবজেক্ট তৈরি করা হয় এবং calendar.eventOpenTrigger কনটেক্সচুয়াল ট্রিগার ফাংশনে পাঠানো হয়। ট্রিগার ফাংশনটি এই ইভেন্ট অবজেক্টের তথ্য ব্যবহার করে অ্যাড-অন কার্ডগুলো কীভাবে তৈরি করতে হবে বা অ্যাড-অনের আচরণ নিয়ন্ত্রণ করতে পারে। এছাড়াও, যখন কোনো অ্যাড-অন প্রথমবার খোলা হয় এবং যখন ব্যবহারকারী ইন্টারেক্টিভ উইজেটগুলোতে ক্লিক বা নির্বাচন করেন, তখনও ইভেন্ট অবজেক্ট তৈরি করে homepageTrigger ফাংশনগুলোতে পাঠানো হয়।

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

ক্যালেন্ডারের ইভেন্টগুলি আপডেট করুন

ব্যবহারকারী যখন সম্পাদনার জন্য কোনো ক্যালেন্ডার ইভেন্ট খোলে, তখন যে প্রাসঙ্গিক calendar.eventOpenTrigger ট্রিগারটি সক্রিয় হয়, তার পাশাপাশি আপনি একটি calendar.eventUpdateTrigger ও সংজ্ঞায়িত করতে পারেন, যা ব্যবহারকারী যখন কোনো ক্যালেন্ডার ইভেন্ট আপডেট ও সংরক্ষণ করে তখন সক্রিয় হয়। এই ট্রিগারটি কেবল তখনই সক্রিয় হয়, যদি ব্যবহারকারী নিম্নলিখিত এক বা একাধিক সম্পাদনা করে থাকে:

  • এক বা একাধিক অংশগ্রহণকারীকে যুক্ত করে।
  • এক বা একাধিক অংশগ্রহণকারীকে অপসারণ করে।
  • একটি ভিন্ন কনফারেন্সিং সলিউশন যোগ করে বা তাতে পরিবর্তন করে।

যখন এই ট্রিগারটি সক্রিয় হয়, তখন এটি calendar.eventUpdateTrigger ম্যানিফেস্ট ফিল্ডে নির্দিষ্ট করা ট্রিগার ফাংশনটি কার্যকর করে। ক্যালেন্ডার ইভেন্টের সম্পাদনা সংরক্ষণ করার আগে এই ফাংশনটি কার্যকর করা হয়।

calendar.eventUpdateTrigger সাধারণত নিম্নলিখিত এক বা একাধিক কাজ করার জন্য ব্যবহৃত হয়:

  • ব্যবহারকারীর করা পরিবর্তনের প্রতিক্রিয়ায় অ্যাড-অনটির ক্যালেন্ডার ইভেন্ট ইন্টারফেস আপডেট করুন।
  • ক্যালেন্ডারের সাথে সংযুক্ত কোনো কনফারেন্সিং সিস্টেমের মতো তৃতীয় পক্ষের সিস্টেমের সাথে ক্যালেন্ডার ইভেন্টের ডেটা সিঙ্ক করুন।

আপনার অ্যাড-অন দিয়ে যদি কোনো ক্যালেন্ডার ইভেন্টের ডেটাতে (যেমন অংশগ্রহণকারীদের তালিকা) পরিবর্তন করার প্রয়োজন হয়, তাহলে অ্যাড-অনের calendar.currentEventAccess ম্যানিফেস্ট ফিল্ডটিকে WRITE বা READ_WRITE এ সেট করুন। এর জন্য অ্যাড-অনটির https://www.googleapis.com/auth/calendar.addons.current.event.write স্কোপ থাকাও আবশ্যক।

কনফারেন্সিং সমাধান যোগ করুন

আপনি যদি কোনো থার্ড-পার্টি কনফারেন্সিং সিস্টেম পরিচালনা করেন, তবে কনফারেন্সিং সলিউশন যোগ করার মাধ্যমে সেটিকে ক্যালেন্ডারের সাথে ইন্টিগ্রেট করতে পারেন। এই ফিচারটি পূর্বে ক্যালেন্ডার কনফারেন্সিং অ্যাড-অন হিসেবে বিটা পর্যায়ে ছিল।

কনফারেন্সিং সলিউশন হলো থার্ড-পার্টি কনফারেন্সের বিভিন্ন বিকল্প, যা ব্যবহারকারীরা ক্যালেন্ডার ইভেন্টের সাথে যুক্ত করতে পারেন। থার্ড-পার্টি কনফারেন্সিং ওভারভিউ ডকুমেন্টেশনে নতুন কনফারেন্সিং সলিউশন যোগ করার জন্য একটি অ্যাড-অন কীভাবে তৈরি করতে হয়, সে সম্পর্কে বিস্তারিত তথ্য দেওয়া আছে। এই ধরনের এক্সটেনশনের জন্য কোনো UI তৈরি করার প্রয়োজন নেই; যোগ করা সলিউশনগুলো ক্যালেন্ডার ইভেন্ট UI-এর ড্রপ-ডাউন মেনুতে বিকল্প হিসেবে প্রদর্শিত হয়।