Google Chat ব্যবহারকারীদের কাছ থেকে তথ্য সংগ্রহ ও প্রক্রিয়া করুন

এই নির্দেশিকাটি বর্ণনা করে যে কীভাবে Google Chat অ্যাপগুলি কার্ড-ভিত্তিক ইন্টারফেসে ফর্ম ইনপুট তৈরি করে ব্যবহারকারীদের কাছ থেকে তথ্য সংগ্রহ এবং প্রক্রিয়া করতে পারে।

Google Chat-এ অ্যাড-অনগুলি ব্যবহারকারীদের কাছে Google Chat অ্যাপ হিসেবে দেখা যায়। আরও জানতে, এক্সটেন্ড Google চ্যাট ওভারভিউ দেখুন।

একটি ডায়ালগ যা বিভিন্ন ধরনের উইজেট সমন্বিত করে।
চিত্র 1 : একটি চ্যাট অ্যাপ যা যোগাযোগের তথ্য সংগ্রহ করার জন্য একটি ডায়ালগ খোলে।

চ্যাট অ্যাপগুলি নিম্নলিখিত উপায়গুলি সহ চ্যাটের মধ্যে বা বাইরে ক্রিয়া সম্পাদনের জন্য ব্যবহারকারীদের কাছ থেকে তথ্যের অনুরোধ করে:

  • সেটিংস কনফিগার করুন। উদাহরণস্বরূপ, ব্যবহারকারীদের বিজ্ঞপ্তি সেটিংস কাস্টমাইজ করতে বা কনফিগার করতে এবং এক বা একাধিক স্পেসে চ্যাট অ্যাপ যোগ করতে দিতে।
  • অন্যান্য Google Workspace অ্যাপ্লিকেশনে তথ্য তৈরি বা আপডেট করুন। উদাহরণস্বরূপ, ব্যবহারকারীদের একটি Google ক্যালেন্ডার ইভেন্ট তৈরি করতে দিন।
  • ব্যবহারকারীদের অন্যান্য অ্যাপ বা ওয়েব পরিষেবাগুলিতে সংস্থানগুলি অ্যাক্সেস এবং আপডেট করতে দিন। উদাহরণস্বরূপ, একটি চ্যাট অ্যাপ ব্যবহারকারীদের সরাসরি চ্যাট স্পেস থেকে একটি সমর্থন টিকিটের স্থিতি আপডেট করতে সহায়তা করতে পারে।

পূর্বশর্ত

Node.js

একটি Google Workspace অ্যাড-অন যা Google Chat-এ কাজ করে। একটি তৈরি করতে, HTTP কুইকস্টার্ট সম্পূর্ণ করুন।

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

একটি Google Workspace অ্যাড-অন যা Google Chat-এ কাজ করে। একটি তৈরি করতে, Apps Script quickstart সম্পূর্ণ করুন।

কার্ড ব্যবহার করে ফর্ম তৈরি করুন

তথ্য সংগ্রহ করার জন্য, চ্যাট অ্যাপগুলি ফর্ম এবং তাদের ইনপুটগুলি ডিজাইন করে এবং সেগুলিকে কার্ডে তৈরি করে৷ ব্যবহারকারীদের কাছে কার্ড প্রদর্শন করতে, চ্যাট অ্যাপগুলি নিম্নলিখিত চ্যাট ইন্টারফেসগুলি ব্যবহার করতে পারে:

  • চ্যাট বার্তা যাতে এক বা একাধিক কার্ড থাকে।
  • ডায়ালগ , যা কার্ড যা বার্তা এবং হোমপেজ থেকে একটি নতুন উইন্ডোতে খোলে।

চ্যাট অ্যাপগুলি নিম্নলিখিত উইজেটগুলি ব্যবহার করে কার্ডগুলি তৈরি করতে পারে:

  • ফর্ম ইনপুট উইজেট যা ব্যবহারকারীদের কাছ থেকে তথ্যের জন্য অনুরোধ করে। ঐচ্ছিকভাবে, আপনি ইনপুট উইজেট গঠনে বৈধতা যোগ করতে পারেন, যাতে ব্যবহারকারীরা তথ্য সঠিকভাবে ইনপুট এবং ফর্ম্যাট করে তা নিশ্চিত করতে পারেন। চ্যাট অ্যাপগুলি নিম্নলিখিত ফর্ম ইনপুট উইজেটগুলি ব্যবহার করতে পারে:

    • ফ্রি-ফর্ম বা প্রস্তাবিত পাঠ্যের জন্য পাঠ্য ইনপুট ( textInput )।
    • নির্বাচন ইনপুট ( selectionInput ) হল নির্বাচনযোগ্য UI উপাদান যেমন চেকবক্স, রেডিও বোতাম এবং ড্রপ-ডাউন মেনু। নির্বাচন ইনপুট উইজেটগুলি স্ট্যাটিক বা ডাইনামিক ডেটা উত্স থেকে আইটেমগুলিকে পপুলেট করতে পারে। উদাহরণস্বরূপ, ব্যবহারকারীরা চ্যাট স্পেসগুলির একটি তালিকা থেকে নির্বাচন করতে পারেন যেগুলির সদস্য তারা৷
  • একটি বোতাম উইজেট যাতে ব্যবহারকারীরা কার্ডে যে মানগুলি ইনপুট করেছেন তা জমা দিতে পারে৷ একজন ব্যবহারকারী বোতামে ক্লিক করার পরে, চ্যাট অ্যাপটি প্রাপ্ত তথ্য প্রক্রিয়া করতে পারে।

নিম্নলিখিত উদাহরণে, একটি কার্ড একটি পাঠ্য ইনপুট, তারিখ সময় পিকার এবং নির্বাচন ইনপুট ব্যবহার করে যোগাযোগের তথ্য সংগ্রহ করে:

ইন্টারেক্টিভ উইজেটগুলির আরও উদাহরণের জন্য যা আপনি তথ্য সংগ্রহ করতে ব্যবহার করতে পারেন, Google Chat API ডকুমেন্টেশনে একটি ইন্টারেক্টিভ কার্ড ডিজাইন বা ডায়ালগ দেখুন।

ইন্টারেক্টিভ উইজেট থেকে ডেটা গ্রহণ করুন

যখনই ব্যবহারকারীরা একটি বোতামে ক্লিক করেন, তখনই এর চ্যাট অ্যাপস অ্যাকশনটি ইন্টারঅ্যাকশন সম্পর্কে তথ্য দিয়ে ট্রিগার হয়। ইভেন্ট পেলোডের commonEventObject এ, formInputs অবজেক্টে ব্যবহারকারীর ইনপুট করা যেকোনো মান থাকে।

আপনি commonEventObject.formInputs. WIDGET_NAME , যেখানে WIDGET_NAME হল name ক্ষেত্র যা আপনি উইজেটের জন্য নির্দিষ্ট করেছেন৷ মানগুলি উইজেটের জন্য একটি নির্দিষ্ট ডেটা টাইপ হিসাবে ফেরত দেওয়া হয়।

নিম্নলিখিত একটি ইভেন্ট অবজেক্টের একটি অংশ দেখায় যেখানে ব্যবহারকারী প্রতিটি উইজেটের জন্য মান ইনপুট করে:

{
  "commonEventObject": { "formInputs": {
    "contactName": { "stringInputs": {
      "value": ["Kai 0"]
    }},
    "contactBirthdate": { "dateInput": {
      "msSinceEpoch": 1000425600000
    }},
    "contactType": { "stringInputs": {
      "value": ["Personal"]
    }}
  }}
}

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

ফর্ম ইনপুট উইজেট ইনপুট ডেটার ধরন ইভেন্ট অবজেক্ট থেকে ইনপুট মান উদাহরণ মান
textInput stringInputs event.commonEventObject.formInputs.contactName.stringInputs.value[0] Kai O
selectionInput stringInputs প্রথম বা একমাত্র মান পেতে, event.commonEventObject.formInputs.contactType.stringInputs.value[0] Personal
dateTimePicker যেটি শুধুমাত্র তারিখগুলি গ্রহণ করে৷ dateInput event.commonEventObject.formInputs.contactBirthdate.dateInput.msSinceEpoch 1000425600000

অন্য কার্ডে ডেটা স্থানান্তর করুন

একজন ব্যবহারকারী একটি কার্ড থেকে তথ্য জমা দেওয়ার পরে, নিম্নলিখিতগুলির যেকোনো একটি করতে আপনাকে অতিরিক্ত কার্ড ফেরত দিতে হতে পারে:

  • স্বতন্ত্র বিভাগ তৈরি করে ব্যবহারকারীদের দীর্ঘ ফর্ম পূরণ করতে সাহায্য করুন।
  • ব্যবহারকারীদের প্রাকদর্শন এবং প্রাথমিক কার্ড থেকে তথ্য নিশ্চিত করতে দিন, যাতে তারা জমা দেওয়ার আগে তাদের উত্তর পর্যালোচনা করতে পারে।
  • ফর্মের অবশিষ্ট অংশগুলি গতিশীলভাবে পূরণ করুন৷ উদাহরণস্বরূপ, একটি অ্যাপয়েন্টমেন্ট তৈরি করার জন্য ব্যবহারকারীদের অনুরোধ করার জন্য, একটি চ্যাট অ্যাপ একটি প্রাথমিক কার্ড প্রদর্শন করতে পারে যা অ্যাপয়েন্টমেন্টের কারণ অনুরোধ করে এবং তারপরে অ্যাপয়েন্টমেন্টের প্রকারের উপর ভিত্তি করে উপলব্ধ সময় প্রদান করে এমন আরেকটি কার্ড তৈরি করে।

প্রাথমিক কার্ড থেকে ডেটা ইনপুট স্থানান্তর করতে, আপনি actionParameters সহ button উইজেট তৈরি করতে পারেন যাতে উইজেটের name এবং ব্যবহারকারীর ইনপুটগুলির মান থাকে, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

{
  "buttonList": { "buttons": [{
    "text": "Submit",
    "onClick": { "action": {
      "function": "submitForm",
      "parameters": [
        {
          "key": "WIDGET_NAME",
          "value": "USER_INPUT_VALUE"
        },
        // Can specify multiple parameters
      ]
    }}
  }]}
}

যেখানে WIDGET_NAME হল উইজেটের name এবং USER_INPUT_VALUE হল ব্যবহারকারী যা ইনপুট করে। উদাহরণস্বরূপ, একটি টেক্সট ইনপুট যা একজন ব্যক্তির নাম সংগ্রহ করে, উইজেটের নাম হল contactName এবং একটি উদাহরণ মান হল Kai O

যখন একজন ব্যবহারকারী বোতামে ক্লিক করেন, তখন আপনার চ্যাট অ্যাপ একটি ইভেন্ট অবজেক্ট পায় যেখান থেকে আপনি ডেটা গ্রহণ করতে পারেন।

একটি ফর্ম জমা সাড়া

একটি কার্ড বার্তা বা ডায়ালগ থেকে ডেটা পাওয়ার পরে, চ্যাট অ্যাপটি হয় প্রাপ্তি স্বীকার করে বা একটি ত্রুটি ফেরত দিয়ে প্রতিক্রিয়া জানায়।

নিম্নলিখিত উদাহরণে, একটি চ্যাট অ্যাপ একটি কার্ড মেসেজ থেকে জমা দেওয়া ফর্ম সফলভাবে পেয়েছে তা নিশ্চিত করতে একটি টেক্সট মেসেজ পাঠায়।

Node.js

/**
 * Google Cloud Function that handles all Google Workspace Add On events for
 * the contact manager app.
 *
 * @param {Object} req Request sent from Google Chat space
 * @param {Object} res Response to send back
 */
exports.contactManager = function contactManager(req, res) {
  const chatEvent = req.body.chat;
  const chatMessage = chatEvent.messagePayload.message;

  // Handle MESSAGE events
  if(chatEvent.messagePayload) {
    return res.send(handleMessage(chatMessage, chatEvent.user));
  // Handle CARD_CLICKED events
  } else if(chatEvent.buttonClickedPayload) {
    switch(req.body.commonEventObject.parameters.actionName) {
        case "openDialog":
            return res.send(openDialog());
        case "openNextCard":
            return res.send(openNextCard(req.body));
        case "submitForm":
            return res.send(submitForm(req.body));
    }
  }
};

/**
 * Submits information from a dialog or card message.
 *
 * @param {Object} event the interactive event with form inputs.
 * @return {Object} a message response that posts a private message.
 */
function submitForm(event) {
  const chatUser = event.chat.user;
  const contactName = event.commonEventObject.parameters["contactName"];

  return { hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
    privateMessageViewer: chatUser,
    text: "✅ " + contactName + " has been added to your contacts."
  }}}}};
}

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

/**
 * Sends private text message that confirms submission.
 *
 * @param {Object} event the interactive event with form inputs.
 * @return {Object} a message response that posts a private message.
 */
function submitForm(event) {
  const chatUser = event.chat.user;
  const contactName = event.commonEventObject.parameters["contactName"];

  return { hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
    privateMessageViewer: chatUser,
    text: "✅ " + contactName + " has been added to your contacts."
  }}}}};
}

একটি ডায়ালগ প্রক্রিয়া করতে এবং বন্ধ করতে, আপনি একটি RenderActions অবজেক্ট ফেরত দেন যা নির্দিষ্ট করে যে আপনি একটি নিশ্চিতকরণ বার্তা পাঠাতে চান, আসল বার্তা বা কার্ড আপডেট করতে চান, অথবা ডায়ালগটি বন্ধ করতে চান। পদক্ষেপের জন্য, একটি ডায়ালগ বন্ধ করুন দেখুন।

সমস্যা সমাধান

যখন একটি Google চ্যাট অ্যাপ বা কার্ড একটি ত্রুটি ফেরত দেয়, তখন চ্যাট ইন্টারফেস "কিছু ভুল হয়েছে" বলে একটি বার্তা দেখায়। অথবা "আপনার অনুরোধ প্রক্রিয়া করতে অক্ষম।" কখনও কখনও চ্যাট UI কোনও ত্রুটি বার্তা প্রদর্শন করে না, তবে চ্যাট অ্যাপ বা কার্ড একটি অপ্রত্যাশিত ফলাফল তৈরি করে; উদাহরণস্বরূপ, একটি কার্ড বার্তা প্রদর্শিত নাও হতে পারে৷

যদিও একটি ত্রুটি বার্তা চ্যাট UI-তে প্রদর্শিত নাও হতে পারে, বর্ণনামূলক ত্রুটি বার্তা এবং লগ ডেটা উপলব্ধ রয়েছে যাতে আপনি যখন চ্যাট অ্যাপগুলির জন্য ত্রুটি লগিং চালু থাকে তখন ত্রুটিগুলি ঠিক করতে সহায়তা করে৷ দেখা, ডিবাগিং এবং ত্রুটিগুলি সংশোধন করতে সহায়তার জন্য, Google Chat ত্রুটিগুলি সমস্যা সমাধান এবং ঠিক করুন দেখুন৷