একটি HTTP Google Chat অ্যাপ তৈরি করুন

এই পৃষ্ঠাটি ব্যাখ্যা করে কিভাবে একটি HTTP চ্যাট অ্যাপ তৈরি করতে হয়। এই আর্কিটেকচার বাস্তবায়ন করার বিভিন্ন উপায় আছে। Google ক্লাউডে, আপনি ক্লাউড ফাংশন, ক্লাউড রান এবং অ্যাপ ইঞ্জিন ব্যবহার করতে পারেন। এই কুইকস্টার্টে, আপনি একটি ক্লাউড ফাংশন লিখবেন এবং স্থাপন করবেন যা চ্যাট অ্যাপ ব্যবহারকারীর বার্তার প্রতিক্রিয়া জানাতে ব্যবহার করে।

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

একটি অন-প্রিমিসেস সার্ভারে একটি ওয়েব পরিষেবা ব্যবহার করে একটি চ্যাট অ্যাপের আর্কিটেকচার।

পূর্ববর্তী চিত্রে, HTTP চ্যাট অ্যাপের সাথে ইন্টারঅ্যাক্ট করা একজন ব্যবহারকারীর নিম্নলিখিত তথ্যের প্রবাহ রয়েছে:

  1. একজন ব্যবহারকারী চ্যাটে একটি চ্যাট অ্যাপে একটি বার্তা পাঠান, হয় সরাসরি বার্তায় বা চ্যাট স্পেসে।
  2. একটি HTTP অনুরোধ একটি ওয়েব সার্ভারে পাঠানো হয় যা হয় একটি ক্লাউড বা অন-প্রিমিসেস সিস্টেম যাতে চ্যাট অ্যাপ লজিক থাকে।
  3. ঐচ্ছিকভাবে, Chat অ্যাপ লজিক Google Workspace পরিষেবা (যেমন ক্যালেন্ডার এবং শীট), অন্যান্য Google পরিষেবা (যেমন Maps, YouTube এবং Vertex AI) অথবা অন্যান্য ওয়েব পরিষেবা (যেমন প্রজেক্ট ম্যানেজমেন্ট সিস্টেম বা টিকিট করার টুল) এর সাথে একীভূত হতে পারে।
  4. ওয়েব সার্ভার চ্যাটে চ্যাট অ্যাপ পরিষেবাতে একটি HTTP প্রতিক্রিয়া ফেরত পাঠায়।
  5. প্রতিক্রিয়া ব্যবহারকারীর কাছে বিতরণ করা হয়।
  6. ঐচ্ছিকভাবে, চ্যাট অ্যাপ অ্যাসিঙ্ক্রোনাসভাবে বার্তা পোস্ট করতে বা অন্যান্য ক্রিয়াকলাপ সম্পাদন করতে Chat API-কে কল করতে পারে।

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

উদ্দেশ্য

  • আপনার পরিবেশ সেট আপ করুন।
  • একটি ক্লাউড ফাংশন তৈরি করুন এবং স্থাপন করুন।
  • চ্যাটে অ্যাপটি প্রকাশ করুন।
  • অ্যাপটি পরীক্ষা করুন।

পূর্বশর্ত

পরিবেশ স্থাপন করুন

Google API ব্যবহার করার আগে, আপনাকে একটি Google ক্লাউড প্রকল্পে সেগুলি চালু করতে হবে। আপনি একটি একক Google ক্লাউড প্রকল্পে এক বা একাধিক API চালু করতে পারেন৷
  • Google ক্লাউড কনসোলে, Google Chat API, Cloud Build API, Cloud Functions API, Cloud Pub/Sub API, Cloud Logging API, Artifact Registry API, এবং Cloud Run API সক্ষম করুন৷

    APIs সক্রিয় করুন

একটি ক্লাউড ফাংশন তৈরি করুন এবং স্থাপন করুন

একটি ক্লাউড ফাংশন তৈরি করুন এবং স্থাপন করুন যা প্রেরকের প্রদর্শন নাম এবং অবতার চিত্র সহ একটি চ্যাট কার্ড তৈরি করে৷ যখন চ্যাট অ্যাপ একটি বার্তা পায়, এটি ফাংশনটি চালায় এবং কার্ডের সাথে প্রতিক্রিয়া জানায়।

আপনার চ্যাট অ্যাপের জন্য ফাংশন তৈরি এবং স্থাপন করতে, নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন:

Node.js

  1. Google ক্লাউড কনসোলে, ক্লাউড ফাংশন পৃষ্ঠাতে যান:

    ক্লাউড ফাংশনে যান

    আপনার চ্যাট অ্যাপের জন্য প্রজেক্টটি বেছে নেওয়া হয়েছে তা নিশ্চিত করুন।

  2. Create Function এ ক্লিক করুন।

  3. ফাংশন তৈরি করুন পৃষ্ঠায়, আপনার ফাংশন সেট আপ করুন:

    1. পরিবেশে , ক্লাউড রান ফাংশন নির্বাচন করুন।
    2. ফাংশনের নামে , QuickStartChatApp লিখুন।
    3. অঞ্চলে , একটি অঞ্চল নির্বাচন করুন।
    4. প্রমাণীকরণের অধীনে, প্রমাণীকরণ প্রয়োজন নির্বাচন করুন।
    5. পরবর্তী ক্লিক করুন.
  4. রানটাইমে , Node.js-এর সাম্প্রতিকতম সংস্করণ নির্বাচন করুন।

  5. সোর্স কোডে , ইনলাইন এডিটর নির্বাচন করুন।

  6. এন্ট্রি পয়েন্টে , ডিফল্ট পাঠ্যটি মুছুন এবং avatarApp লিখুন।

  7. নিম্নলিখিত কোড দিয়ে index.js এর বিষয়বস্তু প্রতিস্থাপন করুন:

    node/avatar-app/index.js
    const functions = require('@google-cloud/functions-framework');
    
    // Command IDs (configure these in Google Chat API)
    const ABOUT_COMMAND_ID = 1; // ID for the "/about" slash command
    const HELP_COMMAND_ID = 2; // ID for the "Help" quick command
    
    /**
     * Google Cloud Function that handles HTTP requests from Google Chat.
     *
     * @param {Object} req - The HTTP request object sent from Google Chat.
     * @param {Object} res - The HTTP response object.
     */
    functions.http('avatarApp', (req, res) => {
      const event = req.body;
    
      if (event.appCommandMetadata) {
        handleAppCommands(event, res);
      } else {
        handleRegularMessage(event, res);
      }
    });
    
    /**
     * 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 regular messages (not commands).
     *
     * @param {Object} event - The Google Chat event.
     * @param {Object} res - The HTTP response object.
     */
    function handleRegularMessage(event, res) {
      const messageData = createMessage(event.user);
      res.send(messageData);
    }
    
    /**
     * Creates a card message with the user's avatar.
     *
     * @param {Object} user - The user who sent the message.
     * @param {string} user.displayName - The user's display name.
     * @param {string} user.avatarUrl - The URL of the user's avatar.
     * @return {Object} - The card message object.
     */
    function createMessage({displayName, avatarUrl}) {
      return {
        text: 'Here\'s your avatar',
        cardsV2: [{
          cardId: 'avatarCard',
          card: {
            name: 'Avatar Card',
            header: {
              title: `Hello ${displayName}!`,
            },
            sections: [{
              widgets: [
                {textParagraph: {text: 'Your avatar picture:'}},
                {image: {imageUrl: avatarUrl}},
              ],
            }],
          },
        }],
      };
    }

  8. ডিপ্লোয় ক্লিক করুন।

পাইথন

  1. Google ক্লাউড কনসোলে, ক্লাউড ফাংশন পৃষ্ঠাতে যান:

    ক্লাউড ফাংশনে যান

    আপনার চ্যাট অ্যাপের জন্য প্রজেক্টটি বেছে নেওয়া হয়েছে তা নিশ্চিত করুন।

  2. Create Function এ ক্লিক করুন।

  3. ফাংশন তৈরি করুন পৃষ্ঠায়, আপনার ফাংশন সেট আপ করুন:

    1. পরিবেশে , ক্লাউড রান ফাংশন নির্বাচন করুন।
    2. ফাংশনের নামে , QuickStartChatApp লিখুন।
    3. অঞ্চলে , একটি অঞ্চল নির্বাচন করুন।
    4. প্রমাণীকরণের অধীনে, প্রমাণীকরণ প্রয়োজন নির্বাচন করুন।
    5. পরবর্তী ক্লিক করুন.
  4. রানটাইমে , পাইথনের সাম্প্রতিকতম সংস্করণ নির্বাচন করুন।

  5. সোর্স কোডে , ইনলাইন এডিটর নির্বাচন করুন।

  6. এন্ট্রি পয়েন্টে , ডিফল্ট টেক্সট মুছে দিন এবং avatar_app লিখুন।

  7. নিম্নলিখিত কোড দিয়ে main.py এর বিষয়বস্তু প্রতিস্থাপন করুন:

    python/avatar-app/main.py
    from typing import Any, Mapping
    
    import flask
    import functions_framework
    
    # Command IDs (configure these in Google Chat API)
    ABOUT_COMMAND_ID = 1  # ID for the "/about" slash command
    HELP_COMMAND_ID = 2  # ID for the "Help" quick command
    
    
    @functions_framework.http
    def avatar_app(req: flask.Request) -> Mapping[str, Any]:
        """Google Cloud Function that handles HTTP requests from Google Chat.
    
        Args:
            flask.Request: the request
    
        Returns:
            Mapping[str, Any]: the response
        """
        event = req.get_json(silent=True)
    
        if event and "appCommandMetadata" in event:
            return handle_app_commands(event)
        else:
            return handle_regular_message(event)
    
    
    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 {}
    
    
    
    
    def handle_regular_message(event: Mapping[str, Any]) -> Mapping[str, Any]:
        """Handles regular messages (not commands).
    
        Args:
            Mapping[str, Any] event: The Google Chat event.
    
        Returns:
            Mapping[str, Any]: the response
        """
    
        if not event or "user" not in event:
            return "Invalid request."
    
        message_data = create_message(event["user"])
        return message_data
    
    
    def create_message(user: Mapping[str, Any]) -> Mapping[str, Any]:
        """Creates a card message with the user's avatar.
    
        Args:
            Mapping[str, Any] user: The user who sent the message.
    
        Returns:
            Mapping[str, Any]: a card with the user's avatar.
        """
        display_name = user.get("displayName", "")
        avatar_url = user.get("avatarUrl", "")
    
        return {
            "text": "Here's your avatar",
            "cardsV2": [
                {
                    "cardId": "avatarCard",
                    "card": {
                        "name": "Avatar Card",
                        "header": {"title": f"Hello {display_name}!"},
                        "sections": [
                            {
                                "widgets": [
                                    {"textParagraph": {"text": "Your avatar picture:"}},
                                    {"image": {"imageUrl": avatar_url}},
                                ]
                            }
                        ],
                    },
                }
            ],
        }

  8. ডিপ্লোয় ক্লিক করুন।

জাভা

  1. Google ক্লাউড কনসোলে, ক্লাউড ফাংশন পৃষ্ঠাতে যান:

    ক্লাউড ফাংশনে যান

    আপনার চ্যাট অ্যাপের জন্য প্রজেক্টটি বেছে নেওয়া হয়েছে তা নিশ্চিত করুন।

  2. Create Function এ ক্লিক করুন।

  3. ফাংশন তৈরি করুন পৃষ্ঠায়, আপনার ফাংশন সেট আপ করুন:

    1. পরিবেশে , ক্লাউড রান ফাংশন নির্বাচন করুন।
    2. ফাংশনের নামে , QuickStartChatApp লিখুন।
    3. অঞ্চলে , একটি অঞ্চল নির্বাচন করুন।
    4. প্রমাণীকরণের অধীনে, প্রমাণীকরণ প্রয়োজন নির্বাচন করুন।
    5. পরবর্তী ক্লিক করুন.
  4. রানটাইমে , জাভা-এর সাম্প্রতিকতম সংস্করণ নির্বাচন করুন।

  5. সোর্স কোডে , ইনলাইন এডিটর নির্বাচন করুন।

  6. এন্ট্রি পয়েন্টে , ডিফল্ট পাঠ্যটি মুছুন এবং App প্রবেশ করুন।

  7. src/main/java/com/example/Example.java এর নাম src/main/java/AvatarApp.java করুন।

  8. নিম্নলিখিত কোড দিয়ে AvatarApp.java এর বিষয়বস্তু প্রতিস্থাপন করুন:

    java/avatar-app/src/main/java/AvatarApp.java
    import com.google.api.services.chat.v1.model.CardWithId;
    import com.google.api.services.chat.v1.model.GoogleAppsCardV1Card;
    import com.google.api.services.chat.v1.model.GoogleAppsCardV1CardHeader;
    import com.google.api.services.chat.v1.model.GoogleAppsCardV1Image;
    import com.google.api.services.chat.v1.model.GoogleAppsCardV1Section;
    import com.google.api.services.chat.v1.model.GoogleAppsCardV1TextParagraph;
    import com.google.api.services.chat.v1.model.GoogleAppsCardV1Widget;
    import com.google.api.services.chat.v1.model.Message;
    import com.google.api.services.chat.v1.model.User;
    import com.google.cloud.functions.HttpFunction;
    import com.google.cloud.functions.HttpRequest;
    import com.google.cloud.functions.HttpResponse;
    import com.google.gson.Gson;
    import com.google.gson.JsonObject;
    import java.util.List;
    
    public class AvatarApp implements HttpFunction {
      private static final Gson gson = new Gson();
    
      // Command IDs (configure these in Google Chat API)
      private static final int ABOUT_COMMAND_ID = 1; // ID for the "/about" slash command
      private static final int HELP_COMMAND_ID = 2; // ID for the "Help" quick command
    
      @Override
      public void service(HttpRequest request, HttpResponse response) throws Exception {
        JsonObject event = gson.fromJson(request.getReader(), JsonObject.class);
    
        if (event.has("appCommandMetadata")) {
          handleAppCommands(event, response);
        } else {
          handleRegularMessage(event, response);
        }
      }
    
      /**
       * 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;
        }
      }
    
      /**
       * Handles regular messages (not commands).
       *
       * @param event    The Google Chat event.
       * @param response The HTTP response object.
       */
      private void handleRegularMessage(JsonObject event, HttpResponse response) throws Exception {
    
        if (!event.has("user")) {
          response.getWriter().write("Invalid request.");
          return;
        }
    
        JsonObject user = event.getAsJsonObject("user");
        String displayName = user.has("displayName") ? user.get("displayName").getAsString() : "";
        String avatarUrl = user.has("avatarUrl") ? user.get("avatarUrl").getAsString() : "";
        Message message = createMessage(displayName, avatarUrl);
        response.getWriter().write(gson.toJson(message));
      }
    
      /**
       * Creates a card message with the user's avatar.
       *
       * @param displayName The user's display name.
       * @param avatarUrl   The URL of the user's avatar.
       * @return The card message object.
       */
      private Message createMessage(String displayName, String avatarUrl) {
        return new Message()
            .setText("Here's your avatar")
            .setCardsV2(List.of(new CardWithId()
                .setCardId("avatarCard")
                .setCard(new GoogleAppsCardV1Card()
                    .setName("Avatar Card")
                    .setHeader(new GoogleAppsCardV1CardHeader()
                        .setTitle(String.format("Hello %s!", displayName)))
                    .setSections(List.of(new GoogleAppsCardV1Section().setWidgets(List.of(
                        new GoogleAppsCardV1Widget()
                            .setTextParagraph(new GoogleAppsCardV1TextParagraph()
                                .setText("Your avatar picture:")),
                        new GoogleAppsCardV1Widget()
                            .setImage(new GoogleAppsCardV1Image().setImageUrl(avatarUrl)))))))));
      }
    }

  9. নিম্নলিখিত কোড দিয়ে pom.xml এর বিষয়বস্তু প্রতিস্থাপন করুন:

    java/avatar-app/pom.xml
    <project xmlns="http://maven.apache.org/POM/4.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>gcfv2</groupId>
      <artifactId>avatar-app</artifactId>
      <version>0.0.1</version>
      <name>Avatar App</name>
    
      <properties>
        <maven.compiler.release>21</maven.compiler.release>
      </properties>
    
      <dependencies>
        <dependency>
          <groupId>com.google.cloud.functions</groupId>
          <artifactId>functions-framework-api</artifactId>
          <version>1.1.4</version>
        </dependency>
    
        <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
        <dependency>
          <groupId>com.google.code.gson</groupId>
          <artifactId>gson</artifactId>
          <version>2.12.1</version>
        </dependency>
    
        <!-- https://mvnrepository.com/artifact/com.google.apis/google-api-services-chat -->
        <dependency>
          <groupId>com.google.apis</groupId>
          <artifactId>google-api-services-chat</artifactId>
          <version>v1-rev20250116-2.0.0</version>
        </dependency>
    
      </dependencies>
    
    </project>

  10. ডিপ্লোয় ক্লিক করুন।

ক্লাউড ফাংশনের বিশদ পৃষ্ঠাটি খোলে, এবং আপনার ফাংশন দুটি অগ্রগতি সূচক সহ প্রদর্শিত হবে: একটি বিল্ডের জন্য এবং একটি পরিষেবার জন্য৷ যখন উভয় অগ্রগতি সূচক অদৃশ্য হয়ে যায় এবং একটি চেক চিহ্ন দিয়ে প্রতিস্থাপিত হয়, তখন আপনার ফাংশন স্থাপন করা হয় এবং প্রস্তুত হয়।

আপনার ফাংশন চালু করার জন্য Google চ্যাটকে অনুমোদন করুন

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

  1. Google ক্লাউড কনসোলে, ক্লাউড রান পৃষ্ঠায় যান:

    Cloud Run এ যান

  2. ক্লাউড রান পরিষেবা তালিকায়, প্রাপ্তি ফাংশনের পাশের চেকবক্সটি নির্বাচন করুন৷ (ফাংশন নিজেই ক্লিক করবেন না।)

  3. অনুমতিতে ক্লিক করুন। অনুমতি প্যানেল খোলে।

  4. অ্যাড প্রিন্সিপাল ক্লিক করুন।

  5. নতুন প্রিন্সিপালে , chat@system.gserviceaccount.com এ প্রবেশ করুন।

  6. একটি ভূমিকা নির্বাচন করুন , ক্লাউড রান > ক্লাউড রান ইনভোকার নির্বাচন করুন।

  7. Save এ ক্লিক করুন।

অ্যাপটি Google Chat-এ প্রকাশ করুন

ক্লাউড ফাংশন স্থাপন করার পরে, এটিকে একটি Google Chat অ্যাপে পরিণত করতে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. Google ক্লাউড কনসোলে, মেনু > ক্লাউড ফাংশন- এ ক্লিক করুন।

    ক্লাউড ফাংশনে যান

    আপনি যে প্রকল্পের জন্য ক্লাউড ফাংশন সক্ষম করেছেন সেটি নির্বাচন করা হয়েছে তা নিশ্চিত করুন৷

  2. ফাংশনের তালিকায়, QuickStartChatApp-এ ক্লিক করুন।

  3. ট্রিগার ট্যাবে ক্লিক করুন।

  4. HTTPS এর অধীনে, URL টি অনুলিপি করুন।

  5. "Google Chat API" অনুসন্ধান করুন এবং Google Chat API-এ ক্লিক করুন, তারপর পরিচালনা করুন-এ ক্লিক করুন।

    চ্যাট API এ যান

  6. কনফিগারেশন ক্লিক করুন এবং Google চ্যাট অ্যাপ সেট আপ করুন:

    1. অ্যাপের নামে , Quickstart App লিখুন।
    2. Avatar URL- এ, https://developers.google.com/chat/images/quickstart-app-avatar.png লিখুন।
    3. বর্ণনায় , Quickstart app লিখুন।
    4. কার্যকারিতার অধীনে, 1:1 বার্তা গ্রহণ করুন এবং স্পেস এবং গ্রুপ কথোপকথনে যোগ দিন নির্বাচন করুন।
    5. সংযোগ সেটিংসের অধীনে, HTTP এন্ডপয়েন্ট URL নির্বাচন করুন এবং বাক্সে ক্লাউড ফাংশন ট্রিগারের URL পেস্ট করুন।
    6. প্রমাণীকরণ শ্রোতা- এ, HTTP এন্ডপয়েন্ট URL নির্বাচন করুন।
    7. দৃশ্যমানতার অধীনে, আপনার ডোমেনের নির্দিষ্ট ব্যক্তি এবং গোষ্ঠীর জন্য এই Google চ্যাট অ্যাপটি উপলব্ধ করুন নির্বাচন করুন এবং আপনার ইমেল ঠিকানা লিখুন৷
    8. লগের অধীনে, লগিং করতে লগ ত্রুটি নির্বাচন করুন।
  7. Save এ ক্লিক করুন।

চ্যাট অ্যাপটি চ্যাটে বার্তাগুলি গ্রহণ এবং উত্তর দেওয়ার জন্য প্রস্তুত৷

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

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

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

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

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

  5. অ্যাপটির সাথে নতুন সরাসরি বার্তায়, Hello টাইপ করুন এবং enter টিপুন।

চ্যাট অ্যাপের প্রতিক্রিয়াতে একটি কার্ড বার্তা রয়েছে যা প্রেরকের নাম এবং অবতার ছবি প্রদর্শন করে, যেমনটি নিম্নলিখিত ছবিতে দেখানো হয়েছে:

চ্যাট অ্যাপ প্রেরকের ডিসপ্লে নাম এবং অবতার সমন্বিত একটি কার্ডের সাথে সাড়া দিচ্ছে ইমেজ

বিশ্বস্ত পরীক্ষক যোগ করতে এবং ইন্টারেক্টিভ বৈশিষ্ট্যগুলি পরীক্ষা করার বিষয়ে আরও জানতে, Google চ্যাট অ্যাপগুলির জন্য পরীক্ষা ইন্টারেক্টিভ বৈশিষ্ট্যগুলি দেখুন৷

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

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

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

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

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

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

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

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

এই পৃষ্ঠাটি ব্যাখ্যা করে কিভাবে একটি HTTP চ্যাট অ্যাপ তৈরি করতে হয়। এই আর্কিটেকচার বাস্তবায়ন করার বিভিন্ন উপায় আছে। Google ক্লাউডে, আপনি ক্লাউড ফাংশন, ক্লাউড রান এবং অ্যাপ ইঞ্জিন ব্যবহার করতে পারেন। এই কুইকস্টার্টে, আপনি একটি ক্লাউড ফাংশন লিখবেন এবং স্থাপন করবেন যা চ্যাট অ্যাপ ব্যবহারকারীর বার্তার প্রতিক্রিয়া জানাতে ব্যবহার করে।

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

একটি অন-প্রিমিসেস সার্ভারে একটি ওয়েব পরিষেবা ব্যবহার করে একটি চ্যাট অ্যাপের আর্কিটেকচার।

পূর্ববর্তী চিত্রে, HTTP চ্যাট অ্যাপের সাথে ইন্টারঅ্যাক্ট করা একজন ব্যবহারকারীর নিম্নলিখিত তথ্যের প্রবাহ রয়েছে:

  1. একজন ব্যবহারকারী চ্যাটে একটি চ্যাট অ্যাপে একটি বার্তা পাঠান, হয় সরাসরি বার্তায় বা চ্যাট স্পেসে।
  2. একটি HTTP অনুরোধ একটি ওয়েব সার্ভারে পাঠানো হয় যা হয় একটি ক্লাউড বা অন-প্রিমিসেস সিস্টেম যাতে চ্যাট অ্যাপ লজিক থাকে।
  3. ঐচ্ছিকভাবে, Chat অ্যাপ লজিক Google Workspace পরিষেবা (যেমন ক্যালেন্ডার এবং শীট), অন্যান্য Google পরিষেবা (যেমন Maps, YouTube এবং Vertex AI) অথবা অন্যান্য ওয়েব পরিষেবা (যেমন প্রজেক্ট ম্যানেজমেন্ট সিস্টেম বা টিকিট করার টুল) এর সাথে একীভূত হতে পারে।
  4. ওয়েব সার্ভার চ্যাটে চ্যাট অ্যাপ পরিষেবাতে একটি HTTP প্রতিক্রিয়া ফেরত পাঠায়।
  5. প্রতিক্রিয়া ব্যবহারকারীর কাছে বিতরণ করা হয়।
  6. ঐচ্ছিকভাবে, চ্যাট অ্যাপ অ্যাসিঙ্ক্রোনাসভাবে বার্তা পোস্ট করতে বা অন্যান্য ক্রিয়াকলাপ সম্পাদন করতে Chat API-কে কল করতে পারে।

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

উদ্দেশ্য

  • আপনার পরিবেশ সেট আপ করুন।
  • একটি ক্লাউড ফাংশন তৈরি করুন এবং স্থাপন করুন।
  • চ্যাটে অ্যাপটি প্রকাশ করুন।
  • অ্যাপটি পরীক্ষা করুন।

পূর্বশর্ত

পরিবেশ স্থাপন করুন

Google API ব্যবহার করার আগে, আপনাকে একটি Google ক্লাউড প্রকল্পে সেগুলি চালু করতে হবে। আপনি একটি একক Google ক্লাউড প্রকল্পে এক বা একাধিক API চালু করতে পারেন৷
  • Google ক্লাউড কনসোলে, Google Chat API, Cloud Build API, Cloud Functions API, Cloud Pub/Sub API, Cloud Logging API, Artifact Registry API, এবং Cloud Run API সক্ষম করুন৷

    APIs সক্রিয় করুন

একটি ক্লাউড ফাংশন তৈরি করুন এবং স্থাপন করুন

একটি ক্লাউড ফাংশন তৈরি করুন এবং স্থাপন করুন যা প্রেরকের প্রদর্শন নাম এবং অবতার চিত্র সহ একটি চ্যাট কার্ড তৈরি করে৷ যখন চ্যাট অ্যাপ একটি বার্তা পায়, এটি ফাংশনটি চালায় এবং কার্ডের সাথে প্রতিক্রিয়া জানায়।

আপনার চ্যাট অ্যাপের জন্য ফাংশন তৈরি এবং স্থাপন করতে, নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন:

Node.js

  1. Google ক্লাউড কনসোলে, ক্লাউড ফাংশন পৃষ্ঠাতে যান:

    ক্লাউড ফাংশনে যান

    আপনার চ্যাট অ্যাপের জন্য প্রজেক্টটি বেছে নেওয়া হয়েছে তা নিশ্চিত করুন।

  2. Create Function এ ক্লিক করুন।

  3. ফাংশন তৈরি করুন পৃষ্ঠায়, আপনার ফাংশন সেট আপ করুন:

    1. পরিবেশে , ক্লাউড রান ফাংশন নির্বাচন করুন।
    2. ফাংশনের নামে , QuickStartChatApp লিখুন।
    3. অঞ্চলে , একটি অঞ্চল নির্বাচন করুন।
    4. প্রমাণীকরণের অধীনে, প্রমাণীকরণ প্রয়োজন নির্বাচন করুন।
    5. পরবর্তী ক্লিক করুন.
  4. রানটাইমে , Node.js-এর সাম্প্রতিকতম সংস্করণ নির্বাচন করুন।

  5. সোর্স কোডে , ইনলাইন এডিটর নির্বাচন করুন।

  6. এন্ট্রি পয়েন্টে , ডিফল্ট পাঠ্যটি মুছুন এবং avatarApp লিখুন।

  7. নিম্নলিখিত কোড দিয়ে index.js এর বিষয়বস্তু প্রতিস্থাপন করুন:

    node/avatar-app/index.js
    const functions = require('@google-cloud/functions-framework');
    
    // Command IDs (configure these in Google Chat API)
    const ABOUT_COMMAND_ID = 1; // ID for the "/about" slash command
    const HELP_COMMAND_ID = 2; // ID for the "Help" quick command
    
    /**
     * Google Cloud Function that handles HTTP requests from Google Chat.
     *
     * @param {Object} req - The HTTP request object sent from Google Chat.
     * @param {Object} res - The HTTP response object.
     */
    functions.http('avatarApp', (req, res) => {
      const event = req.body;
    
      if (event.appCommandMetadata) {
        handleAppCommands(event, res);
      } else {
        handleRegularMessage(event, res);
      }
    });
    
    /**
     * 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 regular messages (not commands).
     *
     * @param {Object} event - The Google Chat event.
     * @param {Object} res - The HTTP response object.
     */
    function handleRegularMessage(event, res) {
      const messageData = createMessage(event.user);
      res.send(messageData);
    }
    
    /**
     * Creates a card message with the user's avatar.
     *
     * @param {Object} user - The user who sent the message.
     * @param {string} user.displayName - The user's display name.
     * @param {string} user.avatarUrl - The URL of the user's avatar.
     * @return {Object} - The card message object.
     */
    function createMessage({displayName, avatarUrl}) {
      return {
        text: 'Here\'s your avatar',
        cardsV2: [{
          cardId: 'avatarCard',
          card: {
            name: 'Avatar Card',
            header: {
              title: `Hello ${displayName}!`,
            },
            sections: [{
              widgets: [
                {textParagraph: {text: 'Your avatar picture:'}},
                {image: {imageUrl: avatarUrl}},
              ],
            }],
          },
        }],
      };
    }

  8. ডিপ্লোয় ক্লিক করুন।

পাইথন

  1. Google ক্লাউড কনসোলে, ক্লাউড ফাংশন পৃষ্ঠাতে যান:

    ক্লাউড ফাংশনে যান

    আপনার চ্যাট অ্যাপের জন্য প্রজেক্টটি বেছে নেওয়া হয়েছে তা নিশ্চিত করুন।

  2. Create Function এ ক্লিক করুন।

  3. ফাংশন তৈরি করুন পৃষ্ঠায়, আপনার ফাংশন সেট আপ করুন:

    1. পরিবেশে , ক্লাউড রান ফাংশন নির্বাচন করুন।
    2. ফাংশনের নামে , QuickStartChatApp লিখুন।
    3. অঞ্চলে , একটি অঞ্চল নির্বাচন করুন।
    4. প্রমাণীকরণের অধীনে, প্রমাণীকরণ প্রয়োজন নির্বাচন করুন।
    5. পরবর্তী ক্লিক করুন.
  4. রানটাইমে , পাইথনের সাম্প্রতিকতম সংস্করণ নির্বাচন করুন।

  5. সোর্স কোডে , ইনলাইন এডিটর নির্বাচন করুন।

  6. এন্ট্রি পয়েন্টে , ডিফল্ট টেক্সট মুছে দিন এবং avatar_app লিখুন।

  7. নিম্নলিখিত কোড দিয়ে main.py এর বিষয়বস্তু প্রতিস্থাপন করুন:

    python/avatar-app/main.py
    from typing import Any, Mapping
    
    import flask
    import functions_framework
    
    # Command IDs (configure these in Google Chat API)
    ABOUT_COMMAND_ID = 1  # ID for the "/about" slash command
    HELP_COMMAND_ID = 2  # ID for the "Help" quick command
    
    
    @functions_framework.http
    def avatar_app(req: flask.Request) -> Mapping[str, Any]:
        """Google Cloud Function that handles HTTP requests from Google Chat.
    
        Args:
            flask.Request: the request
    
        Returns:
            Mapping[str, Any]: the response
        """
        event = req.get_json(silent=True)
    
        if event and "appCommandMetadata" in event:
            return handle_app_commands(event)
        else:
            return handle_regular_message(event)
    
    
    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 {}
    
    
    
    
    def handle_regular_message(event: Mapping[str, Any]) -> Mapping[str, Any]:
        """Handles regular messages (not commands).
    
        Args:
            Mapping[str, Any] event: The Google Chat event.
    
        Returns:
            Mapping[str, Any]: the response
        """
    
        if not event or "user" not in event:
            return "Invalid request."
    
        message_data = create_message(event["user"])
        return message_data
    
    
    def create_message(user: Mapping[str, Any]) -> Mapping[str, Any]:
        """Creates a card message with the user's avatar.
    
        Args:
            Mapping[str, Any] user: The user who sent the message.
    
        Returns:
            Mapping[str, Any]: a card with the user's avatar.
        """
        display_name = user.get("displayName", "")
        avatar_url = user.get("avatarUrl", "")
    
        return {
            "text": "Here's your avatar",
            "cardsV2": [
                {
                    "cardId": "avatarCard",
                    "card": {
                        "name": "Avatar Card",
                        "header": {"title": f"Hello {display_name}!"},
                        "sections": [
                            {
                                "widgets": [
                                    {"textParagraph": {"text": "Your avatar picture:"}},
                                    {"image": {"imageUrl": avatar_url}},
                                ]
                            }
                        ],
                    },
                }
            ],
        }

  8. ডিপ্লোয় ক্লিক করুন।

জাভা

  1. Google ক্লাউড কনসোলে, ক্লাউড ফাংশন পৃষ্ঠাতে যান:

    ক্লাউড ফাংশনে যান

    আপনার চ্যাট অ্যাপের জন্য প্রজেক্টটি বেছে নেওয়া হয়েছে তা নিশ্চিত করুন।

  2. Create Function এ ক্লিক করুন।

  3. ফাংশন তৈরি করুন পৃষ্ঠায়, আপনার ফাংশন সেট আপ করুন:

    1. পরিবেশে , ক্লাউড রান ফাংশন নির্বাচন করুন।
    2. ফাংশনের নামে , QuickStartChatApp লিখুন।
    3. অঞ্চলে , একটি অঞ্চল নির্বাচন করুন।
    4. প্রমাণীকরণের অধীনে, প্রমাণীকরণ প্রয়োজন নির্বাচন করুন।
    5. পরবর্তী ক্লিক করুন.
  4. রানটাইমে , জাভা-এর সাম্প্রতিকতম সংস্করণ নির্বাচন করুন।

  5. সোর্স কোডে , ইনলাইন এডিটর নির্বাচন করুন।

  6. এন্ট্রি পয়েন্টে , ডিফল্ট পাঠ্যটি মুছুন এবং App প্রবেশ করুন।

  7. src/main/java/com/example/Example.java এর নাম src/main/java/AvatarApp.java করুন।

  8. নিম্নলিখিত কোড দিয়ে AvatarApp.java এর বিষয়বস্তু প্রতিস্থাপন করুন:

    java/avatar-app/src/main/java/AvatarApp.java
    import com.google.api.services.chat.v1.model.CardWithId;
    import com.google.api.services.chat.v1.model.GoogleAppsCardV1Card;
    import com.google.api.services.chat.v1.model.GoogleAppsCardV1CardHeader;
    import com.google.api.services.chat.v1.model.GoogleAppsCardV1Image;
    import com.google.api.services.chat.v1.model.GoogleAppsCardV1Section;
    import com.google.api.services.chat.v1.model.GoogleAppsCardV1TextParagraph;
    import com.google.api.services.chat.v1.model.GoogleAppsCardV1Widget;
    import com.google.api.services.chat.v1.model.Message;
    import com.google.api.services.chat.v1.model.User;
    import com.google.cloud.functions.HttpFunction;
    import com.google.cloud.functions.HttpRequest;
    import com.google.cloud.functions.HttpResponse;
    import com.google.gson.Gson;
    import com.google.gson.JsonObject;
    import java.util.List;
    
    public class AvatarApp implements HttpFunction {
      private static final Gson gson = new Gson();
    
      // Command IDs (configure these in Google Chat API)
      private static final int ABOUT_COMMAND_ID = 1; // ID for the "/about" slash command
      private static final int HELP_COMMAND_ID = 2; // ID for the "Help" quick command
    
      @Override
      public void service(HttpRequest request, HttpResponse response) throws Exception {
        JsonObject event = gson.fromJson(request.getReader(), JsonObject.class);
    
        if (event.has("appCommandMetadata")) {
          handleAppCommands(event, response);
        } else {
          handleRegularMessage(event, response);
        }
      }
    
      /**
       * 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;
        }
      }
    
      /**
       * Handles regular messages (not commands).
       *
       * @param event    The Google Chat event.
       * @param response The HTTP response object.
       */
      private void handleRegularMessage(JsonObject event, HttpResponse response) throws Exception {
    
        if (!event.has("user")) {
          response.getWriter().write("Invalid request.");
          return;
        }
    
        JsonObject user = event.getAsJsonObject("user");
        String displayName = user.has("displayName") ? user.get("displayName").getAsString() : "";
        String avatarUrl = user.has("avatarUrl") ? user.get("avatarUrl").getAsString() : "";
        Message message = createMessage(displayName, avatarUrl);
        response.getWriter().write(gson.toJson(message));
      }
    
      /**
       * Creates a card message with the user's avatar.
       *
       * @param displayName The user's display name.
       * @param avatarUrl   The URL of the user's avatar.
       * @return The card message object.
       */
      private Message createMessage(String displayName, String avatarUrl) {
        return new Message()
            .setText("Here's your avatar")
            .setCardsV2(List.of(new CardWithId()
                .setCardId("avatarCard")
                .setCard(new GoogleAppsCardV1Card()
                    .setName("Avatar Card")
                    .setHeader(new GoogleAppsCardV1CardHeader()
                        .setTitle(String.format("Hello %s!", displayName)))
                    .setSections(List.of(new GoogleAppsCardV1Section().setWidgets(List.of(
                        new GoogleAppsCardV1Widget()
                            .setTextParagraph(new GoogleAppsCardV1TextParagraph()
                                .setText("Your avatar picture:")),
                        new GoogleAppsCardV1Widget()
                            .setImage(new GoogleAppsCardV1Image().setImageUrl(avatarUrl)))))))));
      }
    }

  9. নিম্নলিখিত কোড দিয়ে pom.xml এর বিষয়বস্তু প্রতিস্থাপন করুন:

    java/avatar-app/pom.xml
    <project xmlns="http://maven.apache.org/POM/4.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>gcfv2</groupId>
      <artifactId>avatar-app</artifactId>
      <version>0.0.1</version>
      <name>Avatar App</name>
    
      <properties>
        <maven.compiler.release>21</maven.compiler.release>
      </properties>
    
      <dependencies>
        <dependency>
          <groupId>com.google.cloud.functions</groupId>
          <artifactId>functions-framework-api</artifactId>
          <version>1.1.4</version>
        </dependency>
    
        <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
        <dependency>
          <groupId>com.google.code.gson</groupId>
          <artifactId>gson</artifactId>
          <version>2.12.1</version>
        </dependency>
    
        <!-- https://mvnrepository.com/artifact/com.google.apis/google-api-services-chat -->
        <dependency>
          <groupId>com.google.apis</groupId>
          <artifactId>google-api-services-chat</artifactId>
          <version>v1-rev20250116-2.0.0</version>
        </dependency>
    
      </dependencies>
    
    </project>

  10. ডিপ্লোয় ক্লিক করুন।

ক্লাউড ফাংশনের বিশদ পৃষ্ঠাটি খোলে, এবং আপনার ফাংশন দুটি অগ্রগতি সূচক সহ প্রদর্শিত হবে: একটি বিল্ডের জন্য এবং একটি পরিষেবার জন্য৷ যখন উভয় অগ্রগতি সূচক অদৃশ্য হয়ে যায় এবং একটি চেক চিহ্ন দিয়ে প্রতিস্থাপিত হয়, তখন আপনার ফাংশন স্থাপন করা হয় এবং প্রস্তুত হয়।

আপনার ফাংশন চালু করার জন্য Google চ্যাটকে অনুমোদন করুন

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

  1. Google ক্লাউড কনসোলে, ক্লাউড রান পৃষ্ঠায় যান:

    Cloud Run এ যান

  2. ক্লাউড রান পরিষেবা তালিকায়, প্রাপ্তি ফাংশনের পাশের চেকবক্সটি নির্বাচন করুন৷ (ফাংশন নিজেই ক্লিক করবেন না।)

  3. অনুমতিতে ক্লিক করুন। অনুমতি প্যানেল খোলে।

  4. অ্যাড প্রিন্সিপাল ক্লিক করুন।

  5. নতুন প্রিন্সিপালে , chat@system.gserviceaccount.com এ প্রবেশ করুন।

  6. একটি ভূমিকা নির্বাচন করুন , ক্লাউড রান > ক্লাউড রান ইনভোকার নির্বাচন করুন।

  7. Save এ ক্লিক করুন।

অ্যাপটি Google Chat-এ প্রকাশ করুন

ক্লাউড ফাংশন স্থাপন করার পরে, এটিকে একটি Google Chat অ্যাপে পরিণত করতে এই পদক্ষেপগুলি অনুসরণ করুন:

  1. Google ক্লাউড কনসোলে, মেনু > ক্লাউড ফাংশন- এ ক্লিক করুন।

    ক্লাউড ফাংশনে যান

    আপনি যে প্রকল্পের জন্য ক্লাউড ফাংশন সক্ষম করেছেন সেটি নির্বাচন করা হয়েছে তা নিশ্চিত করুন৷

  2. ফাংশনের তালিকায়, QuickStartChatApp-এ ক্লিক করুন।

  3. ট্রিগার ট্যাবে ক্লিক করুন।

  4. HTTPS এর অধীনে, URL টি অনুলিপি করুন।

  5. "Google Chat API" অনুসন্ধান করুন এবং Google Chat API-এ ক্লিক করুন, তারপর পরিচালনা করুন-এ ক্লিক করুন।

    চ্যাট API এ যান

  6. কনফিগারেশন ক্লিক করুন এবং Google চ্যাট অ্যাপ সেট আপ করুন:

    1. অ্যাপের নামে , Quickstart App লিখুন।
    2. Avatar URL- এ, https://developers.google.com/chat/images/quickstart-app-avatar.png লিখুন।
    3. বর্ণনায় , Quickstart app লিখুন।
    4. কার্যকারিতার অধীনে, 1:1 বার্তা গ্রহণ করুন এবং স্পেস এবং গ্রুপ কথোপকথনে যোগ দিন নির্বাচন করুন।
    5. সংযোগ সেটিংসের অধীনে, HTTP এন্ডপয়েন্ট URL নির্বাচন করুন এবং বাক্সে ক্লাউড ফাংশন ট্রিগারের URL পেস্ট করুন।
    6. প্রমাণীকরণ শ্রোতা- এ, HTTP এন্ডপয়েন্ট URL নির্বাচন করুন।
    7. দৃশ্যমানতার অধীনে, আপনার ডোমেনের নির্দিষ্ট ব্যক্তি এবং গোষ্ঠীর জন্য এই Google চ্যাট অ্যাপটি উপলব্ধ করুন নির্বাচন করুন এবং আপনার ইমেল ঠিকানা লিখুন৷
    8. লগের অধীনে, লগিং করতে লগ ত্রুটি নির্বাচন করুন।
  7. Save এ ক্লিক করুন।

চ্যাট অ্যাপটি চ্যাটে বার্তাগুলি গ্রহণ এবং উত্তর দেওয়ার জন্য প্রস্তুত৷

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

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

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

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

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

  5. অ্যাপটির সাথে নতুন সরাসরি বার্তায়, Hello টাইপ করুন এবং enter টিপুন।

চ্যাট অ্যাপের প্রতিক্রিয়াতে একটি কার্ড বার্তা রয়েছে যা প্রেরকের নাম এবং অবতার ছবি প্রদর্শন করে, যেমনটি নিম্নলিখিত ছবিতে দেখানো হয়েছে:

চ্যাট অ্যাপ প্রেরকের ডিসপ্লে নাম এবং অবতার সমন্বিত একটি কার্ডের সাথে সাড়া দিচ্ছে ইমেজ

বিশ্বস্ত পরীক্ষক যোগ করতে এবং ইন্টারেক্টিভ বৈশিষ্ট্যগুলি পরীক্ষা করার বিষয়ে আরও জানতে, Google চ্যাট অ্যাপগুলির জন্য পরীক্ষা ইন্টারেক্টিভ বৈশিষ্ট্যগুলি দেখুন৷

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

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

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

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

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

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

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

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