Google Chat-এ আপনার Google Chat অ্যাপ কীভাবে ব্যবহারকারীর ইন্টার্যাকশন গ্রহণ ও তার উত্তর দিতে পারে তা এই পৃষ্ঠায় বর্ণনা করা হয়েছে।
Chat অ্যাপের জন্য ইন্টার্যাক্টিভ ইন্টারফেস তৈরি করতে, আপনি নিম্নলিখিত কম্পোনেন্ট ব্যবহার করেন:
- ট্রিগার: Google Chat ব্যবহারকারীরা যেভাবে Chat অ্যাপকে ইনভোক করতে পারেন, যেমন এটিকে কোনও স্পেসে যোগ করা বা এতে মেসেজ পাঠানো।
- ইভেন্ট অবজেক্ট: ট্রিগার বা UI ইন্টার্যাকশন থেকে Chat অ্যাপ যে ডেটা পায়।
- অ্যাকশন: Chat অ্যাপ যেভাবে ইন্টার্যাকশনের উত্তর দিতে পারে, যেমন মেসেজ পাঠানো বা কার্ড-ভিত্তিক ইউজার ইন্টারফেস ফিরিয়ে আনা।
Chat অ্যাপ নিম্নলিখিত উপায়ে ইন্টারফেস তৈরি ও দেখাতে পারে:
- মেসেজ যাতে টেক্সট, স্ট্যাটিক বা ইন্ট্যার্যাক্টিভ কার্ড এবং অ্যাক্সেসরি বোতাম থাকতে পারে।
- হোমপেজ (অ্যাপ হোম) যা Chat অ্যাপের সাথে ১:১ সরাসরি মেসেজের হোম ট্যাবে দেখা যায়।
- ডায়ালগ, যা হল নতুন উইন্ডোতে খোলা কার্ড এবং সাধারণত ব্যবহারকারীকে তথ্য জমা দেওয়ার জন্য প্রম্পট করে।
- লিঙ্কের প্রিভিউ, যা হল এমন কার্ড যা এক্সটার্নাল পরিষেবা সম্পর্কে তথ্য প্রিভিউ করে।
পূর্বশর্ত
- Google Chat-এ অ্যাক্সেস সহ Google Workspace-এর Business বা Enterprise অ্যাকাউন্ট।
- Google Cloud প্রোজেক্ট তৈরি করুন।
- OAuth-এর সম্মতি সংক্রান্ত স্ক্রিন কনফিগার করুন।
- Google Chat API চালু ও কনফিগার করুন।
ব্যবহারকারীর ইন্টার্যাকশন কীভাবে কাজ করে
কোনও ব্যবহারকারী Chat অ্যাপের সাথে ইন্টার্যাক্ট করলে, Google Chat কনফিগার করা ট্রিগার চালু করে এবং আপনার Chat অ্যাপের এন্ডপয়েন্ট বা ফাংশনে ইভেন্ট অবজেক্ট পাঠায়। আপনার Chat অ্যাপ ইভেন্ট অবজেক্ট প্রসেস করে এবং ৩০ সেকেন্ডের মধ্যে সিঙ্ক্রোনাসভাবে অ্যাকশন ফিরিয়ে দিতে অথবা Chat API ব্যবহার করে অ্যাসিঙ্ক্রোনাসভাবে উত্তর দিতে পারে।
নিম্নলিখিত ডায়াগ্রাম থেকে বোঝা যায় যে Google Chat অ্যাপ কীভাবে ব্যবহারকারীর ইন্টার্যাকশন প্রসেস করে এবং তার উত্তর দেয়:
ট্রিগার
ট্রিগার হল নির্দিষ্ট পদ্ধতি যার মাধ্যমে ব্যবহারকারীরা Chat UI ব্যবহার করে Chat অ্যাপ চালু করেন, যেমন @উল্লেখ বা অ্যাপ কমান্ড ব্যবহার করা।
নিচের সারণীতে Chat ট্রিগার, বিবরণ এবং Chat অ্যাপ সাধারণত কীভাবে উত্তর দেয় তা দেখানো হয়েছে:
| Trigger | বিবরণ | সাধারণ উত্তর |
|---|---|---|
| স্পেসে যোগ করা হয়েছে |
কোনও ব্যবহারকারী স্পেসে Chat অ্যাপ যোগ করেন অথবা Google Workspace অ্যাডমিনিস্ট্রেটর তার সংস্থার ব্যবহারকারীদের জন্য সরাসরি মেসেজ স্পেসে Chat অ্যাপ ইনস্টল করেন। অ্যাডমিনিস্ট্রেটরের ইনস্টল করা Chat অ্যাপ সম্পর্কে জানতে, Google Workspace অ্যাডমিন সহায়তা ডকুমেন্টেশনে আপনার ডোমেনে Marketplace অ্যাপ ইনস্টল করুন বিকল্প দেখুন। |
Chat অ্যাপ একটি অনবোর্ডিং মেসেজ পাঠায় যা ব্যাখ্যা করে যে এটি কী করে এবং স্পেসে থাকা ব্যবহারকারীরা কীভাবে এটির সাথে ইন্টার্যাক্ট করতে পারেন। |
| মেসেজ |
ব্যবহারকারী নিম্নলিখিত উপায়ে মেসেজে Chat অ্যাপের সাথে ইন্টার্যাক্ট করেন:
|
মেসেজের কন্টেন্টের উপর ভিত্তি করে Chat অ্যাপ উত্তর দেয়। যেমন, Chat অ্যাপ মেসেজের মাধ্যমে উত্তর দেয়, লিঙ্ক প্রিভিউ কার্ড অ্যাটাচ করে অথবা মাল্টি-সিলেক্ট মেনুতে আইটেম সাজেস্ট করে। |
| স্পেস থেকে সরানো হয়েছে |
কোনও ব্যবহারকারী স্পেস থেকে Chat অ্যাপ সরিয়ে দিলে অথবা Google Workspace অ্যাডমিনিস্ট্রেটর তার সংস্থার কোনও ব্যবহারকারীর জন্য Chat অ্যাপ আনইনস্টল করলে। অ্যাডমিনিস্ট্রেটর যেসব Chat অ্যাপ ইনস্টল করেছেন, ব্যবহারকারীরা সেগুলি মুছতে পারবেন না। কোনও ব্যবহারকারী আগে Chat অ্যাপ ইনস্টল করে থাকলে, Google Workspace অ্যাডমিনিস্ট্রেটর সেটি আনইনস্টল করার চেষ্টা করলেও Chat অ্যাপ ইনস্টল করা অবস্থাতেই থাকে। |
Chat অ্যাপ স্পেসের জন্য কনফিগার করা যেকোনও ইনকামিং বিজ্ঞপ্তি সরিয়ে দেয় (যেমন, ওয়েবহুক মুছে দেওয়া) এবং যেকোনও ইন্টার্নাল স্টোরেজ পরিষ্কার করে। Chat অ্যাপ এই ট্রিগারে মেসেজের মাধ্যমে উত্তর দিতে পারবে না কারণ এটি আর স্পেসের মেম্বার নয়। |
| অ্যাপ কমান্ড |
ব্যবহারকারী কোনও Chat অ্যাপ কমান্ড (যেমন, স্ল্যাশ কমান্ড, কুইক কমান্ড বা মেসেজ অ্যাকশন) চালু করেন। |
Chat অ্যাপ কমান্ডের উত্তর দেয়। যেমন, এটি মেসেজের মাধ্যমে উত্তর দেয় অথবা একটি ডায়ালগ খোলে। |
| অ্যাপের হোম |
কোনও ব্যবহারকারী Chat অ্যাপের মাধ্যমে ১:১ সরাসরি মেসেজ (DM) স্পেসে হোম ট্যাব খোলেন অথবা হোমপেজ কার্ডে কোনও উইজেটের সাথে ইন্টার্যাক্ট করেন। |
Chat অ্যাপ একটি
RenderActions অবজেক্ট রিটার্ন করে যা হোমপেজ কার্ড পুশ করে
(pushCard) অথবা দেখানো হোমপেজ কার্ড আপডেট করে
(updateCard)।
|
আপনি Chat API কনফিগারেশন পৃষ্ঠায় Google Cloud কনসোলে এইসব ট্রিগারের জন্য এন্ডপয়েন্ট বা কলব্যাক ফাংশন কনফিগার করেন। ধাপে ধাপে নির্দেশাবলীর জন্য, Google Chat API কনফিগার করুন দেখুন।
স্টার্টার প্রম্পট কনফিগার করুন
ব্যবহারকারীরা আপনার অ্যাপের সাথে একটি খালি ১:১ সরাসরি মেসেজ খুললে, স্টার্টার প্রম্পট তাদের আপনার Chat অ্যাপের কার্যকারিতা আবিষ্কার করতে সাহায্য করে। আপনি তিনটি পর্যন্ত স্টার্টার প্রম্পট কনফিগার করতে পারেন।
স্টার্টার প্রম্পট যোগ ও কনফিগার করতে:
Google Cloud কনসোলে, Chat API কনফিগারেশন পৃষ্ঠায় যান:
ইন্টার্যাক্টিভ ফিচার বিকল্পের মধ্যে, স্টার্টার প্রম্পট বিকল্পটি খুঁজে নিয়ে প্রম্পট যোগ করুন বিকল্পে ক্লিক করুন।
র্যাঙ্ক (১-৩) ফিল্ডে, ডিসপ্লে অর্ডার নির্দিষ্ট করতে
1থেকে3-এর মধ্যে কোনও সংখ্যা লিখুন।ধরন বেছে নিন বিকল্পের অধীনে, প্রম্পট কীভাবে কাজ করবে তা বেছে নিন:
- টেক্সট প্রম্পট: ব্যবহারকারী প্রম্পট চিপে ক্লিক করলে, পূর্বনির্ধারিত টেক্সট সহ কম্পোজ বার পপুলেট করে।
- কমান্ড প্রম্পট: ক্লিক করা হলে রেজিস্টার করা স্ল্যাশ কমান্ড বা কুইক কমান্ড রান করে। যেসব কমান্ডের জন্য অতিরিক্ত আর্গুমেন্ট প্রয়োজন সেগুলি বেছে নেওয়া যাবে না।
আপনার বেছে নেওয়া ধরনের উপর ভিত্তি করে প্রম্পট কনফিগার করুন:
আপনি টেক্সট প্রম্পট বেছে নিলে:
- শীর্ষক-এ, চিপে দেখানো প্রম্পটের শীর্ষক লিখুন (সর্বাধিক ৩০ অক্ষর)।
- প্রম্পট টেক্সট-এ, কম্পোজ বারে দেখানো টেক্সট লিখুন (সর্বাধিক ৬০টি অক্ষর)।
- ঐচ্ছিক: অন্যান্য ভাষার ব্যবহারকারীদের জন্য স্থানীয় ভাষায় শীর্ষক ও টেক্সট যোগ করুন:
- লোকালাইজ করা প্রম্পট বিকল্পের মধ্যে, একটি ভাষা যোগ করুন বিকল্পে ক্লিক করুন।
- ভাষা বিকল্পে গিয়ে, ড্রপ-ডাউন থেকে কাজ করে এমন ভাষা বেছে নিন।
- স্থানীয়কৃত শীর্ষক-এ স্থানীয়কৃত শীর্ষক লিখুন (সর্বাধিক ৩০টি অক্ষর)।
- লোকালাইজ করা প্রম্পট টেক্সট-এ, লোকালাইজ করা প্রম্পট টেক্সট লিখুন (সর্বাধিক ৬০টি অক্ষর)।
- প্রয়োজন অনুযায়ী আরও ভাষা যোগ করতে এই ধাপগুলি আবার করুন।
আপনি কমান্ড প্রম্পট বেছে নিলে:
- স্ল্যাশ কমান্ড / কুইক কমান্ড-এ, ড্রপ-ডাউন থেকে কমান্ড বেছে নিন।
হয়ে গেছে বিকল্পে ক্লিক করুন এবং তারপরে পৃষ্ঠার একদম নিচে সেভ করুন বিকল্পে ক্লিক করুন।
আপনার পরিষেবায় HTTP কল আবার করার বিষয়টি ম্যানেজ করুন
আপনার পরিষেবায় HTTPS অনুরোধ ব্যর্থ হলে (যেমন টাইমআউট, সাময়িক নেটওয়ার্ক ব্যর্থতা বা নন-2xx HTTPS স্ট্যাটাস কোড), Google Chat কয়েক মিনিটের মধ্যে কয়েকবার ডেলিভারির চেষ্টা করতে পারে (তবে এর কোনও গ্যারান্টি নেই)। এর ফলে, কিছু পরিস্থিতিতে Chat অ্যাপ একই ইভেন্ট কয়েকবার পেতে পারে। অনুরোধটি সফলভাবে সম্পূর্ণ হলেও যদি ভুল রেসপন্স পেলোড ফেরত আসে, তাহলে Google Chat অনুরোধটি আবার করার চেষ্টা করে না।
ইভেন্ট অবজেক্ট
Chat ট্রিগার রান করলে অথবা Chat ব্যবহারকারী Chat অ্যাপের UI-এর সাথে ইন্টার্যাক্ট করলে (যেমন, কোনও বোতামে ক্লিক করা অথবা ডায়ালগ জমা দেওয়া) Chat অ্যাপ ইভেন্ট অবজেক্ট পায়। ইভেন্ট অবজেক্ট আপনাকে ইন্টার্যাকশন ডেটা ব্যবহার করে UI-তে উত্তর দিতে বা আপডেট করতে দেয়।
২০২৫ সালে, Google Chat অ্যাপ অ্যাড-অন ইভেন্ট সাপোর্ট করার জন্য প্রসারিত করা হয়েছিল এবং জুলাই ২০২৫ থেকে নতুন Chat অ্যাপের জন্য এটি ডিফল্ট হিসেবে সেট করা হয়েছে। Chat ডকুমেন্টেশন জুড়ে, অ্যাড-অন ইভেন্ট হল স্ট্যান্ডার্ড ইভেন্টের ধরন যা গাইড এবং কোড স্যাম্পেলে দেখানো হয়। Chat ইভেন্টের (Google Workspace অ্যাড-অন নয় এমন Chat অ্যাপের জন্য) ডকুমেন্টেশন আলাদা করে সংক্ষিপ্ত বিভাগে (যেমন, Chat অ্যাপ যা অ্যাড-অন নয়: ইন্টার্যাকশন ইভেন্ট রিসিভ করা ও উত্তর দেওয়া) দেখানো হয়।
আপনার ইভেন্ট ও উত্তরের ধরন নির্ধারণ করা
আপনার Chat অ্যাপ কোনও ইভেন্ট অবজেক্ট পেলে, পে-লোডের স্ট্রাকচার এবং আপনি কীভাবে উত্তর দেবেন তা নির্ভর করে আপনার Chat অ্যাপ Google Workspace অ্যাড-অন হিসেবে কনফিগার করা আছে কিনা তার উপর।
আপনার অ্যাপ কোন ধরনের ইভেন্ট অবজেক্ট পায় এবং কীভাবে সেটির উত্তর দেওয়া উচিত তা কনফার্ম করতে, নিচের সারণি ব্যবহার করে আপনার অ্যাপের কনফিগারেশন চেক করুন:
| অ্যাপের ধরন | অ্যাড-অন ইভেন্ট রিসিভ করে (জুলাই ২০২৫-এর পরে তৈরি করা নতুন অ্যাপের জন্য ডিফল্ট) |
Chat ইভেন্ট রিসিভ করে (আগের ডিফল্ট, জুলাই ২০২৫-এর আগে) |
|---|---|---|
| Apps Script অ্যাপ ম্যানিফেস্ট ফাইল ( appsscript.json) চেক করুন |
chat অবজেক্টটি addOns-এর মধ্যে কনফিগার করা আছে:
|
ম্যানিফেস্টের রুটে chat অবজেক্ট কনফিগার করা হয়েছে:
|
| অন্যান্য অ্যাপ Google Chat API কনফিগারেশন পৃষ্ঠা চেক করুন |
"এই Chat অ্যাপটি Google Workspace অ্যাড-অন হিসেবে তৈরি করুন" চেকবক্সটি বেছে নেওয়া হয়েছে। | "এই Chat অ্যাপটি Google Workspace অ্যাড-অন হিসেবে তৈরি করুন" চেকবক্সটি বেছে নেওয়া হয়নি। |
| ডকুমেন্টেশন কোথায় পাবেন | গাইড ও কোড স্যাম্পেল জুড়ে ইভেন্ট রেফারেন্স ডকুমেন্টেশন: অ্যাড-অন ইভেন্ট অবজেক্ট |
আড়াল করা বিভাগ (যেমন,
Chat অ্যাপ যা
অ্যাড-অন নয়: ইন্টার্যাকশন ইভেন্ট
রিসিভ করা ও উত্তর দেওয়া) ইভেন্ট রেফারেন্স ডকুমেন্টেশন: Chat API ইন্টার্যাকশন ইভেন্ট |
| কীভাবে উত্তর দেবেন | DataActions বা
RenderActions-এর মতো অ্যাকশন ফিরিয়ে দিন।কীভাবে অ্যাকশন নিয়ে উত্তর দিতে হয় তা দেখুন |
Message রিসোর্স ফিরিয়ে দিন।মেসেজের মাধ্যমে কীভাবে উত্তর দেবেন তা দেখুন |
ইভেন্ট অবজেক্ট পেলোড
প্রতিটি অ্যাড-অন ইভেন্ট অবজেক্টে হোস্ট ও প্ল্যাটফর্মের বিবরণ (hostApp: "CHAT", clientPlatform,
userLocale, userTimezone, parameters ও formInputs) সহ একটি
commonEventObject
এবং Chat-নির্দিষ্ট প্রসঙ্গ সহ একটি
chat অবজেক্ট
থাকে:
- অ্যাপ হোম ট্রিগারের জন্য (যখন কোনও ব্যবহারকারী Chat অ্যাপের সাথে ১:১ সরাসরি মেসেজে হোম ট্যাব খোলেন),
chatঅবজেক্টেchat.userএবংchat.eventTimeথাকে, তবে কোনও ইউনিয়নpayloadফিল্ড থাকে না। ব্যবহারকারী হোমপেজ কার্ডের কোনও বোতামে ক্লিক করলে, ইভেন্ট অবজেক্টেchat.buttonClickedPayload-এর সাথেcommonEventObject.parameters(এবংcommonEventObject.formInputs, যদি কার্ডে ফর্ম ইনপুট থাকে) অন্তর্ভুক্ত থাকে। - স্পেস ও মেসেজ ইন্টার্যাকশনের (স্পেসে যোগ করা হয়েছে, মেসেজ, স্পেস থেকে
সরানো হয়েছে, অ্যাপ কমান্ড অথবা বোতাম ও উইজেট ইন্টার্যাকশন) জন্য,
chatঅবজেক্টেchat.user,chat.space,chat.eventTimeএবং সংশ্লিষ্ট ইন্টার্যাকশন পেলোড অন্তর্ভুক্ত থাকে:messagePayload: কোনও ব্যবহারকারী মেসেজ পাঠালে,space,messageএবংconfigCompleteRedirectUriথাকে।addedToSpacePayload: Chat অ্যাপ কোনও স্পেসে যোগ করা হলেspace,interactionAddওconfigCompleteRedirectUriথাকে।removedFromSpacePayload:spaceথাকে যখন Chat অ্যাপ কোনও স্পেস থেকে সরিয়ে দেওয়া হয়।buttonClickedPayload: কোনও ব্যবহারকারী কার্ড বা ডায়ালগের কোনও বোতামে ক্লিক করলে,space,message,isDialogEventওdialogEventTypeথাকে।widgetUpdatedPayload: ব্যবহারকারী কোনও উইজেটের সাথে ইন্টার্যাক্ট করলে, এতেspaceথাকে, যেমন এক্সটার্নাল ডেটা সোর্স সহ মাল্টিসিলেক্ট মেনুতে টাইপ করা।appCommandPayload: ব্যবহারকারী অ্যাপ কমান্ড কল করলে,space,message,appCommandMetadata,isDialogEvent,dialogEventTypeএবংconfigCompleteRedirectUriঅন্তর্ভুক্ত থাকে।
Chat এবং অন্যান্য Google Workspace অ্যাপ্লিকেশনের মধ্যে অ্যাড-অন ইভেন্ট অবজেক্ট সম্পর্কে জানতে, ইভেন্ট অবজেক্ট দেখুন।
উত্তর দিন
এই বিভাগে ব্যাখ্যা করা হয়েছে যে কীভাবে Chat অ্যাপ অ্যাকশন ব্যবহার করে ব্যবহারকারীর ইন্টার্যাকশনের সাথে সাথে উত্তর দেয়।
কোনও অ্যাকশনের মাধ্যমে উত্তর দিতে, Chat অ্যাপকে ৩০ সেকেন্ডের মধ্যে উত্তর দিতে হবে এবং যে স্পেসে ইন্টার্যাকশন হয়েছে সেখানে উত্তরটি প্রযোজ্য হতে হবে। এইসব সিঙ্ক্রোনাস উত্তরের ক্ষেত্রে যাচাইকরণ করার প্রয়োজন হয় না। আপনার Chat অ্যাপের ৩০ সেকেন্ডের বেশি সময় লাগলে অথবা স্পেসের বাইরে কাজ করতে হলে, যাচাইকরণ সেট-আপ করুন এবং Google Chat API ব্যবহার করে অ্যাসিঙ্ক্রোনাসভাবে উত্তর দিন।
ব্যবহারকারীর ইন্টার্যাকশনে সিঙ্ক্রোনাসভাবে উত্তর দিতে, আপনার Chat অ্যাপ ইনকামিং ইভেন্ট অবজেক্ট ম্যানেজ করে এবং নিম্নলিখিত JSON অবজেক্টের মধ্যে একটি ফিরিয়ে দেয়:
DataActions:chatDataActionMarkupব্যবহার করে চ্যাট মেসেজ (CreateMessageAction,UpdateMessageAction) তৈরি বা আপডেট করে অথবা লিঙ্কের প্রিভিউ (UpdateInlinePreviewAction) অ্যাটাচ করে।RenderActions: হোমপেজ বা ডায়ালগ (pushCard,updateCard,endNavigation: "CLOSE_DIALOG") তৈরি, আপডেট বা বন্ধ করে, অথবা মাল্টি-সিলেক্ট মেনু (modifyCard)-এর জন্য ডায়নামিক ইনপুট সাজেশন প্রদান করে।AuthorizationError: ব্যবহারকারীদের একটি প্রাথমিক অনুমোদন কার্ড (basic_authorization_prompt) সহ প্রম্পট করে যাতে তারা সাইন-ইন করতে বা একটি বাহ্যিক পরিষেবাতে প্রমাণীকরণ করতে পারে।
নিম্নলিখিত সারণীতে দেখানো হয়েছে যে Chat অ্যাপ কীভাবে অ্যাকশনের মাধ্যমে উত্তর দিতে পারে। চ্যাট অ্যাপ সরাসরি JSON অবজেক্ট ফিরিয়ে দিতে পারে অথবা
Apps Script-এর
AddOnResponseService
এবং CardService ব্যবহার করে উত্তর তৈরি করতে পারে।
| Chat অ্যাপের উত্তর | ফেরত দেওয়ার জন্য প্রয়োজনীয় অ্যাকশন (JSON) | ফেরত দেওয়ার জন্য প্রয়োজনীয় অ্যাকশন (Apps Script) |
|---|---|---|
| মেসেজ পাঠান অথবা মেসেজ আপডেট করুন। | DataActions (createMessageAction বা updateMessageAction) |
DataActionsResponse |
| Chat ব্যবহারকারীরা কোনও স্পেসে যে মেসেজ পাঠান তাতে লিঙ্ক প্রিভিউ করা। | DataActions (updateInlinePreviewAction) |
DataActionsResponse |
| সরাসরি মেসেজের হোম ট্যাবে হোমপেজ রেন্ডার বা আপডেট করুন। | RenderActions (pushCard বা updateCard) |
ActionResponse |
| ডায়ালগ খোলা, আপডেট করা বা বন্ধ করা। | RenderActions (pushCard, updateCard বা endNavigation: "CLOSE_DIALOG") |
ActionResponse |
| কার্ড বা ডায়ালগ থেকে তথ্য সংগ্রহ করতে, ব্যবহারকারী মাল্টি-সিলেক্ট মেনুতে যা টাইপ করেন তার উপর ভিত্তি করে বেছে নেওয়ার আইটেম সাজেস্ট করুন। | RenderActions (modifyCard) |
ActionResponse |
| এক্সটার্নাল পরিষেবার জন্য কনফিগারেশন বা অনুমোদনের অনুরোধ করা। | AuthorizationError (basic_authorization_prompt) |
AuthorizationException |
মেসেজ পাঠানোর মাধ্যমে উত্তর দিন
Chat অ্যাপ নিম্নলিখিত ট্রিগার বা ইন্টার্যাকশনের যেকোনও একটির জন্য মেসেজ দিয়ে উত্তর দিতে পারে:
- মেসেজ ট্রিগার, যেমন ব্যবহারকারী যখন @উল্লেখ করেন বা Chat অ্যাপে সরাসরি মেসেজ করেন।
- স্পেসে যোগ করা ট্রিগার, যেমন ব্যবহারকারী Google Workspace Marketplace থেকে Chat অ্যাপ ইনস্টল করলে বা স্পেসে যোগ করলে।
- অ্যাপ কমান্ড ট্রিগার, যেমন ব্যবহারকারী যখন স্ল্যাশ কমান্ড বা কুইক কমান্ড ব্যবহার করেন।
- মেসেজ বা ডায়ালগের কার্ডে বোতাম ক্লিক। যেমন, ব্যবহারকারী তথ্য লিখে জমা দিন বোতামে ক্লিক করলে।
Chat অ্যাপ কোনও মেসেজে নিম্নলিখিত যেকোনও একটি অন্তর্ভুক্ত করতে পারে:
- হাইপারলিঙ্ক, @উল্লেখ এবং ইমোজি সহ টেক্সট। মেসেজ ফর্ম্যাট করা দেখুন।
- এক বা একাধিক কার্ড, যা কোনও মেসেজে দেখা যেতে পারে বা ডায়ালগ হিসেবে নতুন উইন্ডোতে খোলা যেতে পারে। Google Chat অ্যাপের জন্য কার্ড তৈরি করা দেখুন।
- এক বা একাধিক অ্যাক্সেসরি উইজেট, যা মেসেজের যেকোনও টেক্সট বা কার্ডের পরে বোতাম হিসেবে দেখানো হয়।
মেসেজের মাধ্যমে উত্তর দিতে, DataActions-কে
CreateMessageAction অবজেক্টের সাথে রিটার্ন করুন:
{
"hostAppDataAction": {
"chatDataAction": {
"createMessageAction": {
"message": <var>MESSAGE</var>
}
}
}
}
MESSAGE-এর পরিবর্তে Chat API থেকে পাওয়া
Message
রিসোর্স ব্যবহার করুন।
নিচের উদাহরণে, Chat অ্যাপকে কোনও স্পেসে যোগ করা হলে,
সেটি DataActions সহ স্পেসে যোগ করা হয়েছে ট্রিগারে উত্তর দিয়ে
একটি অনবোর্ডিং টেক্সট মেসেজ তৈরি করে পাঠায়:
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} req The request object from Google Chat.
* @param {Object} res The response object from the Chat app.
*/
exports.cymbalApp = function cymbalApp(req, res) {
const chatEvent = req.body.chat;
// Send an onboarding message when added to a Chat space
if (chatEvent.addedToSpacePayload) {
res.json({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
text: 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
'To learn what else I can do, type `/help`.'
}}}}});
}
};
Python
from flask import Flask, request, json
app = Flask(__name__)
@app.route('/', methods=['POST'])
def cymbal_app():
"""Sends an onboarding message when the Chat app is added to a space.
Returns:
Mapping[str, Any]: The response object from the Chat app.
"""
chat_event = request.get_json()["chat"]
if "addedToSpacePayload" in chat_event:
return json.jsonify({ "hostAppDataAction": { "chatDataAction": {
"createMessageAction": { "message": {
"text": 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
'To learn what else I can do, type `/help`.'
}}
}}})
Java
@SpringBootApplication
@RestController
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
/*
* Sends an onboarding message when the Chat app is added to a space.
*
* @return The response object from the Chat app.
*/
@PostMapping("/")
@ResponseBody
public GenericJson onEvent(@RequestBody JsonNode event) throws Exception {
JsonNode chatEvent = event.at("/chat");
if (!chatEvent.at("/addedToSpacePayload").isEmpty()) {
return new GenericJson() { {
put("hostAppDataAction", new GenericJson() { {
put("chatDataAction", new GenericJson() { {
put("createMessageAction", new GenericJson() { {
put("message", new Message().setText(
"Hi, Cymbal at your service. I help you manage your calendar " +
"from Google Chat. Take a look at your schedule today by typing " +
"`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. " +
"To learn what else I can do, type `/help`."
));
} });
} });
} });
} };
}
return new GenericJson();
}
}
Apps Script
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Google Chat.
* @return {Object} Response from the Chat app.
*/
function onAddedToSpace(event) {
return { hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
text: 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
'To learn what else I can do, type `/help`.'
}}}}};
}
কোডের স্যাম্পেল নিম্নলিখিত টেক্সট মেসেজ রিটার্ন করে:
মেসেজ আপডেট করা
এছাড়াও, চ্যাট অ্যাপ তার পাঠানো মেসেজ আপডেট করতে পারে। যেমন, কোনও ব্যবহারকারী ডায়ালগ জমা দেওয়ার পরে বা মেসেজের মধ্যে থাকা কার্ডের কোনও বোতামে ক্লিক করার পরে, Chat অ্যাপ মেসেজ আপডেট করতে পারে।
ইন্টার্যাকশনের উত্তরে Chat অ্যাপের মেসেজ আপডেট করতে,
DataActions-এর সাথে
UpdateMessageAction রিটার্ন করুন:
{
"hostAppDataAction": {
"chatDataAction": {
"updateMessageAction": {
"message": <var>MESSAGE</var>
}
}
}
}
MESSAGE-এর পরিবর্তে Chat API থেকে পাওয়া
Message
রিসোর্স ব্যবহার করুন।
এছাড়াও, চ্যাট অ্যাপ ব্যবহারকারীর পাঠানো মেসেজ আপডেট করতে পারে যাতে updateInlinePreviewAction ব্যবহার করে
লিঙ্ক প্রিভিউ কার্ড অ্যাটাচ করা যায়। আরও জানতে,
লিঙ্ক প্রিভিউ করুন।
Google Chat API ব্যবহার করে অ্যাসিঙ্ক্রোনাসভাবে উত্তর দিন
সিঙ্ক করা অ্যাকশন ফিরিয়ে দেওয়ার পরিবর্তে, কোনও ইন্টার্যাকশনের উত্তর দিতে বা প্রোঅ্যাক্টিভ মেসেজ পাঠাতে Chat অ্যাপকে Google Chat API কল করতে হতে পারে। যেমন, নিম্নলিখিত যেকোনও কাজ করতে Chat অ্যাপকে Google Chat API কল করতে হবে:
- ৩০ সেকেন্ড পরে কোনও ইন্টার্যাকশনের উত্তর দেওয়া (যেমন, অনেকক্ষণ ধরে চলা কোনও টাস্ক সম্পূর্ণ করার পরে)।
- শিডিউল অনুযায়ী মেসেজ পাঠান অথবা এক্সটার্নাল রিসোর্সে পরিবর্তন সম্পর্কে বিজ্ঞপ্তি পাঠান।
- যে স্পেসে ইন্টার্যাকশন হয়েছে তার বাইরে টাস্ক সম্পূর্ণ করা।
- Chat-এ এমন টাস্ক পারফর্ম করুন যা সিঙ্ক্রোনাস অ্যাকশন হিসেবে উপলভ্য নয়, যেমন স্পেসের তালিকা তৈরি করা বা স্পেসে মেম্বার যোগ করা।
- Chat ব্যবহারকারীর হয়ে টাস্ক পারফর্ম করা (যার জন্য ব্যবহারকারীর যাচাইকরণ প্রয়োজন)।
৩০ সেকেন্ড পরে কোনও ইন্টার্যাকশনের উত্তর দেওয়ার সময়, ব্যবহারকারী নিজে ইন্টার্যাক্ট করতে পারেন এমন ত্রুটি মেসেজ এড়াতে, আপনার Chat অ্যাপ উত্তর দিচ্ছে না, আপনাকে অবশ্যই ৩০ সেকেন্ডের মধ্যে ইভেন্ট অবজেক্টের প্রাপ্তি স্বীকার করতে হবে, এর জন্য একটি খালি উত্তর ফেরত দিতে হবে:
Node.js
async function onEvent(req, res) {
// Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return res.send({});
};
Python
def on_event(event) -> dict:
# Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return {}
Java
public String onEvent(JsonNode event) {
// Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return "{}";
}
Apps Script
function onEvent(event) {
// Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return null;
}
Chat API ব্যবহার করে মেসেজ পাঠাতে, যাচাইকরণ সেট-আপ করুন এবং
spaces.messages.create পদ্ধতি কল করুন। ধাপগুলি জানতে,
মেসেজ পাঠান দেখুন। Chat API-এর অতিরিক্ত পদ্ধতি ব্যবহার করার বিষয়ে নির্দেশিকা পেতে,
Chat API ওভারভিউ দেখুন।
সম্পর্কিত বিষয়
- Google Chat API কনফিগার করা
- একটি মেসেজ পাঠানো
- কমান্ডের উত্তর দেওয়া
- ইন্টার্যাক্টিভ ডায়ালগ খুলুন
- কার্ডে ব্যবহারকারীর ইনপুট করা ফর্ম ডেটা পড়া
- লিঙ্ক প্রিভিউ করুন
- Chat অ্যাপের জন্য হোমপেজ তৈরি করা
- Chat থেকে অনুরোধ যাচাই করা
- Google Chat অ্যাপের জন্য ইন্টার্যাক্টিভ ফিচার পরীক্ষা করা
অ্যাড-অন নয় এমন চ্যাট অ্যাপ: ব্যবহারকারীর ইন্টার্যাকশন গ্রহণ করা ও তার উত্তর দেওয়া
Google Workspace অ্যাড-অন নয় এমন Chat অ্যাপ
Google Workspace অ্যাড-অন ইভেন্ট অবজেক্ট (EventObject)-এর পরিবর্তে
Chat API ইন্টার্যাকশন ইভেন্ট (Event)
রিসিভ করে এবং অ্যাকশনের পরিবর্তে
Message
রিসোর্স ফিরিয়ে দিয়ে উত্তর দেয়।
Google Workspace অ্যাড-অন ফ্রেমওয়ার্কে অ্যাড-অন নয় এমন Chat অ্যাপ আপগ্রেড করতে, Google Chat অ্যাপকে Google Workspace অ্যাড-অনে কনভার্ট করুন দেখুন।
ইন্টার্যাকশন ইভেন্টের ধরন
প্রতিটি ধরনের ব্যবহারকারীর ইন্টার্যাকশনের জন্য, Google Chat একটি
Chat অ্যাপ পাঠায় যা অ্যাড-অন নয়
একটি Event অবজেক্ট যার ধরন
eventType ফিল্ড দ্বারা দেখানো হয়:
| ব্যবহারকারীর ইন্টার্যাকশন | eventType |
অ্যাড-অন নয় এমন Chat অ্যাপ থেকে পাওয়া সাধারণ উত্তর |
|---|---|---|
| কোনও ব্যবহারকারী Chat অ্যাপে মেসেজ পাঠায়। যেমন, Chat অ্যাপকে @উল্লেখ করে বা স্ল্যাশ কমান্ড ব্যবহার করে। | MESSAGE |
মেসেজের কন্টেন্টের উপর ভিত্তি করে Chat অ্যাপ উত্তর দেয়। যেমন, Chat অ্যাপ /about স্ল্যাশ কমান্ডের উত্তরে
এমন একটি মেসেজ পাঠায় যাতে Chat অ্যাপ
কী কী কাজ করতে পারে তা ব্যাখ্যা করা থাকে। |
| কোনও ব্যবহারকারী স্পেসে Chat অ্যাপ যোগ করেন। | ADDED_TO_SPACE |
Chat অ্যাপ একটি অনবোর্ডিং মেসেজ পাঠায় যা ব্যাখ্যা করে যে এটি কী করে এবং স্পেসে থাকা ব্যবহারকারীরা কীভাবে এটির সাথে ইন্টার্যাক্ট করতে পারে। |
| কোনও ব্যবহারকারী স্পেস থেকে Chat অ্যাপ সরিয়ে দেন। | REMOVED_FROM_SPACE |
Chat অ্যাপ স্পেসের জন্য কনফিগার করা যেকোনও ইনকামিং বিজ্ঞপ্তি সরিয়ে দেয় (যেমন, ওয়েবহুক মুছে দেওয়া) এবং যেকোনও ইন্টার্নাল স্টোরেজ মুছে দেয়। |
| ব্যবহারকারী Chat অ্যাপ মেসেজ, ডায়ালগ বা হোমপেজের কার্ডে দেখানো কোনও বোতামে ক্লিক করেন। | CARD_CLICKED |
Chat অ্যাপ ব্যবহারকারীর জমা দেওয়া যেকোনও ডেটা প্রসেস ও স্টোর করে অথবা অন্য কার্ড ফিরিয়ে দেয়। |
| কোনও ব্যবহারকারী ১:১ মেসেজে হোম ট্যাবে ক্লিক করে Chat অ্যাপের হোমপেজ খোলেন। | APP_HOME |
Chat অ্যাপ হোমপেজ থেকে স্ট্যাটিক বা ইন্টার্যাক্টিভ কার্ড রিটার্ন করে। |
| Chat অ্যাপের হোমপেজ থেকে কোনও ব্যবহারকারী ফর্ম জমা দেন। | SUBMIT_FORM |
Chat অ্যাপ ব্যবহারকারীর জমা দেওয়া যেকোনও ডেটা প্রসেস ও স্টোর করে অথবা অন্য কার্ড ফিরিয়ে দেয়। |
| ব্যবহারকারী কুইক কমান্ড ব্যবহার করে কোনও কমান্ড চালু করেন। | APP_COMMAND |
যে কমান্ডটি চালু করা হয়েছে তার উপর ভিত্তি করে Chat অ্যাপ প্রতিক্রিয়া জানায়। উদাহরণস্বরূপ, Chat অ্যাপ সম্পর্কে কমান্ডের উত্তরে একটি মেসেজ পাঠায়, যেখানে Chat অ্যাপটি কী কী কাজ করতে পারে তা ব্যাখ্যা করা থাকে। |
সব কাজ করা ইন্টার্যাকশন ইভেন্ট এবং JSON পেলোডের উদাহরণ দেখতে,
Chat অ্যাপ ইন্টার্যাকশন ইভেন্টের ধরন
এবং
EventType রেফারেন্স ডকুমেন্টেশন দেখুন।
ডায়ালগ থেকে ইন্টার্যাকশন ইভেন্ট
আপনার Chat অ্যাপ অ্যাড-অন না হয়েও ডায়ালগ খুললে, ইন্টার্যাকশন ইভেন্টে নিম্নলিখিত অতিরিক্ত তথ্য থাকে যা আপনি প্রতিক্রিয়া প্রসেস করতে ব্যবহার করতে পারেন:
isDialogEventফিল্ডtrue-এ সেট করা আছে।DialogEventType(REQUEST_DIALOG,SUBMIT_DIALOG, অথবাCANCEL_DIALOG) স্পষ্ট করে যে ইন্টার্যাকশন কোনও ডায়ালগ খোলার জন্য ট্রিগার করে, কোনও ডায়ালগ থেকে তথ্য জমা দেয়, অথবা কোনও ডায়ালগ বন্ধ করে।
ইন্টার্যাকশন ইভেন্ট পাওয়ার জন্য অ্যাড-অন নয় এমন Chat অ্যাপ কনফিগার করুন
Google Cloud কনসোলে, Chat API কনফিগারেশন পৃষ্ঠায় যান:
ইন্টার্যাক্টিভ ফিচার বিকল্পের মধ্যে, এই Chat অ্যাপটি Google Workspace অ্যাড-অন হিসেবে তৈরি করুন বিকল্পটি মুছে দিন এবং ফাংশনালিটি, একটি কানেকশন সেটিংস এন্ডপয়েন্ট (HTTP এন্ডপয়েন্ট URL, Apps Script, Cloud Pub/Sub বিষয়ের নাম বা Dialogflow), কমান্ড, স্টার্টার প্রম্পট, লিঙ্ক প্রিভিউ এবং দৃশ্যমানতা কনফিগার করুন।
সেভ করুন বিকল্পে ক্লিক করুন।
অ্যাড-অন নয় এমন Chat অ্যাপে মেসেজের মাধ্যমে উত্তর দিন
অ্যাড-অন নয় এমন Chat অ্যাপে সিঙ্ক করে উত্তর দিতে, সরাসরি একটি
Message অবজেক্ট
ফেরত দিন। নিম্নলিখিত উদাহরণটি টেক্সট মেসেজ সহ ADDED_TO_SPACE ইন্টার্যাকশন
ইভেন্টের উত্তর দেয়:
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} req The event object from Chat API.
* @param {Object} res The response object from the Chat app.
*/
exports.cymbalApp = function cymbalApp(req, res) {
// Send an onboarding message when added to a Chat space
if (req.body.type === 'ADDED_TO_SPACE') {
res.json({
'text': 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To ' +
'learn what else I can do, type `/help`.'
});
}
};
Python
from flask import Flask, request, json
app = Flask(__name__)
@app.route('/', methods=['POST'])
def cymbal_app():
"""Sends an onboarding message when the Chat app is added to a space.
Returns:
Mapping[str, Any]: The response object from the Chat app.
"""
event = request.get_json()
if event['type'] == 'ADDED_TO_SPACE':
return json.jsonify({
'text': 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To ' +
'learn what else I can do, type `/help`.'
})
return json.jsonify({})
Java
@SpringBootApplication
@RestController
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
/*
* Sends an onboarding message when the Chat app is added to a space.
*
* @return The response object from the Chat app.
*/
@PostMapping("/")
@ResponseBody
public Message onEvent(@RequestBody JsonNode event) {
switch (event.get("type").asText()) {
case "ADDED_TO_SPACE":
return new Message().setText(
"Hi, Cymbal at your service. I help you manage your calendar " +
"from Google Chat. Take a look at your schedule today by typing " +
"`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. " +
"To learn what else I can do, type `/help`.");
default:
return new Message();
}
}
}
Apps Script
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Chat API.
* @return {Object} Response from the Chat app.
*/
function onAddToSpace(event) {
return {
'text': 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn ' +
'what else I can do, type `/help`.'
};
}