Google Chat-এ পরিচিতি সংগ্রহ ও পরিচালনা করুন

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

কর্মরত চ্যাট অ্যাপ দেখুন:

  • স্ল্যাশ কমান্ড থেকে যোগাযোগ ফর্ম.
    চিত্র 1. চ্যাট অ্যাপটি একটি টেক্সট বার্তা এবং বোতামের সাহায্যে স্ল্যাশ /about প্রতিক্রিয়া জানায় যা একটি যোগাযোগ ফর্ম খোলে।
  • একটি ডায়ালগে যোগাযোগ ফর্ম.
    চিত্র 2. চ্যাট অ্যাপটি একটি ডায়ালগ খোলে যেখানে ব্যবহারকারীরা একটি পরিচিতি সম্পর্কে তথ্য ইনপুট করতে পারে।
  • নিশ্চিত করুন এবং ডায়ালগ পর্যালোচনা করুন.
    চিত্র 3. চ্যাট অ্যাপটি একটি নিশ্চিতকরণ ডায়ালগ প্রদান করে যাতে ব্যবহারকারীরা জমা দেওয়ার আগে তথ্য পর্যালোচনা এবং নিশ্চিত করতে পারেন।
  • একটি পাঠ্য বার্তা যা নতুন পরিচিতি নিশ্চিত করে৷
    চিত্র 4. ব্যবহারকারী ফর্ম জমা দেওয়ার পরে, চ্যাট অ্যাপ জমা নিশ্চিত করার জন্য একটি ব্যক্তিগত টেক্সট বার্তা পাঠায়।
  • একটি কার্ড বার্তা থেকে যোগাযোগ ফর্ম.
    চিত্র 5. চ্যাট অ্যাপটি ব্যবহারকারীদের একটি বার্তায় একটি কার্ড থেকে একটি পরিচিতি যোগ করতেও অনুরোধ করে৷

পূর্বশর্ত

  • Google Chat অ্যাক্সেস সহ একটি ব্যবসা বা এন্টারপ্রাইজ Google Workspace অ্যাকাউন্ট।

উদ্দেশ্য

স্থাপত্য

চ্যাট অ্যাপটি Google Apps স্ক্রিপ্টে তৈরি করা হয়েছে এবং চ্যাট ব্যবহারকারীদের প্রক্রিয়া ও প্রতিক্রিয়া জানাতে ইন্টারঅ্যাকশন ইভেন্ট ব্যবহার করে।

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

  1. একজন ব্যবহারকারী চ্যাট অ্যাপের মাধ্যমে একটি সরাসরি বার্তা খোলেন, বা একটি বিদ্যমান স্পেসে চ্যাট অ্যাপ যোগ করেন।

  2. চ্যাট অ্যাপ ব্যবহারকারীকে card অবজেক্ট হিসাবে একটি পরিচিতি ফর্ম তৈরি এবং প্রদর্শন করে একটি পরিচিতি যোগ করার জন্য অনুরোধ করে। যোগাযোগের ফর্ম উপস্থাপন করতে, চ্যাট অ্যাপ নিম্নলিখিত উপায়ে ব্যবহারকারীদের প্রতিক্রিয়া জানায়:

    • যোগাযোগের ফর্ম ধারণ করে এমন একটি কার্ড বার্তা সহ @উল্লেখ এবং সরাসরি বার্তাগুলির প্রতিক্রিয়া জানায়৷
    • যোগাযোগ ফর্মের সাথে একটি ডায়ালগ খোলার মাধ্যমে স্ল্যাশ কমান্ড /addContact এর প্রতিক্রিয়া জানায়।
    • একটি টেক্সট বার্তার সাথে স্ল্যাশ কমান্ডের প্রতিক্রিয়া /about যেটিতে একটি যোগাযোগ বাটন রয়েছে যা ব্যবহারকারীরা যোগাযোগ ফর্মের সাথে একটি ডায়ালগ খুলতে ক্লিক করতে পারে।
  3. যোগাযোগ ফর্মের সাথে উপস্থাপিত হলে, ব্যবহারকারী নিম্নলিখিত ক্ষেত্র এবং উইজেটগুলিতে যোগাযোগের তথ্য ইনপুট করে:

    • প্রথম এবং শেষ নাম : একটি textInput উইজেট যা স্ট্রিং গ্রহণ করে।
    • জন্মতারিখ : একটি dateTimePicker উইজেট যা শুধুমাত্র তারিখগুলি গ্রহণ করে৷
    • যোগাযোগের ধরন : রেডিও বোতামগুলির একটি selectionInput উইজেট যা ব্যবহারকারীদের একটি একক স্ট্রিং মান নির্বাচন এবং জমা দিতে দেয় (হয় Personal বা Work )।
    • রিভিউ এবং সাবমিট বোতাম: button উইজেট সহ একটি buttonList অ্যারে যা ব্যবহারকারী তাদের ইনপুট করা মানগুলি জমা দিতে ক্লিক করে।
  4. Google Chat অ্যাপ ব্যবহারকারীর ইনপুট করা মানগুলি প্রক্রিয়া করার জন্য একটি CARD_CLICKED ইন্টারঅ্যাকশন ইভেন্ট পরিচালনা করে এবং একটি নিশ্চিতকরণ কার্ডে মানগুলি প্রদর্শন করে।

  5. ব্যবহারকারী নিশ্চিতকরণ কার্ড পর্যালোচনা করে এবং যোগাযোগের তথ্য চূড়ান্ত করতে জমা বোতামে ক্লিক করে।

  6. Google Chat অ্যাপটি একটি ব্যক্তিগত টেক্সট মেসেজ পাঠায় যা জমা দেওয়ার বিষয়টি নিশ্চিত করে।

পরিবেশ প্রস্তুত করুন

এই বিভাগটি দেখায় কিভাবে চ্যাট অ্যাপের জন্য একটি Google ক্লাউড প্রকল্প তৈরি এবং কনফিগার করতে হয়।

একটি Google ক্লাউড প্রকল্প তৈরি করুন

গুগল ক্লাউড কনসোল

  1. Google ক্লাউড কনসোলে, মেনু > IAM & Admin > Create a Project এ যান।

    একটি প্রকল্প তৈরি করুন এ যান

  2. প্রকল্পের নাম ক্ষেত্রে, আপনার প্রকল্পের জন্য একটি বর্ণনামূলক নাম লিখুন।

    ঐচ্ছিক: প্রকল্প আইডি সম্পাদনা করতে, সম্পাদনা ক্লিক করুন। প্রোজেক্ট তৈরি হওয়ার পর প্রোজেক্ট আইডি পরিবর্তন করা যাবে না, তাই এমন একটি আইডি বেছে নিন যা প্রোজেক্টের জীবনকালের জন্য আপনার চাহিদা পূরণ করে।

  3. অবস্থান ক্ষেত্রে, আপনার প্রকল্পের সম্ভাব্য অবস্থানগুলি প্রদর্শন করতে ব্রাউজ ক্লিক করুন। তারপর, নির্বাচন ক্লিক করুন.
  4. তৈরি করুন ক্লিক করুন। Google ক্লাউড কনসোল ড্যাশবোর্ড পৃষ্ঠায় নেভিগেট করে এবং আপনার প্রকল্পটি কয়েক মিনিটের মধ্যে তৈরি হয়।

জিক্লাউড সিএলআই

নিম্নলিখিত উন্নয়ন পরিবেশগুলির মধ্যে একটিতে, Google ক্লাউড CLI ( gcloud ) অ্যাক্সেস করুন :

  • ক্লাউড শেল : ইতিমধ্যেই সেট আপ করা gcloud CLI সহ একটি অনলাইন টার্মিনাল ব্যবহার করতে, ক্লাউড শেল সক্রিয় করুন।
    ক্লাউড শেল সক্রিয় করুন
  • স্থানীয় শেল : একটি স্থানীয় উন্নয়ন পরিবেশ ব্যবহার করতে, gcloud CLI ইনস্টল এবং আরম্ভ করুন
    একটি ক্লাউড প্রকল্প তৈরি করতে, gcloud projects create কমান্ড ব্যবহার করুন:
    gcloud projects create PROJECT_ID
    আপনি যে প্রকল্পটি তৈরি করতে চান তার জন্য ID সেট করে PROJECT_ID প্রতিস্থাপন করুন।

প্রমাণীকরণ এবং অনুমোদন সেট আপ করুন

Google Chat অ্যাপগুলির জন্য আপনাকে একটি OAuth সম্মতি স্ক্রিন কনফিগার করতে হবে যাতে ব্যবহারকারীরা Google Chat সহ Google Workspace অ্যাপ্লিকেশনগুলিতে আপনার অ্যাপ অনুমোদন করতে পারেন।

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

  1. Google ক্লাউড কনসোলে, মেনু > API এবং পরিষেবা > OAuth সম্মতি স্ক্রীনে যান।

    OAuth সম্মতি স্ক্রিনে যান

  2. ব্যবহারকারীর প্রকারের অধীনে, অভ্যন্তরীণ নির্বাচন করুন, তারপরে তৈরি করুন ক্লিক করুন।

  3. অ্যাপের নামে , Contact Manager টাইপ করুন।

  4. ব্যবহারকারী সমর্থন ইমেলে , আপনার ইমেল ঠিকানা বা একটি উপযুক্ত Google গ্রুপ নির্বাচন করুন।

  5. বিকাশকারীর যোগাযোগের তথ্যের অধীনে, আপনার ইমেল ঠিকানা লিখুন।

  6. সংরক্ষণ করুন এবং চালিয়ে যান ক্লিক করুন।

  7. স্কোপ পৃষ্ঠায়, সংরক্ষণ করুন এবং চালিয়ে যান ক্লিক করুন। (চ্যাট অ্যাপের কোনো OAuth স্কোপের প্রয়োজন নেই।)

  8. সারাংশ পর্যালোচনা করুন, এবং তারপর ড্যাশবোর্ডে ফিরে যান ক্লিক করুন।

চ্যাট অ্যাপ তৈরি করুন এবং স্থাপন করুন

নিম্নলিখিত বিভাগে, আপনি একটি সম্পূর্ণ অ্যাপস স্ক্রিপ্ট প্রকল্প কপি এবং আপডেট করুন যাতে আপনার চ্যাট অ্যাপের জন্য প্রয়োজনীয় সমস্ত অ্যাপ্লিকেশন কোড রয়েছে, তাই প্রতিটি ফাইল কপি এবং পেস্ট করার প্রয়োজন নেই।

ঐচ্ছিকভাবে, আপনি GitHub-এ পুরো প্রকল্পটি দেখতে পারেন।

GitHub এ দেখুন

এখানে প্রতিটি ফাইলের একটি ওভারভিউ আছে:

main.gs

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

main.gs কোড দেখুন

apps-script/contact-form-app/main.gs
/**
 * Copyright 2024 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * Responds to a MESSAGE interaction event in Google Chat.
 *
 * @param {Object} event the MESSAGE interaction event from Chat API.
 * @return {Object} message response that opens a dialog or sends private message with text and card.
 */
function onMessage(event) {
  // Checks for the presence of event.message.slashCommand.
  // If the slash command is "/about", responds with a text message and button that opens a dialog.
  // If the slash command is "/addContact", opens a dialog.
  if (event.message.slashCommand) {
    switch (event.message.slashCommand.commandId) {
      case 1: // /about
        return {
          "text": "Manage your contacts with the Rolodex app 📇. To add a contact, use the slash command `/addContact`.",
          "accessoryWidgets": [
              {
                "buttonList": {
                  "buttons": [
                    {
                      "text": "Add Contact",
                      "onClick": {
                        "action": {
                          "function": "openDialog",
                          "interaction": "OPEN_DIALOG"
                        }
                      }
                    }
                  ]
                }
              }
            ]
          }
      case 2:  // /addContact
        return openDialog(event);
    }
  }
  // If user sends the Chat app a message without a slash command, the app responds
  // privately with a text and card to add a contact.
  return {
    "privateMessageViewer": event.user,
    "text": "To add a contact, try `/addContact` or complete the form below:",
    "cardsV2": [{
      "cardId": "addContactForm",
      "card": {
        "header": {"title": "Add a contact"},
        "sections":[{
          "widgets": contactFormWidgets.concat([{
              "buttonList": {
                  "buttons": [{
                    "text": "Review and submit",
                      "onClick": {
                        "action": {"function": "openNextCard",
          }}}]}}])}]
       }}]
  };
}

/**
 * Responds to CARD_CLICKED interaction events in Google Chat.
 *
 * @param {Object} event the CARD_CLICKED interaction event from Google Chat
 */
function onCardClick(event) {
  if (event.common.invokedFunction === "openDialog") {
    return openDialog(event);
  }
  if (event.common.invokedFunction === "openNextCard") {
    const contactName = fetchFormValue(event, "contactName");
    const contactBirthdate = fetchFormValue(event, "contactBirthdate");
    const contactType = fetchFormValue(event, "contactType");
    const user = event.user;
    return openNextCard(user, contactName, contactBirthdate, contactType, event.isDialogEvent)
  }
  if (event.common.invokedFunction === "submitForm") {
    const user = event.user;
    const userInputs = event.common.parameters;
    const dialogEventType = event.dialogEventType;
    return submitForm(user, userInputs, dialogEventType);
  }
}

/**
 * Extracts form input value for a given widget
 * 
 * @param {Object} event the CARD_CLICKED interaction event from Google Chat
 * @param {String} widgetName a unique ID for the widget, specified in the widget's name field
 * @returns the value inputted by the user.
 */
function fetchFormValue(event, widgetName) {
  const formItem = event.common.formInputs[widgetName][""];
  // For widgets that receive StringInputs data, the value input by the user.  
  if (formItem.hasOwnProperty("stringInputs")){  
    const stringInput = event.common.formInputs[widgetName][""].stringInputs.value[0];  
    if (stringInput != null) {  
      return stringInput;  
    }  
  }  
  // For widgets that receive dateInput data, the value input by the user.  
  if (formItem.hasOwnProperty("dateInput")) {  
    const dateInput = event.common.formInputs[widgetName][""].dateInput.msSinceEpoch;  
     if (dateInput != null) {  
       return dateInput;  
     }  
  }  
  // If no input types match, returns null.  
  return null;  
}  

/**
 * Opens a dialog that prompts users to add details about a contact.  
 *  
 * @return {Object} a message with an action response to open a dialog.  
 */
function openDialog() {
  return {
    "actionResponse": {
      "type": "DIALOG",
      "dialogAction": {
        "dialog": {
          "body": {
            "sections": [
              {
                "header": "Add new contact",
                "widgets": contactFormWidgets.concat([{
                  "buttonList": {
                    "buttons": [{
                      "text": "Review and submit",
                        "onClick": {
                          "action": {
                            "function": "openNextCard"
                            }
                          }
                        }
                      ]
                    }
                  }
                ])
              }
            ]
          }
        }
      }
    }
  };
}

/**  
 * Returns another dialog or card message that displays a confirmation of  
 * contact details before users submit.  
 *  
 * @param {String} user the user who submitted the information.  
 * @param {String} contactName the contact name from the previous dialog or card.  
 * @param {String} contactBirthdate the birthdate from the previous dialog or card.  
 * @param {String} contactType the contact type from the previous dialog or card.  
 * @param {boolean} fromDialog whether the information was submitted from a dialog.  
 *  
 * @return {Object} returns a dialog or private card message.  
 */
function openNextCard(user, contactName, contactBirthdate, contactType, fromDialog) {
  const name = contactName ?? "<i>Not provided</i>";
  const birthdate = contactBirthdate ?? "<i>Not provided</i>";
  const type = contactType ?? "<i>Not provided</i>";
  const cardConfirmation = {
          "header": "Your contact",
          "widgets": [
            {"textParagraph":{"text": "Confirm contact information and submit:"}},
            {"textParagraph": {"text": "<b>Name:</b> " + name}},
            {"textParagraph": {"text": "<b>Birthday:</b> " + convertMillisToDateString(birthdate)}},
            {"textParagraph": {"text": "<b>Type:</b> " + type}},
            {"buttonList": {
                "buttons": [
                  {"text": "Submit",
                    "onClick": {
                      "action": {
                        "function": "submitForm",
                         "parameters": [
                           {"key": "contactName",
                            "value": name
                           },
                           {"key": "contactBirthdate",
                            "value": birthdate
                           },
                           {"key": "contactType",
                            "value": type
                  }]}}}]
             }}]};
  // Returns another dialog with contact information that the user input.
  if (fromDialog) {  
    return {  
      "action_response": {  
        "type": "DIALOG",  
        "dialog_action": {  
          "dialog": {  
            "body": {  
              "sections": [ cardConfirmation ]  
            }  
          }  
        }  
      }  
    };  
  }
  // Updates existing card message with contact information that the user input.
  return {
      "actionResponse": {
      "type": "UPDATE_MESSAGE",
      },
    "privateMessageViewer": user,
    "cardsV2": [{
      "card": {"sections": [cardConfirmation]}
      }]
  }

/**  
  * Submits information from a dialog or card message.  
  *  
  * @param {Object} user the person who submitted the information.  
  * @param {Object} userInputs the form input values specified in event object parameters  
  * @param {boolean} dialogEventType contains "SUBMIT_DIALOG" if the event came from a dialog  
  * @return {Object} a message response that opens a dialog or posts a private message.  
  */
function submitForm(user, userInputs, dialogEventType) {
  const contactName = userInputs["contactName"];
  // Checks to make sure the user entered a contact
  // name. If no name value detected, returns
  // an error message.
  if (!contactName) {
    const errorMessage = "Don't forget to name your new contact!";
    if (dialogEventType === "SUBMIT_DIALOG") {
      return {
        "actionResponse": {
          "type": "DIALOG",
          "dialogAction": {
            "actionStatus": {
              "statusCode": "INVALID_ARGUMENT",
              "userFacingMessage": errorMessage
            }
          }
        }
      };
    } else {
      return {
        "privateMessageViewer": user,
        "text": errorMessage 
      };
    }
  }
  // Otherwise the Chat app indicates that it received
  // form data from the dialog or card. Sends private
  // text message that confirms submission.
  const confirmationMessage = " " + contactName + " has been added to your contacts.";
  if (dialogEventType === "SUBMIT_DIALOG") {
    return {
      "actionResponse": {
        "type": "NEW_MESSAGE",
        "dialogAction": {
          "actionStatus": {
            "statusCode": "OK",
            "userFacingMessage": "Success " + JSON.stringify(contactName)
          }
        }
      },
      "privateMessageViewer": user,
      "text": confirmationMessage
    }
  } else {
    return {
      "actionResponse": {
        "type": "NEW_MESSAGE"
      },
      "privateMessageViewer": user,
      "text": confirmationMessage
  }}
}

/**
  * Converts date in milliseconds since epoch to user-friendly string.
  *
  * @param {Object} millis the milliseconds since epoch time.
  * @return {string} Display-friend date (English US)
  */
function convertMillisToDateString(millis) {
  const date = new Date(millis);
  const options = { year: 'numeric', month: 'long', day: 'numeric' };
  return date.toLocaleDateString('en-US', options); 
}
contactForm.gs

ব্যবহারকারীদের কাছ থেকে ফর্ম ডেটা গ্রহণ করে এমন উইজেটগুলি রয়েছে৷ এই ফর্ম ইনপুট উইজেটগুলি কার্ডগুলিতে প্রদর্শিত হয় যা বার্তা এবং ডায়ালগে প্রদর্শিত হয়।

contactForm.gs কোড দেখুন

apps-script/contact-form-app/contactForm.gs
/**
 * Copyright 2024 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * The section of the contact card that contains the form input widgets. Used in a dialog and card message.
 * To add and preview widgets, use the Card Builder: https://addons.gsuite.google.com/uikit/builder
 */
const CONTACT_FORM_WIDGETS = [
  {
    "textInput": {
      "name": "contactName",
      "label": "First and last name",
      "type": "SINGLE_LINE"
    }
  },
  {
    "dateTimePicker": {
      "name": "contactBirthdate",
      "label": "Birthdate",
      "type": "DATE_ONLY"
    }
  },
  {
    "selectionInput": {
      "name": "contactType",
      "label": "Contact type",
      "type": "RADIO_BUTTON",
      "items": [
        {
          "text": "Work",
          "value": "Work",
          "selected": false
        },
        {
          "text": "Personal",
          "value": "Personal",
          "selected": false
        }
      ]
    }
  }
];
appsscript.json

অ্যাপস স্ক্রিপ্ট ম্যানিফেস্ট যা চ্যাট অ্যাপের জন্য অ্যাপস স্ক্রিপ্ট প্রজেক্টকে সংজ্ঞায়িত করে এবং কনফিগার করে।

appsscript.json কোড দেখুন

apps-script/contact-form-app/appsscript.json
{
  "timeZone": "America/Los_Angeles",
  "dependencies": {},
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",
  "chat": {}
}

আপনার ক্লাউড প্রকল্প নম্বর এবং আইডি খুঁজুন

  1. Google ক্লাউড কনসোলে, আপনার ক্লাউড প্রকল্পে যান।

    গুগল ক্লাউড কনসোলে যান

  2. সেটিংস এবং ইউটিলিটি > প্রকল্প সেটিংস ক্লিক করুন।

  3. প্রজেক্ট নম্বর এবং প্রোজেক্ট আইডি ক্ষেত্রের মানগুলি নোট করুন। আপনি নিম্নলিখিত বিভাগে তাদের ব্যবহার করুন.

অ্যাপস স্ক্রিপ্ট প্রকল্প তৈরি করুন

একটি Apps স্ক্রিপ্ট প্রকল্প তৈরি করতে এবং এটিকে আপনার ক্লাউড প্রকল্পের সাথে সংযুক্ত করতে:

  1. Google চ্যাট অ্যাপস স্ক্রিপ্ট প্রকল্পে পরিচিতিগুলি পরিচালনা করতে নিম্নলিখিত বোতামে ক্লিক করুন৷
    প্রকল্প খুলুন
  2. ওভারভিউ-এ ক্লিক করুন।
  3. ওভারভিউ পৃষ্ঠায়, ক্লিক করুন একটি অনুলিপি তৈরি করার জন্য আইকন একটি অনুলিপি তৈরি করুন
  4. Apps স্ক্রিপ্ট প্রকল্পের আপনার কপির নাম দিন:

    1. Google চ্যাটে পরিচিতি পরিচালনার অনুলিপিতে ক্লিক করুন।

    2. প্রকল্পের শিরোনামে , Contact Manager - Google Chat app টাইপ করুন

    3. পুনঃনামকরণ ক্লিক করুন।

অ্যাপস স্ক্রিপ্ট প্রকল্পের ক্লাউড প্রকল্প সেট করুন

  1. আপনার Apps স্ক্রিপ্ট প্রকল্পে, ক্লিক করুন প্রকল্প সেটিংসের জন্য আইকন প্রকল্প সেটিংস
  2. Google ক্লাউড প্ল্যাটফর্ম (GCP) প্রকল্পের অধীনে, প্রকল্প পরিবর্তন করুন ক্লিক করুন।
  3. GCP প্রকল্প নম্বরে , আপনার ক্লাউড প্রকল্পের প্রকল্প নম্বর পেস্ট করুন।
  4. সেট প্রকল্প ক্লিক করুন. ক্লাউড প্রকল্প এবং Apps স্ক্রিপ্ট প্রকল্প এখন সংযুক্ত আছে.

একটি Apps স্ক্রিপ্ট স্থাপনা তৈরি করুন৷

এখন যেহেতু সমস্ত কোড রয়েছে, অ্যাপস স্ক্রিপ্ট প্রকল্পটি স্থাপন করুন। আপনি যখন Google ক্লাউডে চ্যাট অ্যাপ কনফিগার করেন তখন আপনি ডিপ্লয়মেন্ট আইডি ব্যবহার করেন।

  1. Apps Script-এ, চ্যাট অ্যাপের প্রোজেক্ট খুলুন।

    Apps Script এ যান

  2. Deploy > New deployment এ ক্লিক করুন।

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

  4. বিবরণে , এই সংস্করণের জন্য একটি বিবরণ লিখুন, যেমন Test of Contact Manager

  5. ডিপ্লোয় ক্লিক করুন। অ্যাপস স্ক্রিপ্ট সফল স্থাপনার রিপোর্ট করে এবং একটি স্থাপনার আইডি প্রদান করে।

  6. ডিপ্লয়মেন্ট আইডি কপি করতে Copy এ ক্লিক করুন এবং তারপর Done এ ক্লিক করুন।

Google ক্লাউড কনসোলে চ্যাট অ্যাপ কনফিগার করুন

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

  1. Google ক্লাউড কনসোলে, মেনু > আরও প্রোডাক্ট > Google Workspace > প্রোডাক্ট লাইব্রেরি > Google Chat API > Manage > Configuration-এ ক্লিক করুন।

    চ্যাট এপিআই কনফিগারেশনে যান

  2. অ্যাপের নামে , Contact Manager টাইপ করুন।

  3. Avatar URL- এ, https://developers.google.com/chat/images/contact-icon.png টাইপ করুন।

  4. বর্ণনায় , Manage your personal and business contacts টাইপ করুন।

  5. অন ​​পজিশনে টগল করে ইন্টারেক্টিভ ফিচার সক্ষম করুন ক্লিক করুন।

  6. কার্যকারিতার অধীনে, চেকবক্সগুলি নির্বাচন করুন 1:1 বার্তা গ্রহণ করুন এবং স্পেস এবং গ্রুপ কথোপকথনে যোগ দিন

  7. সংযোগ সেটিংসের অধীনে, অ্যাপস স্ক্রিপ্ট নির্বাচন করুন।

  8. Deployment ID এ, Apps Script Deployment ID পেস্ট করুন যা আপনি Apps Script ডিপ্লয়মেন্ট তৈরি করার সময় পূর্ববর্তী বিভাগে কপি করেছিলেন।

  9. স্ল্যাশ কমান্ডের অধীনে, স্ল্যাশ কমান্ড সেট আপ করুন /about এবং /addContact :

    1. প্রথম স্ল্যাশ কমান্ড সেট আপ করতে একটি স্ল্যাশ কমান্ড যোগ করুন ক্লিক করুন।
    2. নামে , /about লিখুন।
    3. কমান্ড আইডিতে , 1 টাইপ করুন।
    4. বর্ণনায় , Learn how to use this Chat app to manage your contacts টাইপ করুন।
    5. একটি ডায়ালগ খোলে নির্বাচন করুন।
    6. সম্পন্ন ক্লিক করুন.
    7. আরেকটি স্ল্যাশ কমান্ড সেট আপ করতে একটি স্ল্যাশ কমান্ড যোগ করুন ক্লিক করুন।
    8. নামে , টাইপ করুন /addContact
    9. কমান্ড আইডিতে , 2 টাইপ করুন।
    10. বিবরণে , Submit information about a contact টাইপ করুন।
    11. একটি ডায়ালগ খোলে নির্বাচন করুন।
    12. সম্পন্ন ক্লিক করুন.
  10. দৃশ্যমানতার অধীনে, YOUR DOMAIN চেকবক্সে নির্দিষ্ট ব্যক্তি এবং গোষ্ঠীর জন্য এই চ্যাট অ্যাপটি উপলব্ধ করুন নির্বাচন করুন এবং আপনার ইমেল ঠিকানা লিখুন৷

  11. লগের অধীনে, লগিং করতে লগ ত্রুটি নির্বাচন করুন।

  12. Save এ ক্লিক করুন। একটি কনফিগারেশন সংরক্ষিত বার্তা প্রদর্শিত হবে.

চ্যাট অ্যাপটি চ্যাটে ইনস্টল এবং পরীক্ষা করার জন্য প্রস্তুত।

চ্যাট অ্যাপটি পরীক্ষা করুন

আপনার চ্যাট অ্যাপটি পরীক্ষা করতে, চ্যাট অ্যাপের সাথে একটি সরাসরি বার্তা স্থান খুলুন এবং একটি বার্তা পাঠান:

  1. বিশ্বস্ত পরীক্ষক হিসেবে নিজেকে যোগ করার সময় আপনি যে Google Workspace অ্যাকাউন্ট দিয়েছিলেন সেটি ব্যবহার করে Google Chat খুলুন।

    গুগল চ্যাটে যান

  2. নতুন চ্যাট ক্লিক করুন.
  3. 1 বা তার বেশি লোক যোগ করুন ফিল্ডে, আপনার চ্যাট অ্যাপের নাম টাইপ করুন।
  4. ফলাফল থেকে আপনার চ্যাট অ্যাপ নির্বাচন করুন। একটি সরাসরি বার্তা খোলে।

  1. চ্যাট অ্যাপের সাথে নতুন সরাসরি বার্তায়, /addContact টাইপ করুন এবং এন্টার টিপুন।

  2. খোলা ডায়ালগে, যোগাযোগের তথ্য লিখুন:

    1. প্রথম এবং শেষ নামের পাঠ্য ক্ষেত্রে, একটি নাম লিখুন।
    2. জন্ম তারিখ পিকারে, একটি তারিখ নির্বাচন করুন।
    3. যোগাযোগের প্রকারের অধীনে, কাজ বা ব্যক্তিগত রেডিও বোতাম নির্বাচন করুন।
  3. পর্যালোচনা এবং জমা ক্লিক করুন.

  4. নিশ্চিতকরণ ডায়ালগে, আপনার জমা দেওয়া তথ্য পর্যালোচনা করুন এবং জমা দিন ক্লিক করুন। চ্যাট অ্যাপটি একটি টেক্সট মেসেজের সাথে উত্তর দেয় যেটি বলে CONTACT NAME has been added to your contacts. .

  5. ঐচ্ছিকভাবে, আপনি নিম্নলিখিত উপায়ে যোগাযোগ ফর্ম পরীক্ষা এবং জমা দিতে পারেন:

    • /about স্ল্যাশ কমান্ডটি ব্যবহার করুন। চ্যাট অ্যাপ একটি পাঠ্য বার্তা এবং একটি আনুষঙ্গিক উইজেট বোতামের সাথে উত্তর দেয় যা বলে Add a contact ৷ আপনি যোগাযোগ ফর্মের সাথে একটি ডায়ালগ খুলতে বোতামটি ক্লিক করতে পারেন।
    • চ্যাট অ্যাপটিকে একটি স্ল্যাশ কমান্ড ছাড়াই একটি সরাসরি বার্তা পাঠান, যেমন Hello ৷ চ্যাট অ্যাপটি একটি টেক্সট এবং কার্ডের সাথে উত্তর দেয় যাতে যোগাযোগের ফর্ম রয়েছে।

পরিষ্কার করুন

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

  1. Google ক্লাউড কনসোলে, সম্পদ পরিচালনা পৃষ্ঠাতে যান। মেনু > আইএএম এবং অ্যাডমিন > সম্পদ পরিচালনা করুন ক্লিক করুন।

    রিসোর্স ম্যানেজারে যান

  2. প্রকল্প তালিকায়, আপনি যে প্রকল্পটি মুছতে চান সেটি নির্বাচন করুন এবং তারপরে মুছুন ক্লিক করুন।
  3. ডায়ালগে, প্রকল্প আইডি টাইপ করুন এবং তারপরে প্রকল্পটি মুছে ফেলতে শাট ডাউন ক্লিক করুন।