হোমপেজ হল Google Workspace অ্যাড-অন ফিচার যা এক বা একাধিক প্রসঙ্গ-বহির্ভূত কার্ড নির্ধারণ করার ক্ষমতা প্রদান করে। ব্যবহারকারী যখন কোনও নির্দিষ্ট প্রসঙ্গ থেকে বেরিয়ে আসেন, যেমন, কোনও মেসেজ বা ড্রাফ্ট খোলা না থাকা অবস্থায় নিজের Gmail ইনবক্স দেখেন, তখন প্রসঙ্গ-বহির্ভূত কার্ড ব্যবহারকারী ইন্টারফেস দেখায়।
হোমপেজ আপনাকে নন-কন্টেক্সচুয়াল কন্টেন্ট দেখাতে দেয়, যা দ্রুত অ্যাক্সেস সাইড প্যানেলে উপস্থিত Google অ্যাপের (Google Keep, Google Calendar ও Google Tasks) মতো। এছাড়াও, কোনও ব্যবহারকারী প্রথমবার আপনার অ্যাড-অন খুললে, হোমপেজ তাকে একটি প্রাথমিক শুরুর জায়গা প্রদান করতে পারে এবং নতুন ব্যবহারকারীদের আপনার অ্যাড-অনের সাথে কীভাবে ইন্টার্যাক্ট করতে হয় তা শেখানোর জন্য এটি খুবই উপযোগী।
আপনার প্রজেক্ট ম্যানিফেস্টে উল্লেখ করে এবং এক বা একাধিক homepageTrigger
ফাংশন (হোমপেজ কনফিগারেশন দেখুন) প্রয়োগ করে আপনার অ্যাড-অনের জন্য একটি হোমপেজ নির্ধারণ করুন।
আপনার
অ্যাড-অন Google Chat-এর কার্যকারিতা বাড়ালে, এর হোমপেজ
Chat অ্যাপের সাথে ১:১ ডাইরেক্ট মেসেজের হোম ট্যাবে
দেখা যায় এবং এটি ম্যানিফেস্টের পরিবর্তে Google Cloud Console-এ
কনফিগার করা হয় (Chat-এর জন্য হোমপেজ কনফিগার করুন
লিঙ্কটি দেখুন)।
আপনার একাধিক হোমপেজ থাকতে পারে, আপনার অ্যাড-অন যে হোস্ট অ্যাপ্লিকেশনকে এক্সটেন্ড করে তার প্রতিটির জন্য একটি করে। এছাড়াও, আপনি একটি সাধারণ ডিফল্ট হোমপেজ নির্ধারণ করতে পারেন যা এমন হোস্টের ক্ষেত্রে ব্যবহার করা হয় যেখানে আপনি কোনও কাস্টম হোমপেজ নির্দিষ্ট করেননি।
এইসব ক্ষেত্রে আপনার অ্যাড-অন হোমপেজ দেখানো হয়:
- হোস্টে প্রথমবার অ্যাড-অন খোলা হলে (অনুমোদনের পরে) অথবা কোনও ব্যবহারকারী Chat-এ আপনার Chat অ্যাপের সাথে ১:১ ডাইরেক্ট মেসেজে হোম ট্যাব খুললে।
- অ্যাড-অন খোলা থাকাকালীন ব্যবহারকারী যখন কোনও প্রাসঙ্গিক কন্টেক্সট থেকে কোনও অপ্রাসঙ্গিক কন্টেক্সটে পরিবর্তন করেন। যেমন, প্রধান ক্যালেন্ডারে কোনও ক্যালেন্ডার ইভেন্ট এডিট করা।
- ব্যবহারকারী যখন ব্যাক বোতামে এতবার ক্লিক করেন যে অভ্যন্তরীণ স্ট্যাক থেকে প্রতিটি কার্ড পপ-আপ হয়ে যায়।
- যখন কোনও নন-কন্টেক্সচুয়াল কার্ডে UI ইন্ট্যার্যাকশনের ফলে
Navigation.popToRootকল হয়।
হোমপেজ ডিজাইন করার সাজেশন দেওয়া হয়। আপনি কোনও কার্ড নির্দিষ্ট না করলে, কোনও ব্যবহারকারী হোমপেজে নেভিগেট করলেই আপনার অ্যাড-অনের নাম সহ একটি সাধারণ কার্ড ব্যবহার করা হয়।
হোমপেজ কনফিগারেশন
Google Workspace অ্যাড-অন, addOns.common.homepageTrigger ফিল্ড ব্যবহার করে
ডিফল্ট হোমপেজ (নন-কনটেক্সচুয়াল)
অ্যাড-অন কন্টেন্ট কনফিগার করে। এটি অ্যাড-অন ম্যানিফেস্টের
হোস্ট অ্যাপ্লিকেশনে করা হয়:
{
"addOns": {
"common": {
"homepageTrigger": {
"runFunction": "myFunction",
"enabled": true
}
}
}
}
runFunction: Google Apps স্ক্রিপ্ট ফাংশনের নাম যা Google Workspace অ্যাড-অন ফ্রেমওয়ার্ক হোমপেজ অ্যাড-অন কার্ড রেন্ডার করার জন্য ব্যবহার করে। এই ফাংশনটি হল হোমপেজ ট্রিগার ফাংশন। এই ফাংশনকে অবশ্যই হোমপেজ UI তৈরি করা এবংCardঅবজেক্টের একটি অ্যারে রিটার্ন করতে হবে। একাধিক কার্ড ফেরত এলে, হোস্ট অ্যাপ্লিকেশন কার্ডের হেডারগুলিকে একটি তালিকায় দেখায় যেখান থেকে ব্যবহারকারী বেছে নিতে পারেন (একাধিক কার্ড ফেরত আসা দেখুন)।enabled: এই স্কোপের জন্য হোমপেজ কার্ড চালু করা উচিত কিনা। এই ফিল্ডটি ঐচ্ছিক এবং ডিফল্ট হিসেবেtrueথাকে। এটিfalseহিসেবে সেট করলে, সব হোস্টের জন্য হোমপেজ কার্ড বন্ধ হয়ে যাবে (যদি না সেই হোস্টের জন্য ওভাররাইড করা হয়; হোস্ট-নির্দিষ্ট কনফিগারেশন দেখুন)।
কোনও হোস্টের সাধারণ হোমপেজ ব্যবহার করার জন্য, অ্যাড-অনে
addOns.common.homepageTrigger এবং হোস্টের
টপ-লেভেল রিসোর্স, দু'টিই থাকতে হবে ম্যানিফেস্ট। যেমন, ম্যানিফেস্টে
addOns.gmail না
থাকলে, Gmail-এর জন্য অ্যাড-অন বন্ধ করা হয়
এবং সেই হোস্টে কোনও হোমপেজ বা অন্যান্য ফাংশনালিটি
দেখানো হয় না।
সাধারণ কনফিগারেশন ছাড়াও, প্রতিটি হোস্ট অ্যাপ্লিকেশনের কনফিগে অভিন্নভাবে স্ট্রাকচার করা পার-হোস্ট
ওভাররাইড উপলভ্য থাকে, যা
addOns.gmail.homepageTrigger, addOns.calendar.homepageTrigger এবং অন্যান্য
হোস্ট-নির্দিষ্ট ট্রিগার।
নিম্নলিখিত উদাহরণে এমন একটি ম্যানিফেস্ট দেখানো হয়েছে যেখানে একটি সাধারণ হোমপেজ ট্রিগার
সংজ্ঞায়িত করা হয়েছে, কিন্তু Calendar ও
Drive-এর জন্য কাস্টম ফাংশন দিয়ে ওভাররাইড করা হয়েছে এবং Gmail-এর জন্য বন্ধ করা হয়েছে। এই
কনফিগারেশনে, সাধারণ buildHomePage ফাংশন কখনওই এক্সিকিউট হয় না কারণ এটি
ওভাররাইড করা হয় অথবা হোস্ট বন্ধ করা থাকে।
{
...
"addOns": {
...
"common": {
"homepageTrigger": { "runFunction": "buildHomePage" }
},
"calendar": {
"homepageTrigger": { "runFunction": "buildCalendarHomepage" }
},
"drive": {
"homepageTrigger": { "runFunction": "buildDriveHomepage" }
},
"gmail": {
"homepageTrigger": { "enabled": false }
},
...
}
}
নিচের ম্যানিফেস্টের অংশটি আগের উদাহরণের সমতুল্য, যদিও
ডিফল্ট homepageTrigger এবং Gmail কনফিগারেশন
বাদ দেওয়া হয়েছে:
{
"addOns": {
"common": {},
"calendar": {
"homepageTrigger": { "runFunction": "myCalendarFunction" }
},
"drive": {
"homepageTrigger": { "runFunction": "myDriveFunction" }
},
"gmail": {},
...
}
}
homepageTrigger বিভাগের কোনওটিই বাধ্যতামূলক নয়। হোস্ট প্রোডাক্টে অ্যাড-অনের জন্য দেখানো UI
সংশ্লিষ্ট ম্যানিফেস্ট ফিল্ডের উপস্থিতি এবং কোনও সংশ্লিষ্ট
homepageTrigger আছে কিনা তার উপর নির্ভর করে। বিভিন্ন ম্যানিফেস্ট কনফিগারেশনের জন্য
হোমপেজ UI তৈরি করতে কোন
অ্যাড-অন ট্রিগার ফাংশন এক্সিকিউট করা হয় তা নিম্নলিখিত উদাহরণ থেকে দেখুন:

Chat-এর জন্য হোমপেজ কনফিগার করা
অন্যান্য Google Workspace হোস্ট অ্যাপ্লিকেশনের মতো, Chat-এর
কার্যকারিতা বাড়ায় এমন অ্যাড-অন ডানদিকের কুইক
অ্যাক্সেস প্যানেলে হোমপেজ দেখায় না এবং ম্যানিফেস্টে addOns.common.homepageTrigger ব্যবহার করে না।
এর পরিবর্তে, Chat অ্যাপের সাথে ১:১ সরাসরি মেসেজের হোম
ট্যাবে Chat আপনার হোমপেজকে কার্ড হিসেবে দেখায়।
Google Cloud কনসোলে আপনার Chat অ্যাড-অনের জন্য অ্যাপ হোম ট্রিগার চালু ও কনফিগার করতে:
Google Cloud কনসোলে, মেনু > API ও পরিষেবা > চালু করা API ও পরিষেবা > Google Chat API > কনফিগারেশন বিকল্পে যান।
ইন্টার্যাক্টিভ ফিচার বিকল্পের মধ্যে, ইন্টার্যাক্টিভ ফিচার চালু করুন বিকল্পটি চালু আছে কিনা দেখুন এবং তারপর অ্যাপ হোম কাজ করে চেকবক্স বেছে নিন।
কানেকশন সেটিংস > ট্রিগার বিকল্পের মধ্যে, আপনার অ্যাড-অন আর্কিটেকচারের উপর ভিত্তি করে অ্যাপ হোম ফিল্ডে আপনার অ্যাপ হোম হ্যান্ডলার নির্দিষ্ট করুন:
- HTTP: অ্যাপ হোম সংক্রান্ত অনুরোধ ম্যানেজ করে এমন HTTPS এন্ডপয়েন্ট URL লিখুন (অথবা এটি খালি রাখুন যাতে আপনার সাধারণ HTTP এন্ডপয়েন্ট URL সব ইভেন্ট পায়)।
- Google Apps স্ক্রিপ্ট: আপনার হোমপেজ কার্ড তৈরি ও রিটার্ন করে এমন Google Apps স্ক্রিপ্ট
কলব্যাক ফাংশনের নাম লিখুন (ডিফল্ট হিসেবে
onAppHome)।
সেভ করুন বিকল্পে ক্লিক করুন।
কোনও ব্যবহারকারী আপনার
Chat অ্যাপের মাধ্যমে সরাসরি মেসেজের হোম ট্যাব খুললে, Chat আপনার এন্ডপয়েন্ট বা ফাংশনে অ্যাপ হোম
ট্রিগার ইভেন্ট পাঠায়। হোমপেজ রেন্ডার করতে, pushCard নেভিগেশন অ্যাকশন সহ একটি
RenderActions
অবজেক্ট রিটার্ন করুন (অথবা হোমপেজ কার্ডে কোনও বোতামে ক্লিক করার উত্তরে
হোমপেজ আপডেট করার সময় updateCard ব্যবহার করুন):
HTTP
{ "action": { "navigations": [ { "pushCard": { "header": { "title": "Welcome to App Home" }, "sections": [ { "widgets": [ { "textParagraph": { "text": "Manage your settings and view your dashboard here." } } ] } ] } } ] } }
Google Apps স্ক্রিপ্ট
function onAppHome(event) { const card = CardService.newCardBuilder() .setHeader( CardService.newCardHeader().setTitle('Welcome to App Home')) .addSection( CardService.newCardSection().addWidget( CardService.newTextParagraph().setText( 'Manage your settings and view your dashboard here.'))) .build(); return CardService.newActionResponseBuilder() .setNavigation(CardService.newNavigation().pushCard(card)) .build(); }
চ্যাট ট্রিগার ম্যানেজ করা, অ্যাকশন রিটার্ন করা এবং অ্যাপ হোম কার্ড তৈরি করা সম্পর্কে আরও বিবরণের জন্য, অ্যাপ হোম কার্ড পাঠানো ও আপডেট করা এবং ব্যবহারকারীর ইন্টার্যাকশনের উত্তর দেওয়া ও প্রতিক্রিয়া জানানো দেখুন।
হোমপেজ ইভেন্ট অবজেক্ট
কল করা হলে, আগে বর্ণনা করা হোমপেজ ট্রিগার ফাংশন (runFunction) বা অ্যাপ হোম এন্ডপয়েন্ট
একটি
ইভেন্ট অবজেক্ট পাস করে যাতে
ইনভোকেশন কনটেক্সট থেকে ডেটা থাকে।
হোমপেজ ইভেন্ট অবজেক্টে উইজেট বা প্রাসঙ্গিক তথ্য থাকে না। প্রেরিত তথ্যের মধ্যে নিম্নলিখিত সাধারণ ইভেন্ট অবজেক্ট ফিল্ড অন্তর্ভুক্ত থাকে:
commonEventObject.clientPlatformcommonEventObject.hostAppcommonEventObject.userLocaleএবংcommonEventObject.userTimezone(সীমাবদ্ধতা সংক্রান্ত তথ্যের জন্য ব্যবহারকারীর লোকেল ও টাইমজোন অ্যাক্সেস করা দেখুন)।
এছাড়াও, Chat-এ, অ্যাপ হোম ইভেন্ট অবজেক্টে ব্যবহারকারী ও ইন্টার্যাকশন টাইম সংক্রান্ত তথ্য সহ chat
ফিল্ড থাকে:
chat.user: চ্যাট ব্যবহারকারী যিনি হোম ট্যাব খুলেছেন।chat.eventTime: ব্যবহারকারী হোম ট্যাব খোলার টাইমস্ট্যাম্প।
আরও বিবরণের জন্য ইভেন্ট অবজেক্ট দেখুন।
অন্যান্য নন-কন্টেক্সচুয়াল কার্ড
আপনার অ্যাড-অন UI-তে অতিরিক্ত নন-কন্টেক্সচুয়াল কার্ড থাকতে পারে যেগুলি হোমপেজ নয়। যেমন, আপনার হোমপেজে একটি বোতাম থাকতে পারে যা অ্যাড-অন সেটিংস অ্যাডজাস্ট করার জন্য একটি "সেটিংস" কার্ড খোলে (এই ধরনের সেটিংস সাধারণত প্রসঙ্গ নিরপেক্ষ হয়)।
প্রসঙ্গ বহির্ভূত কার্ড অন্য যেকোনও কার্ডের মতোই তৈরি করা হয়; পার্থক্য শুধু কোন অ্যাকশন বা ইভেন্ট কার্ড তৈরি ও দেখায়। কার্ডের মধ্যে ট্রানজিশন কীভাবে তৈরি করতে হয় সেই বিষয়ে বিস্তারিত জানতে নেভিগেশন পদ্ধতি দেখুন।