Google Chat অ্যাপ কমান্ডের উত্তর দেওয়া

Google Chat অ্যাপ হিসেবে কীভাবে কমান্ড সেট-আপ ও উত্তর দিতে হয় তা এই পৃষ্ঠায় ব্যাখ্যা করা হয়েছে।

কমান্ডের সাহায্যে ব্যবহারকারীরা Chat অ্যাপের মূল ফিচারগুলি খুঁজে দেখতে ও ব্যবহার করতে পারেন। শুধুমাত্র Chat অ্যাপই কমান্ডের কন্টেন্ট দেখতে পায়। যেমন, কোনও ব্যবহারকারী স্ল্যাশ কমান্ড সহ মেসেজ পাঠালে, মেসেজটি শুধুমাত্র ব্যবহারকারী এবং Chat অ্যাপ দেখতে পাবে।

আপনাকে কমান্ড তৈরি করতে হবে কিনা তা সিদ্ধান্ত নিতে এবং কীভাবে ব্যবহারকারীর ইন্টার‍্যাকশন ডিজাইন করতে হয় তা বুঝতে, ব্যবহারকারীর সমস্ত জার্নি নির্ধারণ করুন দেখুন।

Chat অ্যাপ কমান্ডের ধরন

আপনি স্ল্যাশ কমান্ড, দ্রুত কমান্ড বা মেসেজ অ্যাকশন হিসেবে Chat অ্যাপ কমান্ড তৈরি করতে পারেন। প্রতিটি ধরনের কমান্ড ব্যবহার করতে, ব্যবহারকারী নিম্নলিখিত কাজগুলি করতে পারেন:
  1. স্ল্যাশ কমান্ড: ব্যবহারকারী মেনু থেকে স্ল্যাশ কমান্ড বেছে নিতে পারেন অথবা স্ল্যাশ (/) ও তারপরে /about-এর মতো পূর্ব-নির্ধারিত টেক্সট টাইপ করতে পারেন। চ্যাট অ্যাপে সাধারণত স্ল্যাশ কমান্ডের জন্য আর্গুমেন্ট টেক্সট প্রয়োজন হয়।

    আপনার Chat অ্যাপে ব্যবহারকারীর থেকে অতিরিক্ত ইনপুট প্রয়োজন হলে স্ল্যাশ কমান্ড তৈরি করুন। যেমন, আপনি একটি স্ল্যাশ কমান্ড তৈরি করতে পারেন যা ব্যবহারকারী কোনও বাক্যাংশ লিখে সার্চ করার পরে রান করে, যেমন /search receipts। /search

  2. দ্রুত কমান্ড: ব্যবহারকারীরা চ্যাট মেসেজের উত্তর দেওয়ার জায়গা থেকে মেনু খুলে কমান্ড ব্যবহার করেন। কমান্ড ব্যবহার করতে, তারা যোগ করুন বিকল্পে ক্লিক করেন এবং মেনু থেকে একটি কমান্ড বেছে নেন।

    আপনার Chat অ্যাপ যদি ব্যবহারকারীকে অতিরিক্ত ইনপুটের জন্য অপেক্ষা না করেই অবিলম্বে উত্তর দিতে পারে, তাহলে একটি কুইক কমান্ড তৈরি করুন। যেমন, আপনি র‍্যান্ডম ছবি নামে একটি কুইক কমান্ড তৈরি করতে পারেন যা একটি ছবি দিয়ে সঙ্গে সঙ্গে উত্তর দেয়।

  3. মেসেজ অ্যাকশন: ব্যবহারকারীরা কোনও মেসেজের উপর কার্সর নিয়ে গিয়ে এবং তিন-ডট মেনুতে ক্লিক করে মেসেজ অ্যাকশন ব্যবহার করেন। কমান্ড ব্যবহার করতে, তারা তিন-ডট মেনু খুলে মেনু থেকে একটি কমান্ড বেছে নেন।

    আপনার Chat অ্যাপ যদি কোনও মেসেজের প্রসঙ্গ অনুযায়ী অ্যাকশন পারফর্ম করতে পারে, তাহলে মেসেজ অ্যাকশন তৈরি করুন।

নিচের ছবিগুলি থেকে বোঝা যায় যে কীভাবে ব্যবহারকারীরা স্ল্যাশ ও কুইক কমান্ড এবং মেসেজ অ্যাকশনের মেনু খুঁজে পান:

পূর্বশর্ত

Node.js

ইন্টার‍্যাকশন ইভেন্ট গ্রহণ করে ও উত্তর দেয় এমন একটি Google Chat অ্যাপ। HTTP পরিষেবা ব্যবহার করে ইন্টার‍্যাক্টিভ Chat অ্যাপ তৈরি করতে, এই কুইকস্টার্ট সম্পূর্ণ করুন।

Apps Script

ইন্টার‍্যাকশন ইভেন্ট গ্রহণ করে ও উত্তর দেয় এমন একটি Google Chat অ্যাপ। Apps Script-এ ইন্ট্যার‍্যাক্টিভ Chat অ্যাপ তৈরি করতে, এই দ্রুত শুরু সম্পূর্ণ করুন।

Python

ইন্টার‍্যাকশন ইভেন্ট গ্রহণ করে ও উত্তর দেয় এমন একটি Google Chat অ্যাপ। HTTP পরিষেবা ব্যবহার করে ইন্টার‍্যাক্টিভ Chat অ্যাপ তৈরি করতে, এই কুইকস্টার্ট সম্পূর্ণ করুন।

Java

ইন্টার‍্যাকশন ইভেন্ট গ্রহণ করে ও উত্তর দেয় এমন একটি Google Chat অ্যাপ। HTTP পরিষেবা ব্যবহার করে ইন্টার‍্যাক্টিভ Chat অ্যাপ তৈরি করতে, এই কুইকস্টার্ট সম্পূর্ণ করুন।

কমান্ড সেট-আপ করা

এই বিভাগে, কীভাবে কমান্ড সেট-আপ করার জন্য নিম্নলিখিত ধাপগুলি সম্পূর্ণ করতে হয় তা ব্যাখ্যা করা হয়েছে:

  1. কমান্ডের জন্য নাম ও বিবরণ তৈরি করুন।
  2. Google Cloud কনসোলে কমান্ড কনফিগার করুন।

কমান্ডের নাম ও বিবরণ লিখুন

কমান্ডের নাম হল সেটি যা ব্যবহারকারীরা টাইপ করেন বা বেছে নেন যাতে Chat অ্যাপ খোলা যায়। নামের নিচে একটি সংক্ষিপ্ত বিবরণও দেখানো হয়, যাতে ব্যবহারকারীদের কমান্ড ব্যবহার করার পদ্ধতি সম্পর্কে আরও প্রম্পট করা যায়:

স্ল্যাশ কমান্ডের নাম ও বিবরণ
স্ল্যাশ কমান্ডের নাম ও বিবরণ।

আপনার কমান্ডের নাম ও বিবরণ বেছে নেওয়ার সময়, নিম্নলিখিত সাজেশন বিবেচনা করে দেখুন:

কোনও কমান্ডের নাম দিতে:

  • ব্যবহারকারীর কাছে কমান্ড স্পষ্ট করে তুলতে, ছোট, বর্ণনামূলক এবং অ্যাকশনযোগ্য শব্দ বা বাক্যাংশ ব্যবহার করুন। যেমন, Create a reminder নামের পরিবর্তে, Remind me ব্যবহার করুন।
  • আপনার কমান্ডের জন্য অনন্য বা সাধারণ নাম ব্যবহার করার কথা বিবেচনা করুন। আপনার কমান্ড যদি কোনও সাধারণ ইন্টার‍্যাকশন বা ফিচার বর্ণনা করে, তাহলে আপনি এমন একটি সাধারণ নাম ব্যবহার করতে পারেন যা ব্যবহারকারীরা চিনতে ও আশা করতে পারেন, যেমন Settings বা Feedback। অন্যথায়, অনন্য কমান্ড নাম ব্যবহার করার চেষ্টা করুন, কারণ আপনার কমান্ডের নাম যদি অন্যান্য Chat অ্যাপের মতো হয়, তাহলে ব্যবহারকারীকে আপনার কমান্ড খুঁজে পেতে ও ব্যবহার করতে একই ধরনের কমান্ডের মধ্যে ফিল্টার করতে হবে।

কোনও কমান্ডের বিবরণ দিতে:

  • বিবরণ সংক্ষিপ্ত ও স্পষ্ট রাখুন যাতে ব্যবহারকারীরা কমান্ড ব্যবহার করার সময় কী আশা করতে পারেন তা জানতে পারেন।
  • কমান্ডের জন্য কোনও ফর্ম্যাটিং সংক্রান্ত প্রয়োজনীয়তা থাকলে ব্যবহারকারীকে তা জানান। যেমন, আপনি যদি আর্গুমেন্ট টেক্সটের প্রয়োজন হয় এমন স্ল্যাশ কমান্ড তৈরি করেন, তাহলে বিবরণটি Remind me to do [something] at [time]-এর মতো কিছুতে সেট করুন।
  • Chat অ্যাপ স্পেসের সকলের কাছে উত্তর দেয় নাকি যে ব্যবহারকারী কমান্ড প্রয়োগ করেছেন তাকে ব্যক্তিগতভাবে উত্তর দেয় তা ব্যবহারকারীকে জানান। যেমন, 'দ্রুত কমান্ড' About-এর জন্য, আপনি এটিকে Learn about this app (Only visible to you) হিসেবে বর্ণনা করতে পারেন।

Google Cloud Console-এ কমান্ড কনফিগার করুন

স্ল্যাশ কমান্ড, দ্রুত কমান্ড বা মেসেজ অ্যাকশন তৈরি করতে, আপনি Google Chat API-এর জন্য আপনার Chat অ্যাপের কনফিগারেশনে কমান্ড বা অ্যাকশন সম্পর্কে তথ্য নির্দিষ্ট করেন।

Google Chat API-তে কোনও কমান্ড কনফিগার করতে, নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন:

  1. Google Cloud কনসোলে, 'মেনু' > API ও পরিষেবা > চালু করা API ও পরিষেবা > Google Chat API বিকল্পে ক্লিক করুন

    Google Chat API পৃষ্ঠায় যান

  2. কনফিগারেশন বিকল্পে ক্লিক করুন।

  3. কমান্ড বিকল্পের মধ্যে, কমান্ড যোগ করুন বিকল্পে ক্লিক করুন।

  4. কমান্ডের জন্য কমান্ড আইডি, বিবরণ, কমান্ডের ধরন ও নাম লিখুন:

    • কমান্ড আইডি: ১ থেকে ১০০০ পর্যন্ত একটি সংখ্যা যা আপনার Chat অ্যাপ কমান্ড শনাক্ত করতে এবং উত্তর দিতে ব্যবহার করে।
    • বিবরণ: কমান্ড কী করে তা বর্ণনা করে এমন টেক্সট। বিবরণ সর্বাধিক ৫০ অক্ষরের হতে পারে এবং এতে বিশেষ অক্ষর থাকতে পারে।
    • কমান্ডের ধরন: দ্রুত কমান্ড, স্ল্যাশ কমান্ড অথবা মেসেজ অ্যাকশন বিকল্পের মধ্যে একটি বেছে নিন।
    • কমান্ডের নাম লিখুন:
      • দ্রুত কমান্ডের নাম: কমান্ড চালু করার জন্য ব্যবহারকারীরা মেনু থেকে যে ডিসপ্লে নাম বেছে নেন। সর্বাধিক ৫০ অক্ষরের হতে পারে এবং বিশেষ অক্ষর থাকতে পারে। যেমন, Remind me
      • স্ল্যাশ কমান্ডের নাম: মেসেজে কমান্ড ইনভোক করার জন্য ব্যবহারকারীরা যে টেক্সট টাইপ করেন। স্ল্যাশ দিয়ে শুরু হতে হবে, শুধুমাত্র টেক্সট থাকতে হবে এবং সর্বাধিক ৫০টি অক্ষর থাকতে পারে। যেমন, /remindMe
      • মেসেজ অ্যাকশনের নাম: মেসেজ অ্যাকশন চালু করতে ব্যবহারকারীরা মেনু থেকে যে ডিসপ্লে নাম বেছে নেন। সর্বাধিক ৫০ অক্ষরের হতে পারে এবং বিশেষ অক্ষর থাকতে পারে। যেমন, Remind me
  5. ঐচ্ছিক: লোডিং বিজ্ঞপ্তি মেসেজ: মেসেজ অ্যাকশন এক্সিকিউট করার সময় ব্যবহারকারীকে দেখানোর জন্য টোস্ট বিজ্ঞপ্তি মেসেজ। শুধুমাত্র সেইসব মেসেজ অ্যাকশনের জন্য উপলভ্য যেগুলি ডায়ালগ খোলে না।

  6. ঐচ্ছিক: আপনি যদি চান যে আপনার Chat অ্যাপ কোনও কমান্ডের উত্তর ডায়ালগ দিয়ে দিক, তাহলে ডায়ালগ খোলো চেকবক্স বেছে নিন।

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

কমান্ডটি এখন Chat অ্যাপের জন্য কনফিগার করা হয়েছে।

ম্যাপ কমান্ড থেকে স্টার্টার প্রম্পট

আপনি নিজের কমান্ডকে স্টার্টার প্রম্পট হিসেবে ফিচার করতে পারেন, যাতে ব্যবহারকারীরা আপনার Chat অ্যাপের সাথে খালি ১:১ ডাইরেক্ট মেসেজ শুরু করার সময় সেগুলিকে ইন্টারেক্টিভ চিপ হিসেবে দেখতে পান।

স্টার্টার প্রম্পটের সাথে কমান্ড ম্যাপ করতে:

  1. আপনার কমান্ডে যেন অতিরিক্ত কাস্টম আর্গুমেন্ট না লাগে তা নিশ্চিত করুন (শুধুমাত্র কোনও আর্গুমেন্ট নেই বা প্রাথমিক আর্গুমেন্ট সহ কমান্ডগুলি স্টার্টার প্রম্পট হিসেবে কাজ করে)।
  2. Google Cloud Console-এ, Chat API-এর কনফিগারেশন পৃষ্ঠায় যান।
  3. ইন্টার‍্যাক্টিভ ফিচার > স্টার্টার প্রম্পট বিকল্পের মধ্যে, প্রম্পট যোগ করুন বিকল্পে ক্লিক করুন।
  4. দেখানোর ক্রমের জন্য র‍্যাঙ্ক (১-৩) সেট করুন।
  5. টাইপ বেছে নেওয়া বিকল্পের মধ্যে থেকে কমান্ড প্রম্পট বেছে নিন এবং ড্রপ-ডাউন থেকে আপনার কমান্ড বেছে নিন।
  6. হয়ে গেছে বিকল্পে ক্লিক করুন, তারপর সেভ করুন বিকল্পে ক্লিক করুন।

কমান্ডের উত্তর দেওয়া

ব্যবহারকারী কোনও কমান্ড ব্যবহার করলে, আপনার Chat অ্যাপ একটি ইন্টার‍্যাকশন ইভেন্ট পায়। ইভেন্ট পেলোডে, ইনভোক করা কমান্ডের (কমান্ড আইডি ও কমান্ডের ধরন সহ) বিবরণ সহ মেটাডেটা থাকে, যাতে আপনি উপযুক্ত উত্তর দিতে পারেন।

Cymbal Labs Chat অ্যাপের
  জন্য ব্যক্তিগত মেসেজ। মেসেজে বলা হয়েছে যে
  Chat অ্যাপটি Cymbal Labs তৈরি করেছে এবং এতে ডকুমেন্টেশন ও সহায়তা টিমের সাথে যোগাযোগ করার
  লিঙ্ক শেয়ার করা হয়েছে।
সহায়তা কীভাবে পাবেন তা ব্যাখ্যা করতে, Chat অ্যাপ স্ল্যাশ কমান্ড /help-এর উত্তর ব্যক্তিগতভাবে দেয়।

প্রতিটি ধরনের কমান্ডের উত্তর দিতে, আপনাকে ইভেন্ট পেলোডে বিভিন্ন ধরনের ইভেন্ট ও মেটাডেটা অবজেক্ট ম্যানেজ করতে হবে:

কমান্ডের ধরন ইভেন্টের প্রকার কমান্ড মেটাডেটা
স্ল্যাশ কমান্ড MESSAGE message.slashCommand অথবা message.annotation.slashCommand
দ্রুত কমান্ড APP_COMMAND appCommandMetadata
মেসেজ অ্যাকশন APP_COMMAND appCommandMetadata

মেসেজের মাধ্যমে কীভাবে কোনও কমান্ডের উত্তর দিতে হয় তা জানতে, নিম্নলিখিত বিভাগ দেখুন।

স্ল্যাশ কমান্ডের উত্তর দেওয়া

নিচের কোডে একটি Chat অ্যাপের উদাহরণ দেখানো হয়েছে যেটি স্ল্যাশ কমান্ড /about-এর উত্তর দেয়। Chat অ্যাপ MESSAGE ইন্ট্যার‍্যাকশন ইভেন্ট ম্যানেজ করে, ইন্ট্যার‍্যাকশন ইভেন্টে ম্যাচিং কমান্ড আইডি আছে কিনা তা শনাক্ত করে এবং একটি ব্যক্তিগত মেসেজ রিটার্ন করে:

Node.js

node/avatar-app/index.js
/**
 * Handles slash and quick commands.
 *
 * @param {Object} event - The Google Chat event.
 * @param {Object} res - The HTTP response object.
 */
function handleAppCommands(event, res) {
  const {appCommandId, appCommandType} = event.appCommandMetadata;

  switch (appCommandId) {
    case ABOUT_COMMAND_ID:
      return res.send({
        privateMessageViewer: event.user,
        text: 'The Avatar app replies to Google Chat messages.'
      });
    case HELP_COMMAND_ID:
      return res.send({
        privateMessageViewer: event.user,
        text: 'The Avatar app replies to Google Chat messages.'
      });
  }
}

Apps Script

apps-script/avatar-app/avatar-app.gs
// Checks for the presence of a slash command in the message.
if (event.message.slashCommand) {
  // Executes the slash command logic based on its ID.
  // Slash command IDs are set in the Google Chat API configuration.
  switch (event.message.slashCommand.commandId) {
    case ABOUT_COMMAND_ID:
      return {
        privateMessageViewer: event.user,
        text: 'The Avatar app replies to Google Chat messages.'
      };
  }
}

Python

python/avatar-app/main.py
def handle_app_commands(event: Mapping[str, Any]) -> Mapping[str, Any]:
    """Handles slash and quick commands.

    Args:
        Mapping[str, Any] event: The Google Chat event.

    Returns:
        Mapping[str, Any]: the response
    """
    app_command_id = event["appCommandMetadata"]["appCommandId"]

    if app_command_id == ABOUT_COMMAND_ID:
        return {
            "privateMessageViewer": event["user"],
            "text": "The Avatar app replies to Google Chat messages.",
        }
    elif app_command_id == HELP_COMMAND_ID:
        return {
            "privateMessageViewer": event["user"],
            "text": "The Avatar app replies to Google Chat messages.",
        }
    return {}

Java

java/avatar-app/src/main/java/AvatarApp.java
/**
 * Handles slash and quick commands.
 *
 * @param event    The Google Chat event.
 * @param response The HTTP response object.
 */
private void handleAppCommands(JsonObject event, HttpResponse response) throws Exception {
  int appCommandId = event.getAsJsonObject("appCommandMetadata").get("appCommandId").getAsInt();

  switch (appCommandId) {
    case ABOUT_COMMAND_ID:
      Message aboutMessage = new Message();
      aboutMessage.setText("The Avatar app replies to Google Chat messages.");
      aboutMessage.setPrivateMessageViewer(new User()
          .setName(event.getAsJsonObject("user").get("name").getAsString()));
      response.getWriter().write(gson.toJson(aboutMessage));
      return;
    case HELP_COMMAND_ID:
      Message helpMessage = new Message();
      helpMessage.setText("The Avatar app replies to Google Chat messages.");
      helpMessage.setPrivateMessageViewer(new User()
          .setName(event.getAsJsonObject("user").get("name").getAsString()));
      response.getWriter().write(gson.toJson(helpMessage));
      return;
  }
}

Google Cloud কনসোলে কমান্ড কনফিগার করার সময় আপনি যে কমান্ড আইডি নির্দিষ্ট করেছিলেন সেটি দিয়ে ABOUT_COMMAND_ID পরিবর্তন করুন।

দ্রুত কমান্ডের উত্তর দেওয়া

নিচের কোডে Chat অ্যাপের একটি উদাহরণ দেখানো হয়েছে যেটি দ্রুত কমান্ড সাহায্য-এর উত্তর দেয়। Chat অ্যাপ APP_COMMAND ইন্ট্যার‍্যাকশন ইভেন্ট ম্যানেজ করে, ইন্ট্যার‍্যাকশন ইভেন্টে ম্যাচিং কমান্ড আইডি আছে কিনা তা শনাক্ত করে এবং একটি ব্যক্তিগত মেসেজ রিটার্ন করে:

Node.js

node/avatar-app/index.js
/**
 * Handles slash and quick commands.
 *
 * @param {Object} event - The Google Chat event.
 * @param {Object} res - The HTTP response object.
 */
function handleAppCommands(event, res) {
  const {appCommandId, appCommandType} = event.appCommandMetadata;

  switch (appCommandId) {
    case ABOUT_COMMAND_ID:
      return res.send({
        privateMessageViewer: event.user,
        text: 'The Avatar app replies to Google Chat messages.'
      });
    case HELP_COMMAND_ID:
      return res.send({
        privateMessageViewer: event.user,
        text: 'The Avatar app replies to Google Chat messages.'
      });
  }
}

Apps Script

apps-script/avatar-app/avatar-app.gs
/**
 * Handles the APP_COMMAND event type. This function is triggered when a user
 * interacts with a quick command within the Google Chat app.  It responds
 * based on the command ID.
 *
 * @param {Object} event The event object from Google Chat, containing details
 *     about the app command interaction.  It includes information like the
 *     command ID and the user who triggered it.
 */
function onAppCommand(event) {
  // Executes the quick command logic based on its ID.
  // Command IDs are set in the Google Chat API configuration.
  switch (event.appCommandMetadata.appCommandId) {
    case HELP_COMMAND_ID:
      return {
        privateMessageViewer: event.user,
        text: 'The Avatar app replies to Google Chat messages.'
      };
  }
}

Python

python/avatar-app/main.py
def handle_app_commands(event: Mapping[str, Any]) -> Mapping[str, Any]:
    """Handles slash and quick commands.

    Args:
        Mapping[str, Any] event: The Google Chat event.

    Returns:
        Mapping[str, Any]: the response
    """
    app_command_id = event["appCommandMetadata"]["appCommandId"]

    if app_command_id == ABOUT_COMMAND_ID:
        return {
            "privateMessageViewer": event["user"],
            "text": "The Avatar app replies to Google Chat messages.",
        }
    elif app_command_id == HELP_COMMAND_ID:
        return {
            "privateMessageViewer": event["user"],
            "text": "The Avatar app replies to Google Chat messages.",
        }
    return {}

Java

java/avatar-app/src/main/java/AvatarApp.java
/**
 * Handles slash and quick commands.
 *
 * @param event    The Google Chat event.
 * @param response The HTTP response object.
 */
private void handleAppCommands(JsonObject event, HttpResponse response) throws Exception {
  int appCommandId = event.getAsJsonObject("appCommandMetadata").get("appCommandId").getAsInt();

  switch (appCommandId) {
    case ABOUT_COMMAND_ID:
      Message aboutMessage = new Message();
      aboutMessage.setText("The Avatar app replies to Google Chat messages.");
      aboutMessage.setPrivateMessageViewer(new User()
          .setName(event.getAsJsonObject("user").get("name").getAsString()));
      response.getWriter().write(gson.toJson(aboutMessage));
      return;
    case HELP_COMMAND_ID:
      Message helpMessage = new Message();
      helpMessage.setText("The Avatar app replies to Google Chat messages.");
      helpMessage.setPrivateMessageViewer(new User()
          .setName(event.getAsJsonObject("user").get("name").getAsString()));
      response.getWriter().write(gson.toJson(helpMessage));
      return;
  }
}

Google Cloud কনসোলে কমান্ড কনফিগার করার সময় আপনি যে কমান্ড আইডি নির্দিষ্ট করেছিলেন সেটি দিয়ে HELP_COMMAND_ID পরিবর্তন করুন।

মেসেজ অ্যাকশনের উত্তর দেওয়া

নিচের কোডে এমন একটি Chat অ্যাপের উদাহরণ দেখানো হয়েছে যা মেসেজ অ্যাকশন আমাকে মনে করিয়ে দাও-এর উত্তর দেয়। Chat অ্যাপ APP_COMMAND ইন্ট্যার‍্যাকশন ইভেন্ট ম্যানেজ করে, ইন্ট্যার‍্যাকশন ইভেন্টে ম্যাচিং কমান্ড আইডি আছে কিনা তা শনাক্ত করে এবং একটি ব্যক্তিগত মেসেজ রিটার্ন করে:

Node.js

/**
 * Responds to an APP_COMMAND interaction event from Google Chat.
 *
 * @param {Object} event The interaction event from Google Chat.
 * @param {Object} res The HTTP response object.
 * @return {Object} The JSON response message with a confirmation.
 */
function handleAppCommand(event, res) {
  // Collect the command ID and type from the event metadata.
  const {appCommandId, appCommandType} = event.appCommandMetadata;

  // Use appCommandType to detect message actions.
  if (appCommandType === 'MESSAGE_ACTION' &&
      appCommandId === REMIND_ME_COMMAND_ID) {

    // Message actions can access the context of the message they were
    // invoked on, such as the text or sender of that message.
    const messageText = event.message.text;

    // Return a response that includes details from the original message.
    return res.send({
      text: `Setting a reminder for this message: "${messageText}"`
    });
  }
}

Apps Script

/**
 * Responds to an APP_COMMAND interaction event in Google Chat.
 *
 * @param {Object} event The interaction event from Google Chat.
 * @return {Object} The JSON response message with a confirmation.
 */
function onAppCommand(event) {
  // Collect the command ID and type from the event metadata.
  const {appCommandId, appCommandType} = event.appCommandMetadata;

  if (appCommandType === 'MESSAGE_ACTION' &&
      appCommandId === REMIND_ME_COMMAND_ID) {

    // Message actions can access the context of the message they were
    // invoked on, such as the text or sender of that message.
    const messageText = event.message.text;

    // Return a response that includes details from the original message.
    return { "text": "Setting a reminder for message: " + messageText };
  }
}

Python

def handle_app_command(event):
    """Responds to an APP_COMMAND interaction event from Google Chat.

    Args:
        event (dict): The interaction event from Google Chat.

    Returns:
        dict: The JSON response message with a confirmation.
    """
    # Collect the command ID and type from the event metadata.
    metadata = event.get('appCommandMetadata', {})
    if metadata.get('appCommandType') == 'MESSAGE_ACTION' and \
       metadata.get('appCommandId') == REMIND_ME_COMMAND_ID:

        # Message actions can access the context of the message they were
        # invoked on, such as the text or sender of that message.
        message_text = event.get('message', {}).get('text')

        # Return a response that includes details from the original message.
        return {
            "text": f'Setting a reminder for message: "{message_text}"'
        }

Java

/**
 * Responds to an APP_COMMAND interaction event from Google Chat.
 *
 * @param event The interaction event from Google Chat.
 * @param response The HTTP response object.
 */
void handleAppCommand(JsonObject event, HttpResponse response) throws Exception {
  // Collect the command ID and type from the event metadata.
  JsonObject metadata = event.getAsJsonObject("appCommandMetadata");
  String appCommandType = metadata.get("appCommandType").getAsString();

  if (appCommandType.equals("MESSAGE_ACTION")) {
    int commandId = metadata.get("appCommandId").getAsInt();
    if (commandId == REMIND_ME_COMMAND_ID) {
      // Message actions can access the context of the message they were
      // invoked on, such as the text or sender of that message.
      String messageText = event.getAsJsonObject("message").get("text").getAsString();

      // Return a response that includes details from the original message.
      JsonObject responseMessage = new JsonObject();
      responseMessage.addProperty("text", "Setting a reminder for message: " + messageText);
      response.getWriter().write(responseMessage.toString());
    }
  }
}

Google Cloud কনসোলে কমান্ড কনফিগার করার সময় আপনি যে কমান্ড আইডি নির্দিষ্ট করেছিলেন সেটি দিয়ে REMIND_ME_COMMAND_ID পরিবর্তন করুন।

কমান্ড পরীক্ষা করে দেখুন

কমান্ড ও কোড পরীক্ষা করতে, Google Chat অ্যাপের জন্য ইন্টার‍্যাক্টিভ ফিচার পরীক্ষা করুন দেখুন।

Chat UI-তে কীভাবে কমান্ড পরীক্ষা ও ব্যবহার করতে হয় তা জানতে, Google Chat সহায়তা ডকুমেন্টেশনে Google Chat-এ অ্যাপ ব্যবহার করা লিঙ্ক দেখুন।