একটি ইন্টারেক্টিভ Google Chat অ্যাপকে Google Workspace অ্যাড-অনে রূপান্তর করুন

আপনি যদি Google Chat অ্যাপ কুইকস্টার্ট- এর উপর ভিত্তি করে তৈরি কোনো অ্যাপের মতো Google Chat API ইন্টার‍্যাকশন ইভেন্ট ব্যবহার করে এমন একটি Google Chat অ্যাপ তৈরি ও প্রকাশ করে থাকেন, তাহলে এই পৃষ্ঠাটি দেখায় কীভাবে সেটিকে Google Chat-এর কার্যকারিতা সম্প্রসারণকারী একটি Google Workspace অ্যাড-অনে রূপান্তর করা যায়।

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

সীমাবদ্ধতা

রূপান্তর শুরু করার আগে, গুগল চ্যাটকে প্রসারিত করে এমন গুগল ওয়ার্কস্পেস অ্যাড-অনগুলির সীমাবদ্ধতা পর্যালোচনা করুন, যাতে আপনার গুগল চ্যাট অ্যাপটি অপরিহার্য কার্যকারিতা না হারিয়ে রূপান্তরিত হতে পারে।

ধাপ ১: আপনার বিদ্যমান গুগল চ্যাট অ্যাপ কোডটি কপি করুন।

রূপান্তর প্রক্রিয়ার জন্য কোডে পরিবর্তন প্রয়োজন। আপনার লাইভ গুগল চ্যাট অ্যাপে যাতে কোনো প্রভাব না পড়ে, সেজন্য আপনার কোডের একটি অনুলিপি তৈরি করুন এবং সেটিতে কাজ করুন।

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

  1. আপনার বিদ্যমান গুগল চ্যাট অ্যাপের গুগল অ্যাপস স্ক্রিপ্ট প্রজেক্টটি খুলুন।
  2. বাম দিকে, ওভারভিউ ক্লিক করুন।
  3. ডানদিকে, `Make a copy ক্লিক করুন।
  4. বাম দিকে, প্রজেক্ট ক্লিক করুন।
  5. Google Cloud প্রজেক্টের অধীনে, Change project-এ ক্লিক করুন।
  6. আপনার বিদ্যমান গুগল চ্যাট অ্যাপ প্রজেক্টের সাথে যুক্ত একই প্রজেক্ট নম্বরটি প্রবেশ করান।
  7. প্রজেক্ট সেট করুন -এ ক্লিক করুন।

HTTP

আপনার বিদ্যমান কোডবেসের একটি ফর্ক বা কপি তৈরি করুন এবং এটিকে আপনার লাইভ গুগল চ্যাট অ্যাপ থেকে আলাদা একটি নতুন সার্ভিস হিসেবে ডেপ্লয় করুন।

যদি আপনার অ্যাপটি গুগল ক্লাউডে ডেপ্লয় করা থাকে এবং গুগল ক্লাউড প্রজেক্টের সাথে যুক্ত ফিচারগুলোর (যেমন, ডিফল্ট অ্যাপ ইঞ্জিন আইডেন্টিটি) উপর নির্ভর করে, তাহলে নতুন কোডটি বিদ্যমান গুগল চ্যাট অ্যাপ প্রজেক্টের সাথে যুক্ত একটি সার্ভিসে ডেপ্লয় করা উচিত।

ধাপ ২: কপি করা কোডটি পরিবর্তন করুন

Google Workspace অ্যাড-অন, যা Google Chat-কে প্রসারিত করে, তা Chat API ইন্টারঅ্যাকশন ইভেন্ট দিয়ে তৈরি Google Chat অ্যাপের তুলনায় ভিন্ন অনুরোধ এবং প্রতিক্রিয়া কাঠামো ব্যবহার করে। অনুরোধ এবং প্রতিক্রিয়ার জন্য Google Chat API-এর Event এর পরিবর্তে Google Workspace অ্যাড-অন EventObject ব্যবহার করতে আপনাকে আপনার কোড আপডেট করতে হবে। আপনার কোড পরিবর্তন করতে কোড রূপান্তর নির্দেশিকা ব্যবহার করুন।

ধাপ ৩: পরীক্ষামূলক ব্যবহারকারীদের জন্য গুগল ওয়ার্কস্পেস অ্যাড-অন কনফিগারেশন সক্রিয় করুন

আপনার Google Chat অ্যাপের জন্য Google Workspace অ্যাড-অন সেটিংস কনফিগার করতে Google Cloud কনসোল ব্যবহার করুন:

  1. গুগল ক্লাউড কনসোলে গুগল চ্যাট এপিআই কনফিগারেশন পৃষ্ঠায় যান।

    গুগল চ্যাট এপিআই কনফিগারেশন পৃষ্ঠায় যান

  2. ইন্টারেক্টিভ ফিচারস-এর অধীনে, কনভার্ট টু অ্যাড-অন-এ ক্লিক করুন।

  3. অ্যাড-অন কনফিগারেশন সেটিংস চালু করুন

  4. ভিজিবিলিটি সেকশনে আপনার টেস্ট ইউজারদের ইমেল অ্যাড্রেসগুলো যোগ করুন।

  5. প্রয়োজন হলে, ধাপ ২ থেকে আপনার কপি করা ও পরিবর্তন করা গুগল চ্যাট অ্যাপ কোডের ডিপ্লয়মেন্ট এন্ডপয়েন্ট ইউআরএল অথবা অ্যাপস স্ক্রিপ্ট ডিপ্লয়মেন্ট আইডি দিয়ে কানেকশন সেটিংস আপডেট করুন।

  6. সংরক্ষণ করুন এবং পরীক্ষা করুন

ধাপ ৪: রূপান্তরিত অ্যাপটি পরীক্ষা করুন

ধাপ ৩-এ কনফিগার করা টেস্ট ইউজার অ্যাকাউন্টগুলো ব্যবহার করে গুগল ওয়ার্কস্পেস অ্যাড-অনটির কার্যকারিতা পুঙ্খানুপুঙ্খভাবে পরীক্ষা করুন। সমস্ত ফিচার এবং ইন্টারঅ্যাকশন যাচাই করুন।

ধাপ ৫: সকল ব্যবহারকারীর জন্য রূপান্তরটি সম্পন্ন করুন।

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

  1. গুগল ক্লাউড কনসোলে গুগল চ্যাট এপিআই কনফিগারেশন পৃষ্ঠায় যান।

    গুগল চ্যাট এপিআই কনফিগারেশন পৃষ্ঠায় যান

  2. ইন্টারেক্টিভ ফিচারস- এর অধীনে, কনভার্ট টু অ্যাড-অন-এ ক্লিক করুন। একটি সাইড প্যানেল খুলে যাবে।

  3. সাইড প্যানেলে, ‘Convert to add-on’- এ ক্লিক করুন।

  4. আপনার প্রজেক্ট আইডি টাইপ করুন এবং কনভার্ট-এ ক্লিক করুন।

আপনার গুগল চ্যাট অ্যাপটি এখন একটি গুগল ওয়ার্কস্পেস অ্যাড-অন, যা গুগল চ্যাটের কার্যকারিতা আরও বাড়িয়ে তোলে।

ঐচ্ছিক: অব্যবহৃত গুগল ক্লাউড রিসোর্স পরিষ্কার করুন বা মুক্ত করুন।

ঐচ্ছিকভাবে, আপনার গুগল চ্যাট অ্যাপটিকে গুগল ওয়ার্কস্পেস অ্যাড-অন-এ রূপান্তর করার পরে, অব্যবহৃত রিসোর্সগুলোর জন্য আপনার গুগল ক্লাউড অ্যাকাউন্টে চার্জ হওয়া এড়াতে, সেগুলোকে বন্ধ করে দেওয়ার কথা বিবেচনা করতে পারেন।

কোড রূপান্তর নির্দেশিকা

এই বিভাগে গুগল চ্যাট এপিআই ইন্টারঅ্যাকশন Event ফরম্যাট এবং গুগল ওয়ার্কস্পেস অ্যাড-অন EventObject ফরম্যাটের মধ্যেকার ম্যাপিং বিস্তারিতভাবে বর্ণনা করা হয়েছে।

অনুরোধ ম্যাপিং

নিম্নলিখিত সারণীতে দেখানো হয়েছে কিভাবে গুগল চ্যাট এপিআই Event ফিল্ডগুলি গুগল ওয়ার্কস্পেস অ্যাড-অন EventObject -এর সংশ্লিষ্ট ফিল্ডগুলির সাথে ম্যাপ করা হয়।

গুগল চ্যাট এপিআই ইন্টারঅ্যাকশন Event ফিল্ড গুগল ওয়ার্কস্পেস অ্যাড-অন EventObject ফিল্ড নোট
action.actionMethodName প্রযোজ্য নয় কার্ডের সাথে ইন্টারঅ্যাকশনের জন্য, commonEventObject.parameters এ মেথডের নামটি একটি প্যারামিটার হিসেবে পাস করা যেতে পারে। একটি প্রাথমিক ডায়ালগ খুলুন দেখুন।
action.parameters commonEventObject.parameters
appCommandMetadata chat.appCommandPayload.appCommandMetadata
common commonEventObject
configCompleteRedirectUrl
  • chat.appCommandPayload.configCompleteRedirectUri
  • chat.addedToSpacePayload.configCompleteRedirectUri
  • chat.messagePayload.configCompleteRedirectUri
ইভেন্টের প্রকারভেদের উপর নির্ভর করে এটি বিভিন্ন পেলোডে উপলব্ধ থাকে।
dialogEventType
  • chat.appCommandPayload.dialogEventType
  • chat.buttonClickedPayload.dialogEventType
ইভেন্টের প্রকারভেদের উপর নির্ভর করে এটি বিভিন্ন পেলোডে উপলব্ধ থাকে।
eventTime chat.eventTime
isDialogEvent
  • chat.appCommandPayload.isDialogEvent
  • chat.buttonClickedPayload.isDialogEvent
ইভেন্টের প্রকারভেদের উপর নির্ভর করে এটি বিভিন্ন পেলোডে উপলব্ধ থাকে।
message
  • chat.messagePayload.message
  • chat.buttonClickedPayload.message
  • chat.appCommandPayload.message
ইভেন্টের প্রকারভেদের উপর নির্ভর করে এটি বিভিন্ন পেলোডে উপলব্ধ থাকে।
space
  • chat.messagePayload.space
  • chat.addedToSpacePayload.space
  • chat.removedFromSpacePayload.space
  • chat.buttonClickedPayload.space
  • chat.widgetUpdatedPayload.space
  • chat.appCommandPayload.space
thread
  • chat.messagePayload.message.thread
  • chat.buttonClickedPayload.message.thread
  • chat.appCommandPayload.message.thread
ইভেন্টের প্রকারভেদের উপর নির্ভর করে এটি বিভিন্ন পেলোডে উপলব্ধ থাকে।
threadKey
  • chat.messagePayload.message.thread.threadKey
  • chat.buttonClickedPayload.message.thread.threadKey
  • chat.appCommandPayload.message.threadKey
ইভেন্টের প্রকারভেদের উপর নির্ভর করে এটি বিভিন্ন পেলোডে উপলব্ধ থাকে।
token প্রযোজ্য নয় যাচাইকরণ ভিন্নভাবে পরিচালিত হয়, দেখুন HTTP অ্যাপের জন্য অনুরোধ যাচাইকরণ
type প্রযোজ্য নয় ট্রিগার থেকে ইভেন্টের ধরণ অনুমান করা যায়।
user chat.user

ব্যবহারের ক্ষেত্র অনুযায়ী অনুরোধের ম্যাপিং

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

ব্যবহারের ক্ষেত্র চ্যাট এপিআই ইন্টারঅ্যাকশন Event পেলোড গুগল ওয়ার্কস্পেস অ্যাড-অন EventObject পেলোড
অ্যাপটি স্পেসে যোগ করা হয়েছে
{
  "type": "ADDED_TO_SPACE",
  "space": { ... }
}
{
  "chat": {
    "addedToSpacePayload": {
      "space": { ... }
    }
  }
}
স্থান থেকে অ্যাপটি সরান
{
  "type": "REMOVED_FROM_SPACE",
  "space": { ... }
}
{
  "chat": {
    "removedFromSpacePayload": {
      "space": { ... }
    }
  }
}
ব্যবহারকারী একটি অ্যাপকে @-মেনশন করে
{
  "type": "MESSAGE",
  "message": { ... },
  "space": { ... },
  "configCompleteRedirectUrl": "..."
}
{
  "chat": {
    "messagePayload": {
      "message": { ... },
      "space": { ... },
      "configCompleteRedirectUri": "..."
    }
  }
}
ব্যবহারকারী কোনো অ্যাপকে স্পেসে যুক্ত করার জন্য সেটিকে @-মেনশন করেন। আপনাকে গুগল চ্যাট থেকে আসা একটি অনুরোধ পরিচালনা করতে হবে:
{
  "type": "ADDED_TO_SPACE",
  "space": { ... },
  "message": { ... }
}
আপনাকে গুগল চ্যাট থেকে আসা দুটি অনুরোধের উত্তর দিতে হবে।

প্রথম অনুরোধ:
{
  "chat": {
    "addedToSpacePayload": {
      "space": { ... },
      "interactionAdd": true
    }
  }
}

দ্বিতীয় অনুরোধ:
{
  "chat": {
    "messagePayload": {
      "message": { ... },
      "space": { ... }
    }
  }
}
স্ল্যাশ কমান্ড
{
  "type": "MESSAGE",
  "message": { "slashCommand": { ... } },
  "space": { ... }
}
{
  "chat": {
    "appCommandPayload": {
      "message": { ... },
      "space": { ... },
      "appCommandMetadata": { ... }
    }
  }
}
স্পেসে একটি অ্যাপ যোগ করার জন্য স্ল্যাশ কমান্ড ব্যবহার করুন। আপনাকে গুগল চ্যাট থেকে আসা একটি অনুরোধ পরিচালনা করতে হবে:
{
  "type": "ADDED_TO_SPACE",
  "space": { ... },
  "message": { "slashCommand": { ... } }
}
আপনাকে গুগল চ্যাট থেকে আসা দুটি অনুরোধের উত্তর দিতে হবে।

প্রথম অনুরোধ:
{
  "chat": {
    "addedToSpacePayload": {
      "space": { ... },
      "interactionAdd": true
    }
  }
}

দ্বিতীয় অনুরোধ:
{
  "chat": {
    "appCommandPayload": {
      "message": { ... },
      "space": { ... },
      "appCommandMetadata": { ... }
    }
  }
}
User clicks a button on a card or dialog
{
  "type": "CARD_CLICKED",
  "common": { ... },
  "space": { ... },
  "message": { ... },
  "isDialogEvent": "...",
  "dialogEventType": "..."
}

ডায়ালগ ইভেন্টের জন্য, common.formInputs উইজেটের মান থাকে। গুগল অ্যাপস স্ক্রিপ্টের উদাহরণ:

{
  "type": "CARD_CLICKED",
  "common": {
   "formInputs": {
    "contactName": {
      "": { "stringInputs": { "value": ["Kai 0"] }}
    }
  }
  },
  "space": { ... },
  "message": { ... },
  "isDialogEvent": true,
  "dialogEventType": "..."
}
{
  "commonEventObject": { ... },
  "chat": {
    "buttonClickedPayload": {
      "message": { ... },
      "space": { ... },
      "isDialogEvent": "...",
      "dialogEventType": "..."
    }
  }
}

ডায়ালগ ইভেন্টের ক্ষেত্রে, commonEventObject.formInputs এ উইজেটের মানগুলো থাকে। গুগল অ্যাপস স্ক্রিপ্টের উদাহরণ:

{
  "commonEventObject": {
     "formInputs": {
      "contactName": {
        "stringInputs": {
          "value": ["Kai 0"]
        }
      }
    }
  },
  "chat": {
    "buttonClickedPayload": {
      "message": { ... },
      "space": { ... },
      "isDialogEvent": "true",
      "dialogEventType": "..."
    }
  }
}
ব্যবহারকারী একটি অ্যাপ হোম কার্ডে তথ্য জমা দেন
{
  "type": "SUBMIT_FORM",
  "common": { ... },
  "space": { ... },
  "message": { ... },
  "isDialogEvent": "...",
  "dialogEventType": "..."
}
{
  "commonEventObject": { ... },
  "chat": {
    "buttonClickedPayload": {
      "message": { ... },
      "space": { ... },
      "isDialogEvent": "...",
      "dialogEventType": "SUBMIT_DIALOG"
    }
  }
}
ব্যবহারকারী কুইক কমান্ড ব্যবহার করে একটি অ্যাপ কমান্ড চালু করেন।
{
  "type": "APP_COMMAND",
  "space": { ... },
  "isDialogEvent": "...",
  "dialogEventType": "..."
}
{
  "chat": {
    "appCommandPayload": {
      "message": { ... },
      "space": { ... },
      "appCommandMetadata": { ... }
    }
  }
}
লিঙ্ক প্রিভিউ
{
  "type": "MESSAGE",
  "message": {
    "matchedUrl": "..."
  },
  "space": { ... }
}
{
  "chat": {
    "messagePayload": {
      "message": {
        "matchedUrl": "..."
      },
      "space": { ... }
    }
  }
}
ব্যবহারকারী একটি কার্ড বার্তা বা ডায়ালগে একটি উইজেট আপডেট করেন।
{
  "type": "WIDGET_UPDATED",
  "space": { ... },
  "common": { ... }
}
{
  "commonEventObject": { ... },
  "chat": {
    "widgetUpdatedPayload": {
      "space": { ... }
    }
  }
}

ব্যবহারের ক্ষেত্র অনুযায়ী প্রতিক্রিয়া ম্যাপিং

গুগল চ্যাটকে সম্প্রসারিত করে এমন গুগল ওয়ার্কস্পেস অ্যাড-অনগুলো Message অবজেক্টের পরিবর্তে অ্যাকশন ফেরত দেয়। নিচের সারণিতে গুগল চ্যাট এপিআই Message রেসপন্স টাইপগুলোর সাথে তাদের সমতুল্য গুগল ওয়ার্কস্পেস অ্যাড-অন অ্যাকশনগুলোর একটি বিন্যাস দেখানো হয়েছে।

ব্যবহারের ক্ষেত্র গুগল চ্যাট এপিআই Message প্রতিক্রিয়া গুগল ওয়ার্কস্পেস অ্যাড-অন চ্যাট অ্যাকশন প্রতিক্রিয়া
আহ্বান করা স্থানে একটি বার্তা তৈরি করুন
{
  "actionResponse": {
    "type": "NEW_MESSAGE"
  },
  "text": "..."
}

actionResponse ঐচ্ছিক। আরও জানতে, “Respond to a slash command” দেখুন।

{
  "hostAppDataAction": {
    "chatDataAction": {
      "createMessageAction": {
        "message": {
          "text": "..."
         }
       }
    }
  }
}

আরও জানতে, ‘বার্তা পাঠান’ দেখুন।

একটি বার্তা আপডেট করুন
{
 "actionResponse": {
  "type": "UPDATE_MESSAGE"
  },
 "text": "..."
}

আরও জানতে, বার্তা আপডেট করুন (চ্যাট) দেখুন।

{
  "hostAppDataAction": {
    "chatDataAction": {
      "updateMessageAction": {
        "message": {
          "text": "..."
         }
       }
    }
  }
}

আরও জানতে, ‘একটি বার্তা আপডেট করুন (অ্যাড-অন)’ দেখুন।

লিঙ্ক প্রিভিউ
{
  "actionResponse": {
    "type": "UPDATE_USER_MESSAGE_CARDS"
  },
  "cardsV2": [{ ... }]
}

আরও জানতে, প্রিভিউ লিঙ্ক (চ্যাট) দেখুন।

{
  "hostAppDataAction": {
    "chatDataAction": {
      "updateInlinePreviewAction": {
        "cardsV2": [{ ... }]
      }
    }
  }
}

আরও জানতে, লিঙ্কের প্রিভিউ (অ্যাড-অন) দেখুন।

একটি প্রাথমিক সংলাপ শুরু করুন
{
  "actionResponse": {
    "type": "DIALOG",
    "dialogAction": {
      "dialog": {
        "body": { /* Card object */ }
      }
    }
  }
}

আরও জানতে, ওপেন এ ডায়ালগ (চ্যাট) দেখুন।

{
  "action": {
    "navigations": [{
      "pushCard": { /* Card object */ }
     }]
   }
}

আপনি যে কার্ডটি পুশ করেন তাতে onClick অ্যাকশন সহ উইজেট থাকতে পারে। HTTP Google Workspace অ্যাড-অনগুলির জন্য, এই অ্যাকশনগুলিকে একটি ফাংশন এন্ডপয়েন্ট কল করার জন্য কনফিগার করুন:
{
  "onClick": {
    "action": {
      "function": "https://...",
      "parameters": [{
        "key": "clickedButton",
        "value": "submit"
      }]
    }
  }
}

আরও জানতে, ওপেন আ ডায়ালগ (অ্যাড-অনস) দেখুন।

একটি ডায়ালগ বন্ধ করুন
{
  "actionResponse": {
    "type": "DIALOG",
    "dialogAction": {
      "actionStatus": {
        "userFacingMessage": "..."
      }
    }
  }
}

আরও জানতে, একটি ডায়ালগ (চ্যাট) বন্ধ করুন দেখুন।

{
  "action": {
    "navigations": [{
      "endNavigation": "CLOSE_DIALOG"
    }],
    "notification": { "text": "..."}
  }
}

আরও জানতে, ‘একটি ডায়ালগ বন্ধ করুন (অ্যাড-অন)’ দেখুন।

বাহ্যিক সিস্টেমের সাথে সংযোগ করুন (কনফিগারেশন অনুরোধ করুন)
{
  "actionResponse": {
    "type": "REQUEST_CONFIG",
    "url": "..."
  }
}

আরও জানতে, বাহ্যিক সিস্টেমের সাথে সংযোগ দেখুন।

{
  "basic_authorization_prompt": {
    "authorization_url": "...",
    "resource": "..."
  }
}

আরও জানতে, আপনার Google Workspace অ্যাড-অনকে একটি তৃতীয়-পক্ষ পরিষেবার সাথে সংযুক্ত করুন দেখুন।

ইন্টারেক্টিভ উইজেটগুলিতে আইটেমগুলি স্বয়ংক্রিয়ভাবে পূরণ করুন
{
  "actionResponse": {
    "type": "UPDATE_WIDGET",
    "updatedWidget": {
      "suggestions": {
        "items": ["..."]
      },
      "widget": "widget_id"
    }
  }
}

আরও জানতে, ‘Add a multiselect menu’ দেখুন।

{
  "action": {
    "modifyOperations": [{
      "updateWidget": {
        "widgetId": "widget_id",
        "selectionInputWidgetSuggestions": {
          "suggestions": ["..."]
        }
      }
    }]
  }
}

আরও জানতে, গুগল চ্যাট ব্যবহারকারীদের কাছ থেকে তথ্য সংগ্রহ ও প্রক্রিয়াকরণ দেখুন।

রূপান্তরের আগে তৈরি করা বার্তাগুলিতে কার্ডের মিথস্ক্রিয়া পরিচালনা করুন।

যখন আপনি একটি HTTP গুগল চ্যাট অ্যাপকে গুগল ওয়ার্কস্পেস অ্যাড-অনে রূপান্তর করেন, তখন রূপান্তরের আগে তৈরি করা মেসেজের কার্ড ইন্টারঅ্যাকশনগুলোর জন্য বিশেষ ব্যবস্থাপনার প্রয়োজন হয়। অ্যাড-অনগুলো একটি কার্ডের action.function এর জন্য সম্পূর্ণ HTTP URL ব্যবহার করে, অন্যদিকে গুগল চ্যাট এপিআই ইন্টারঅ্যাকশন ইভেন্ট দিয়ে তৈরি চ্যাট অ্যাপগুলো একটি ফাংশনের নাম ব্যবহার করে। নিচের সারণিতে এই পার্থক্যগুলো সংক্ষেপে তুলে ধরা হলো।

গুগল চ্যাট এপিআই ইন্টারঅ্যাকশন ইভেন্ট ব্যবহার করে তৈরি গুগল চ্যাট অ্যাপ গুগল ওয়ার্কস্পেস অ্যাড-অন যা গুগল চ্যাটকে আরও উন্নত করে
কনফিগারেশন আপনি গুগল ক্লাউড কনসোলে সমস্ত ইভেন্টের জন্য একটি একক এন্ডপয়েন্ট কনফিগার করেন। কার্ড ইন্টারঅ্যাকশন বাস্তবায়নের সময়, একটি কার্ডের action শুধুমাত্র কার্যকর করার জন্য ফাংশনের নামটি থাকে। কার্ড ক্লিক ইভেন্টের জন্য সাধারণ HTTP এন্ডপয়েন্টটি কল করা হয়।

আরও জানতে, ওপেন এ ডায়ালগ (চ্যাট) দেখুন।



{
  "onClick": {
    "action": {
      "function": "submit"
    }
  }
}
আপনি চাইলে গুগল ক্লাউড কনসোলে প্রতিটি ইভেন্টের জন্য আলাদা এন্ডপয়েন্ট কনফিগার করতে পারেন, কিন্তু এর মধ্যে কার্ড ক্লিক ইভেন্ট অন্তর্ভুক্ত নয়। কার্ড ইন্টারঅ্যাকশন প্রয়োগ করার সময়, একটি কার্ডের action অবশ্যই কল করার জন্য HTTP এন্ডপয়েন্টের সম্পূর্ণ URL থাকতে হবে। আপনি প্রতিটি বাটনের জন্য একটি স্বতন্ত্র HTTP এন্ডপয়েন্ট সেট করতে পারেন, অথবা একটি সাধারণ এন্ডপয়েন্ট ব্যবহার করে action.parameters এ অ্যাকশনটিকে একটি প্যারামিটার হিসেবে পাস করতে পারেন।

আরও জানতে, ওপেন আ ডায়ালগ (অ্যাড-অনস) দেখুন।



{
  "onClick": {
    "action": {
      "function": "https://...",
      "parameters": [{
        "key": "method",
        "value": "submit"
      }]
    }
  }
}

রূপান্তরের আগে তৈরি করা বার্তাগুলির জন্য কার্ড ইন্টারঅ্যাকশন কার্যকর রাখতে, Google Chat API কনফিগারেশন পৃষ্ঠায় একটি কার্ড ইন্টারঅ্যাকশন URL সেট করুন।

এই URL-টি শুধুমাত্র আপনার অ্যাপ রূপান্তর করার আগে তৈরি করা বার্তাগুলির ইন্টারঅ্যাকশনের জন্য ব্যবহৃত হয়। যখন কোনো ব্যবহারকারী এই বার্তাগুলির একটির সাথে ইন্টারঅ্যাক্ট করেন, তখন মূল action.function ভ্যালুটি __action_method_name__ নামক একটি প্যারামিটার হিসেবে পাস করা হয়।

উদাহরণ: কার্ড ক্লিক

যদি আপনি কার্ড ইন্টারঅ্যাকশন ইউআরএলটি https://.../card-interaction-handler হিসেবে কনফিগার করে থাকেন, এবং কোনো ব্যবহারকারী নিম্নলিখিত অ্যাকশনসহ একটি ঐতিহাসিক মেসেজের কার্ডে ক্লিক করেন:

{
  "onClick": {
    "action": {
     "function": "submit"
    }
  }
}

আপনার কনফিগার করা কার্ড ইন্টারঅ্যাকশন ইউআরএল- এ নিম্নলিখিত ফরম্যাটে একটি ইভেন্ট পাঠানো হয়:

{
  "commonEventObject": {
    "parameters": {
      "__action_method_name__": "submit"
    }
  },
  "chat": {
    "buttonClickedPayload": { ... }
  }
}

উদাহরণ: একাধিক নির্বাচন মেনু

যদি কোনো ব্যবহারকারী একটি বাহ্যিক ডেটা উৎস সহ একটি মাল্টি-সিলেক্ট মেনুর সাথে ইন্টারঅ্যাক্ট করে:

{
  "selectionInput": {
    "name": "contacts",
    "type": "MULTI_SELECT",
    "externalDataSource": {
      "function": "getContacts"
    }
  }
}

আপনার কনফিগার করা কার্ড ইন্টারঅ্যাকশন ইউআরএল- এ নিম্নলিখিত ফরম্যাটে একটি ইভেন্ট পাঠানো হয়:

{
  "commonEventObject": {
    "parameters": {
      "__action_method_name__": "getContacts",
    }
  },
  "chat": {
    "widgetUpdatedPayload": { ... }
  }
}

আপনি যদি আপনার HTTP ট্রিগারগুলির জন্য ‘Use common HTTP endpoint url for all triggers’ বিকল্পটি চালু করেন, তাহলে ‘Button Clicked ’ ইভেন্টগুলির জন্যও সেই সাধারণ URL-টিই ব্যবহৃত হবে।

HTTP Google Workspace অ্যাড-অনগুলির জন্য অনুরোধগুলি যাচাই করুন যা চ্যাটকে প্রসারিত করে

HTTP-ভিত্তিক গুগল চ্যাট অ্যাপগুলোকে গুগল ওয়ার্কস্পেস অ্যাড-অনে রূপান্তর করার সময়, অনুরোধগুলো গুগল থেকেই আসছে কিনা তা যাচাই করার লজিকটি আপডেট করতে হবে।

অনুরোধ যাচাইকরণের প্রধান পার্থক্যগুলো হলো:

অ্যাপের ধরন সমর্থিত দর্শক পরিষেবা অ্যাকাউন্টের ইমেল
গুগল চ্যাট এপিআই ইন্টারঅ্যাকশন ইভেন্ট ব্যবহার করে তৈরি গুগল চ্যাট অ্যাপ প্রকল্প নম্বর chat@system.gserviceaccount.com
গুগল চ্যাটের সম্প্রসারণকারী গুগল ওয়ার্কস্পেস অ্যাড-অন শুধুমাত্র HTTP এন্ডপয়েন্ট প্রকল্প-ভিত্তিক পরিষেবা অ্যাকাউন্টের ইমেল

আপনার Google Workspace অ্যাড-অনের জন্য স্বতন্ত্র সার্ভিস অ্যাকাউন্ট ইমেলটি Google Cloud কনসোলের Google Chat API কনফিগারেশন পৃষ্ঠার 'Convert to Google Workspace add-ons' বিভাগে পাওয়া যাবে।

আপনার আপগ্রেড করা Google Workspace অ্যাড-অনে অনুরোধগুলি যাচাই করতে:

  1. ক্লাউড রান ফাংশন ব্যবহার করলে, প্রতি-অ্যাডঅন পরিষেবা অ্যাকাউন্টকে roles/cloudfunctions.invoker রোলটি প্রদান করুন। IAM-এর মাধ্যমে অ্যাক্সেস অনুমোদন দেখুন।
  2. বেয়ারার টোকেনের স্বাক্ষর যাচাই করার জন্য Google Workspace অ্যাড-অন পরিষেবা অ্যাকাউন্টের ইমেল ব্যবহার করতে আপনার টোকেন যাচাইকরণ কোডটি আপডেট করুন। Google থেকে আসা অনুরোধগুলি যাচাই করুন দেখুন।