Google Chat অ্যাপের আদেশে সাড়া দিন

এই পৃষ্ঠায় একটি গুগল চ্যাট অ্যাপ হিসেবে কীভাবে সেট আপ করতে হয় এবং কমান্ডের উত্তর দিতে হয়, তা ব্যাখ্যা করা হয়েছে।

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

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

চ্যাট অ্যাপ কমান্ডের প্রকারভেদ

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

    আপনার চ্যাট অ্যাপে যদি ব্যবহারকারীর কাছ থেকে অতিরিক্ত ইনপুটের প্রয়োজন হয়, তাহলে একটি স্ল্যাশ কমান্ড তৈরি করুন। উদাহরণস্বরূপ, আপনি /search নামে একটি স্ল্যাশ কমান্ড তৈরি করতে পারেন, যা ব্যবহারকারী অনুসন্ধানের জন্য কোনো শব্দগুচ্ছ প্রবেশ করানোর পর চালু হবে, যেমন /search receipts

  2. দ্রুত কমান্ড: ব্যবহারকারীরা চ্যাট বার্তার উত্তর দেওয়ার অংশ থেকে মেনু খুলে কমান্ড ব্যবহার করেন। কোনো কমান্ড ব্যবহার করতে, তাঁরা 'অ্যাড' (Add) এ ক্লিক করেন। এবং মেনু থেকে একটি কমান্ড নির্বাচন করুন।

    আপনার চ্যাট অ্যাপটি যদি অতিরিক্ত কোনো ইনপুটের জন্য অপেক্ষা না করে ব্যবহারকারীকে তাৎক্ষণিকভাবে সাড়া দিতে পারে, তাহলে একটি কুইক কমান্ড তৈরি করুন। উদাহরণস্বরূপ, আপনি 'র‍্যান্ডম ইমেজ' নামে একটি কুইক কমান্ড তৈরি করতে পারেন, যা সাথে সাথে একটি ছবি পাঠিয়ে দেবে।

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

    আপনার চ্যাট অ্যাপ যদি বার্তার প্রেক্ষাপটের ওপর ভিত্তি করে কোনো কাজ করতে পারে, তাহলে একটি মেসেজ অ্যাকশন তৈরি করুন।

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

পূর্বশর্ত

নোড.জেএস

একটি গুগল চ্যাট অ্যাপ যা ইন্টারঅ্যাকশন ইভেন্ট গ্রহণ করে এবং সেগুলোর উত্তর দেয়। একটি HTTP সার্ভিস ব্যবহার করে ইন্টারেক্টিভ চ্যাট অ্যাপ তৈরি করতে, এই কুইকস্টার্টটি সম্পূর্ণ করুন।

অ্যাপস স্ক্রিপ্ট

একটি গুগল চ্যাট অ্যাপ যা ইন্টারঅ্যাকশন ইভেন্ট গ্রহণ করে এবং সেগুলোর উত্তর দেয়। অ্যাপস স্ক্রিপ্টে একটি ইন্টারেক্টিভ চ্যাট অ্যাপ তৈরি করতে, এই কুইকস্টার্টটি সম্পূর্ণ করুন।

পাইথন

একটি গুগল চ্যাট অ্যাপ যা ইন্টারঅ্যাকশন ইভেন্ট গ্রহণ করে এবং সেগুলোর উত্তর দেয়। একটি HTTP সার্ভিস ব্যবহার করে ইন্টারেক্টিভ চ্যাট অ্যাপ তৈরি করতে, এই কুইকস্টার্টটি সম্পূর্ণ করুন।

জাভা

একটি গুগল চ্যাট অ্যাপ যা ইন্টারঅ্যাকশন ইভেন্ট গ্রহণ করে এবং সেগুলোর উত্তর দেয়। একটি HTTP সার্ভিস ব্যবহার করে ইন্টারেক্টিভ চ্যাট অ্যাপ তৈরি করতে, এই কুইকস্টার্টটি সম্পূর্ণ করুন।

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

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

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

কমান্ডটির নাম ও বর্ণনা দিন।

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

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

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

একটি কমান্ডের নাম দিতে:

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

একটি কমান্ড বর্ণনা করতে:

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

গুগল ক্লাউড কনসোলে কমান্ডটি কনফিগার করুন।

স্ল্যাশ কমান্ড, কুইক কমান্ড বা মেসেজ অ্যাকশন তৈরি করতে, আপনাকে আপনার চ্যাট অ্যাপের গুগল চ্যাট এপিআই (Google Chat API) কনফিগারেশনে কমান্ড বা অ্যাকশনটি সম্পর্কে তথ্য উল্লেখ করতে হবে।

গুগল চ্যাট এপিআই-তে একটি কমান্ড কনফিগার করতে, নিম্নলিখিত ধাপগুলি সম্পন্ন করুন:

  1. Google Cloud কনসোলে, > এপিআই ও পরিষেবা > সক্রিয় এপিআই ও পরিষেবা > Google Chat API- তে ক্লিক করুন।

    গুগল চ্যাট এপিআই পৃষ্ঠায় যান

  2. কনফিগারেশন- এ ক্লিক করুন।

  3. Commands-এর অধীনে, Add a command-এ ক্লিক করুন।

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

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

  6. ঐচ্ছিক: আপনি যদি চান আপনার চ্যাট অ্যাপটি কমান্ডের জবাবে একটি ডায়ালগ বক্স দেখাক, তাহলে ‘ওপেন এ ডায়ালগ’ চেকবক্সটি নির্বাচন করুন।

  7. সংরক্ষণ করুন- এ ক্লিক করুন।

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

একটি আদেশের প্রতিক্রিয়া জানান

যখন ব্যবহারকারীরা কোনো কমান্ড ব্যবহার করেন, তখন আপনার চ্যাট অ্যাপ একটি ইন্টার‍্যাকশন ইভেন্ট পায়। ইভেন্ট পেলোডে ব্যবহৃত কমান্ড সম্পর্কিত মেটাডেটা থাকে (কমান্ড আইডি এবং কমান্ডের ধরন সহ), যাতে আপনি একটি উপযুক্ত প্রতিক্রিয়া জানাতে পারেন।

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

প্রতিটি ধরণের কমান্ডের প্রতিক্রিয়া জানাতে, আপনাকে ইভেন্ট পেলোডে বিভিন্ন ইভেন্ট টাইপ এবং মেটাডেটা অবজেক্ট পরিচালনা করতে হবে:

কমান্ডের ধরণ ইভেন্টের ধরণ কমান্ড মেটাডেটা
স্ল্যাশ কমান্ড MESSAGE message.slashCommand বা message.annotation.slashCommand
দ্রুত কমান্ড APP_COMMAND appCommandMetadata
বার্তা ক্রিয়া APP_COMMAND appCommandMetadata

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

স্ল্যাশ কমান্ডের প্রতিক্রিয়া জানান

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

নোড.জেএস

নোড/অ্যাভাটার-অ্যাপ/ইনডেক্স.জেএস
/**
 * 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.'
      });
  }
}

অ্যাপস স্ক্রিপ্ট

অ্যাপস-স্ক্রিপ্ট/অ্যাভাটার-অ্যাপ/অ্যাভাটার-অ্যাপ.জিএস
// 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/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/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;
  }
}

গুগল ক্লাউড কনসোলে কমান্ডটি কনফিগার করার সময় আপনি যে কমান্ড আইডিটি নির্দিষ্ট করেছিলেন, ABOUT_COMMAND_ID এর জায়গায় সেই কমান্ড আইডিটি বসান।

দ্রুত নির্দেশের প্রতিক্রিয়া জানান

নিম্নলিখিত কোডটি একটি চ্যাট অ্যাপের উদাহরণ দেখায় যা 'Help' কুইক কমান্ডের উত্তর দেয়। চ্যাট অ্যাপটি APP_COMMAND ইন্টারঅ্যাকশন ইভেন্টগুলি পরিচালনা করে, ইন্টারঅ্যাকশন ইভেন্টটিতে সংশ্লিষ্ট কমান্ড আইডি আছে কিনা তা শনাক্ত করে এবং একটি ব্যক্তিগত বার্তা ফেরত পাঠায়:

নোড.জেএস

নোড/অ্যাভাটার-অ্যাপ/ইনডেক্স.জেএস
/**
 * 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.'
      });
  }
}

অ্যাপস স্ক্রিপ্ট

অ্যাপস-স্ক্রিপ্ট/অ্যাভাটার-অ্যাপ/অ্যাভাটার-অ্যাপ.জিএস
/**
 * 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/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/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;
  }
}

গুগল ক্লাউড কনসোলে কমান্ডটি কনফিগার করার সময় আপনি যে কমান্ড আইডিটি নির্দিষ্ট করেছিলেন, HELP_COMMAND_ID এর জায়গায় সেই কমান্ড আইডিটি বসান।

একটি বার্তার ক্রিয়ার প্রতিক্রিয়া জানান

নিম্নলিখিত কোডটি একটি চ্যাট অ্যাপের উদাহরণ দেখায় যা 'Remind me' মেসেজ অ্যাকশনের উত্তর দেয়। চ্যাট অ্যাপটি APP_COMMAND ইন্টারঅ্যাকশন ইভেন্টগুলি পরিচালনা করে, ইন্টারঅ্যাকশন ইভেন্টটিতে সংশ্লিষ্ট কমান্ড আইডি আছে কিনা তা শনাক্ত করে এবং একটি ব্যক্তিগত বার্তা ফেরত পাঠায়:

নোড.জেএস

/**
 * 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}"`
    });
  }
}

অ্যাপস স্ক্রিপ্ট

/**
 * 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 };
  }
}

পাইথন

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}"'
        }

জাভা

/**
 * 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 অ্যাপের ইন্টারেক্টিভ বৈশিষ্ট্যগুলি পরীক্ষা করুন দেখুন।

চ্যাট UI-তে কমান্ডটি কীভাবে পরীক্ষা ও ব্যবহার করতে হয় তা জানতে, Google Chat Help ডকুমেন্টেশনের "Use apps in Google Chat" অংশটি দেখুন।