ব্যবহারকারীর ইন্টার‍্যাকশন পাওয়া ও তার উত্তর দেওয়া

Google Chat-এ আপনার Google Chat অ্যাপ কীভাবে ব্যবহারকারীর ইন্টার‍্যাকশন গ্রহণ ও তার উত্তর দিতে পারে তা এই পৃষ্ঠায় বর্ণনা করা হয়েছে।

Chat অ্যাপের জন্য ইন্টার‍্যাক্টিভ ইন্টারফেস তৈরি করতে, আপনি নিম্নলিখিত কম্পোনেন্ট ব্যবহার করেন:

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

Chat অ্যাপ নিম্নলিখিত উপায়ে ইন্টারফেস তৈরি ও দেখাতে পারে:

  • মেসেজ যাতে টেক্সট, স্ট্যাটিক বা ইন্ট্যার‍্যাক্টিভ কার্ড এবং অ্যাক্সেসরি বোতাম থাকতে পারে।
  • হোমপেজ (অ্যাপ হোম) যা Chat অ্যাপের সাথে ১:১ সরাসরি মেসেজের হোম ট্যাবে দেখা যায়।
  • ডায়ালগ, যা হল নতুন উইন্ডোতে খোলা কার্ড এবং সাধারণত ব্যবহারকারীকে তথ্য জমা দেওয়ার জন্য প্রম্পট করে।
  • লিঙ্কের প্রিভিউ, যা হল এমন কার্ড যা এক্সটার্নাল পরিষেবা সম্পর্কে তথ্য প্রিভিউ করে।

পূর্বশর্ত

ব্যবহারকারীর ইন্টার‍্যাকশন কীভাবে কাজ করে

কোনও ব্যবহারকারী Chat অ্যাপের সাথে ইন্টার‍্যাক্ট করলে, Google Chat কনফিগার করা ট্রিগার চালু করে এবং আপনার Chat অ্যাপের এন্ডপয়েন্ট বা ফাংশনে ইভেন্ট অবজেক্ট পাঠায়। আপনার Chat অ্যাপ ইভেন্ট অবজেক্ট প্রসেস করে এবং ৩০ সেকেন্ডের মধ্যে সিঙ্ক্রোনাসভাবে অ্যাকশন ফিরিয়ে দিতে অথবা Chat API ব্যবহার করে অ্যাসিঙ্ক্রোনাসভাবে উত্তর দিতে পারে।

নিম্নলিখিত ডায়াগ্রাম থেকে বোঝা যায় যে Google Chat অ্যাপ কীভাবে ব্যবহারকারীর ইন্টার‍্যাকশন প্রসেস করে এবং তার উত্তর দেয়:

Google Chat অ্যাপ কীভাবে ব্যবহারকারীর ইন্টার‍্যাকশন প্রসেস করে তার আর্কিটেকচার।

ট্রিগার

ট্রিগার হল নির্দিষ্ট পদ্ধতি যার মাধ্যমে ব্যবহারকারীরা Chat UI ব্যবহার করে Chat অ্যাপ চালু করেন, যেমন @উল্লেখ বা অ্যাপ কমান্ড ব্যবহার করা।

নিচের সারণীতে Chat ট্রিগার, বিবরণ এবং Chat অ্যাপ সাধারণত কীভাবে উত্তর দেয় তা দেখানো হয়েছে:

Trigger বিবরণ সাধারণ উত্তর
স্পেসে যোগ করা হয়েছে

কোনও ব্যবহারকারী স্পেসে Chat অ্যাপ যোগ করেন অথবা Google Workspace অ্যাডমিনিস্ট্রেটর তার সংস্থার ব্যবহারকারীদের জন্য সরাসরি মেসেজ স্পেসে Chat অ্যাপ ইনস্টল করেন। অ্যাডমিনিস্ট্রেটরের ইনস্টল করা Chat অ্যাপ সম্পর্কে জানতে, Google Workspace অ্যাডমিন সহায়তা ডকুমেন্টেশনে আপনার ডোমেনে Marketplace অ্যাপ ইনস্টল করুন বিকল্প দেখুন।

Chat অ্যাপ একটি অনবোর্ডিং মেসেজ পাঠায় যা ব্যাখ্যা করে যে এটি কী করে এবং স্পেসে থাকা ব্যবহারকারীরা কীভাবে এটির সাথে ইন্টার‍্যাক্ট করতে পারেন।
মেসেজ

ব্যবহারকারী নিম্নলিখিত উপায়ে মেসেজে Chat অ্যাপের সাথে ইন্টার‍্যাক্ট করেন:

  • Chat অ্যাপের মাধ্যমে সরাসরি মেসেজ (DM) স্পেসে মেসেজ পাঠায়।
  • যেকোনও ধরনের স্পেসে Chat অ্যাপকে @উল্লেখ করে।
  • এমন একটি মেসেজ পাঠায় যাতে লিঙ্ক প্রিভিউ-এর জন্য URL প্যাটার্নের সাথে ম্যাচ করে এমন লিঙ্ক থাকে।
  • selectionInput উইজেটের মাল্টি-সিলেক্ট মেনুতে টেক্সট টাইপ করে।
মেসেজের কন্টেন্টের উপর ভিত্তি করে 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 অ্যাপের কার্যকারিতা আবিষ্কার করতে সাহায্য করে। আপনি তিনটি পর্যন্ত স্টার্টার প্রম্পট কনফিগার করতে পারেন।

স্টার্টার প্রম্পট যোগ ও কনফিগার করতে:

  1. Google Cloud কনসোলে, Chat API কনফিগারেশন পৃষ্ঠায় যান:

    Chat API কনফিগারেশন পৃষ্ঠায় যান

  2. ইন্টার‍্যাক্টিভ ফিচার বিকল্পের মধ্যে, স্টার্টার প্রম্পট বিকল্পটি খুঁজে নিয়ে প্রম্পট যোগ করুন বিকল্পে ক্লিক করুন।

  3. র‍্যাঙ্ক (১-৩) ফিল্ডে, ডিসপ্লে অর্ডার নির্দিষ্ট করতে 1 থেকে 3-এর মধ্যে কোনও সংখ্যা লিখুন।

  4. ধরন বেছে নিন বিকল্পের অধীনে, প্রম্পট কীভাবে কাজ করবে তা বেছে নিন:

    • টেক্সট প্রম্পট: ব্যবহারকারী প্রম্পট চিপে ক্লিক করলে, পূর্বনির্ধারিত টেক্সট সহ কম্পোজ বার পপুলেট করে।
    • কমান্ড প্রম্পট: ক্লিক করা হলে রেজিস্টার করা স্ল্যাশ কমান্ড বা কুইক কমান্ড রান করে। যেসব কমান্ডের জন্য অতিরিক্ত আর্গুমেন্ট প্রয়োজন সেগুলি বেছে নেওয়া যাবে না।
  5. আপনার বেছে নেওয়া ধরনের উপর ভিত্তি করে প্রম্পট কনফিগার করুন:

    • আপনি টেক্সট প্রম্পট বেছে নিলে:

      1. শীর্ষক-এ, চিপে দেখানো প্রম্পটের শীর্ষক লিখুন (সর্বাধিক ৩০ অক্ষর)।
      2. প্রম্পট টেক্সট-এ, কম্পোজ বারে দেখানো টেক্সট লিখুন (সর্বাধিক ৬০টি অক্ষর)।
      3. ঐচ্ছিক: অন্যান্য ভাষার ব্যবহারকারীদের জন্য স্থানীয় ভাষায় শীর্ষক ও টেক্সট যোগ করুন:
      4. লোকালাইজ করা প্রম্পট বিকল্পের মধ্যে, একটি ভাষা যোগ করুন বিকল্পে ক্লিক করুন।
      5. ভাষা বিকল্পে গিয়ে, ড্রপ-ডাউন থেকে কাজ করে এমন ভাষা বেছে নিন।
      6. স্থানীয়কৃত শীর্ষক-এ স্থানীয়কৃত শীর্ষক লিখুন (সর্বাধিক ৩০টি অক্ষর)।
      7. লোকালাইজ করা প্রম্পট টেক্সট-এ, লোকালাইজ করা প্রম্পট টেক্সট লিখুন (সর্বাধিক ৬০টি অক্ষর)।
      8. প্রয়োজন অনুযায়ী আরও ভাষা যোগ করতে এই ধাপগুলি আবার করুন।
    • আপনি কমান্ড প্রম্পট বেছে নিলে:

      1. স্ল্যাশ কমান্ড / কুইক কমান্ড-এ, ড্রপ-ডাউন থেকে কমান্ড বেছে নিন।
  6. হয়ে গেছে বিকল্পে ক্লিক করুন এবং তারপরে পৃষ্ঠার একদম নিচে সেভ করুন বিকল্পে ক্লিক করুন।

আপনার পরিষেবায় 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-এর মধ্যে কনফিগার করা আছে:
{
  "addOns": {
    "chat": {}
  }
}
ম্যানিফেস্টের রুটে chat অবজেক্ট কনফিগার করা হয়েছে:
{
  "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 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 অ্যাপ কনফিগার করুন

  1. Google Cloud কনসোলে, Chat API কনফিগারেশন পৃষ্ঠায় যান:

    Chat API কনফিগারেশন পৃষ্ঠায় যান

  2. ইন্টার‍্যাক্টিভ ফিচার বিকল্পের মধ্যে, এই Chat অ্যাপটি Google Workspace অ্যাড-অন হিসেবে তৈরি করুন বিকল্পটি মুছে দিন এবং ফাংশনালিটি, একটি কানেকশন সেটিংস এন্ডপয়েন্ট (HTTP এন্ডপয়েন্ট URL, Apps Script, Cloud Pub/Sub বিষয়ের নাম বা Dialogflow), কমান্ড, স্টার্টার প্রম্পট, লিঙ্ক প্রিভিউ এবং দৃশ্যমানতা কনফিগার করুন।

  3. সেভ করুন বিকল্পে ক্লিক করুন।

অ্যাড-অন নয় এমন 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`.'
  };
}