Google Chat API ব্যবহার করে একটি বার্তা পাঠান

এই নির্দেশিকায় ব্যাখ্যা করা হয়েছে কিভাবে গুগল চ্যাট এপিআই-এর Message রিসোর্সের create() মেথড ব্যবহার করে নিম্নলিখিত যেকোনো কাজ করা যায়:

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

বার্তার সর্বোচ্চ আকার (যেকোনো টেক্সট বা কার্ড সহ) হলো ৩২,০০০ বাইট। এই আকারের চেয়ে বড় কোনো বার্তা পাঠাতে হলে, আপনার চ্যাট অ্যাপকে অবশ্যই একাধিক বার্তা পাঠাতে হবে।

মেসেজ তৈরি করার জন্য চ্যাট এপিআই (Chat API) কল করার পাশাপাশি, চ্যাট অ্যাপগুলো ব্যবহারকারীর ইন্টারঅ্যাকশনের উত্তর দেওয়ার জন্য মেসেজ তৈরি ও পাঠাতে পারে; যেমন, কোনো ব্যবহারকারী একটি স্পেসে চ্যাট অ্যাপটি যুক্ত করার পর একটি স্বাগত বার্তা পোস্ট করা। ইন্টারঅ্যাকশনের উত্তর দেওয়ার সময়, চ্যাট অ্যাপগুলো অন্যান্য ধরনের মেসেজিং ফিচার ব্যবহার করতে পারে, যার মধ্যে রয়েছে ইন্টারেক্টিভ ডায়ালগ এবং লিঙ্ক প্রিভিউ ইন্টারফেস। কোনো ব্যবহারকারীকে উত্তর দেওয়ার জন্য, চ্যাট অ্যাপটি চ্যাট এপিআই কল না করেই সিনক্রোনাসভাবে মেসেজটি ফেরত পাঠায়। ইন্টারঅ্যাকশনের উত্তর দেওয়ার জন্য মেসেজ পাঠানো সম্পর্কে জানতে, “আপনার গুগল চ্যাট অ্যাপের মাধ্যমে ইন্টারঅ্যাকশন গ্রহণ ও তার উত্তর দিন” দেখুন।

চ্যাট এপিআই দিয়ে তৈরি করা মেসেজগুলো চ্যাট কীভাবে প্রদর্শন ও বৈশিষ্ট্যমণ্ডিত করে

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

আপনি যখন চ্যাট অ্যাপ হিসেবে প্রমাণীকরণ করেন, তখন চ্যাট অ্যাপটি বার্তাটি পাঠায়।

অ্যাপ অথেন্টিকেশন ব্যবহার করে create() মেথড কল করা হচ্ছে।
চিত্র ১ : অ্যাপ প্রমাণীকরণের মাধ্যমে, চ্যাট অ্যাপটি বার্তাটি পাঠায়। প্রেরক যে কোনো ব্যক্তি নয়, তা বোঝানোর জন্য চ্যাট তার নামের পাশে App প্রদর্শন করে।

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

ব্যবহারকারীর প্রমাণীকরণ সহ create() মেথড কল করা হচ্ছে।
চিত্র ২ : ব্যবহারকারী প্রমাণীকরণের মাধ্যমে, ব্যবহারকারী বার্তা পাঠান এবং চ্যাট ব্যবহারকারীর নামের পাশে চ্যাট অ্যাপের নামটি প্রদর্শন করে।

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

চ্যাট এপিআই-এর জন্য উপলব্ধ মেসেজিং বৈশিষ্ট্যগুলি সম্পর্কে আরও জানতে, গুগল চ্যাট মেসেজ ওভারভিউ দেখুন।

এই নির্দেশিকায় ব্যাখ্যা করা হয়েছে কীভাবে চ্যাট এপিআই ব্যবহার করে বার্তা পাঠানোর জন্য যেকোনো একটি প্রমাণীকরণ পদ্ধতি ব্যবহার করতে হয়।

পূর্বশর্ত

নোড.জেএস

পাইথন

জাভা

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

চ্যাট অ্যাপ হিসেবে একটি বার্তা পাঠান

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

অ্যাপ প্রমাণীকরণের মাধ্যমে বার্তা পাঠানো হয়েছে।
চিত্র ৪। একটি চ্যাট অ্যাপ টেক্সট, একটি কার্ড এবং একটি অ্যাক্সেসরি বাটনসহ একটি মেসেজ পাঠায়।

অ্যাপ অথেন্টিকেশন ব্যবহার করে CreateMessage() মেথডটি কল করতে হলে, আপনাকে রিকোয়েস্টে নিম্নলিখিত ফিল্ডগুলো অবশ্যই উল্লেখ করতে হবে:

  • chat.bot অনুমোদনের পরিধি
  • যে Space রিসোর্সে আপনি বার্তাটি পোস্ট করতে চান। চ্যাট অ্যাপটিকে অবশ্যই স্পেসটির সদস্য হতে হবে।
  • তৈরি করার জন্য Message রিসোর্স। মেসেজের বিষয়বস্তু নির্ধারণ করতে, আপনি রিচ টেক্সট ( text ), এক বা একাধিক কার্ড ইন্টারফেস ( cardsV2 ), অথবা উভয়ই অন্তর্ভুক্ত করতে পারেন।

ঐচ্ছিকভাবে, আপনি নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত করতে পারেন:

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

নোড.জেএস

chat/client-libraries/cloud/create-message-app-cred.js
import {createClientWithAppCredentials} from './authentication-utils.js';

// This sample shows how to create message with app credential
async function main() {
  // Create a client
  const chatClient = createClientWithAppCredentials();

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME here.
    parent: 'spaces/SPACE_NAME',
    message: {
      text:
        '👋🌎 Hello world! I created this message by calling ' +
        "the Chat API's `messages.create()` method.",
      cardsV2: [
        {
          card: {
            header: {
              title: 'About this message',
              imageUrl:
                'https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/info/default/24px.svg',
            },
            sections: [
              {
                header: 'Contents',
                widgets: [
                  {
                    textParagraph: {
                      text:
                        '🔡 <b>Text</b> which can include ' +
                        'hyperlinks 🔗, emojis 😄🎉, and @mentions 🗣️.',
                    },
                  },
                  {
                    textParagraph: {
                      text:
                        '🖼️ A <b>card</b> to display visual elements' +
                        'and request information such as text 🔤, ' +
                        'dates and times 📅, and selections ☑️.',
                    },
                  },
                  {
                    textParagraph: {
                      text:
                        '👉🔘 An <b>accessory widget</b> which adds ' +
                        'a button to the bottom of a message.',
                    },
                  },
                ],
              },
              {
                header: "What's next",
                collapsible: true,
                widgets: [
                  {
                    textParagraph: {
                      text: "❤️ <a href='https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.reactions/create'>Add a reaction</a>.",
                    },
                  },
                  {
                    textParagraph: {
                      text:
                        "🔄 <a href='https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/patch'>Update</a> " +
                        "or ❌ <a href='https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/delete'>delete</a> " +
                        'the message.',
                    },
                  },
                ],
              },
            ],
          },
        },
      ],
      accessoryWidgets: [
        {
          buttonList: {
            buttons: [
              {
                text: 'View documentation',
                icon: {materialIcon: {name: 'link'}},
                onClick: {
                  openLink: {
                    url: 'https://developers.google.com/workspace/chat/create-messages',
                  },
                },
              },
            ],
          },
        },
      ],
    },
  };

  // Make the request
  const response = await chatClient.createMessage(request);

  // Handle the response
  console.log(response);
}

await main();

পাইথন

chat/client-libraries/cloud/create_message_app_cred.py
from authentication_utils import create_client_with_app_credentials
from google.apps import chat_v1 as google_chat

# This sample shows how to create message with app credential
def create_message_with_app_cred():
    # Create a client
    client = create_client_with_app_credentials()

    # Initialize request argument(s)
    request = google_chat.CreateMessageRequest(
        # Replace SPACE_NAME here.
        parent = "spaces/SPACE_NAME",
        message = {
            "text": '👋🌎 Hello world! I created this message by calling ' +
                    'the Chat API\'s `messages.create()` method.',
            "cards_v2" : [{ "card": {
                "header": {
                    "title": 'About this message',
                    "image_url": 'https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/info/default/24px.svg'
                },
                "sections": [{
                    "header": "Contents",
                    "widgets": [{ "text_paragraph": {
                            "text": '🔡 <b>Text</b> which can include ' +
                                    'hyperlinks 🔗, emojis 😄🎉, and @mentions 🗣️.'
                        }}, { "text_paragraph": {
                            "text": '🖼️ A <b>card</b> to display visual elements' +
                                    'and request information such as text 🔤, ' +
                                    'dates and times 📅, and selections ☑️.'
                        }}, { "text_paragraph": {
                            "text": '👉🔘 An <b>accessory widget</b> which adds ' +
                                    'a button to the bottom of a message.'
                        }}
                    ]}, {
                        "header": "What's next",
                        "collapsible": True,
                        "widgets": [{ "text_paragraph": {
                                "text": "❤️ <a href='https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.reactions/create'>Add a reaction</a>."
                            }}, { "text_paragraph": {
                                "text": "🔄 <a href='https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/patch'>Update</a> " +
                                        "or ❌ <a href='https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/delete'>delete</a> " +
                                        "the message."
                            }
                        }]
                    }
                ]
            }}],
            "accessory_widgets": [{ "button_list": { "buttons": [{
                "text": 'View documentation',
                "icon": { "material_icon": { "name": 'link' }},
                "on_click": { "open_link": {
                    "url": 'https://developers.google.com/workspace/chat/create-messages'
                }}
            }]}}]
        }
    )

    # Make the request
    response = client.create_message(request)

    # Handle the response
    print(response)

create_message_with_app_cred()

জাভা

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/CreateMessageAppCred.java
import com.google.apps.card.v1.Button;
import com.google.apps.card.v1.ButtonList;
import com.google.apps.card.v1.Card;
import com.google.apps.card.v1.Icon;
import com.google.apps.card.v1.MaterialIcon;
import com.google.apps.card.v1.OnClick;
import com.google.apps.card.v1.OpenLink;
import com.google.apps.card.v1.TextParagraph;
import com.google.apps.card.v1.Widget;
import com.google.apps.card.v1.Card.CardHeader;
import com.google.apps.card.v1.Card.Section;
import com.google.chat.v1.AccessoryWidget;
import com.google.chat.v1.CardWithId;
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.CreateMessageRequest;
import com.google.chat.v1.Message;

// This sample shows how to create message with app credential.
public class CreateMessageAppCred {

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithAppCredentials()) {
      CreateMessageRequest.Builder request = CreateMessageRequest.newBuilder()
        // Replace SPACE_NAME here.
        .setParent("spaces/SPACE_NAME")
        .setMessage(Message.newBuilder()
          .setText( "👋🌎 Hello world! I created this message by calling " +
                    "the Chat API\'s `messages.create()` method.")
          .addCardsV2(CardWithId.newBuilder().setCard(Card.newBuilder()
            .setHeader(CardHeader.newBuilder()
              .setTitle("About this message")
              .setImageUrl("https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/info/default/24px.svg"))
            .addSections(Section.newBuilder()
              .setHeader("Contents")
              .addWidgets(Widget.newBuilder().setTextParagraph(TextParagraph.newBuilder().setText(
                "🔡 <b>Text</b> which can include " +
                "hyperlinks 🔗, emojis 😄🎉, and @mentions 🗣️.")))
              .addWidgets(Widget.newBuilder().setTextParagraph(TextParagraph.newBuilder().setText(
                "🖼️ A <b>card</b> to display visual elements " +
                "and request information such as text 🔤, " +
                "dates and times 📅, and selections ☑️.")))
              .addWidgets(Widget.newBuilder().setTextParagraph(TextParagraph.newBuilder().setText(
                "👉🔘 An <b>accessory widget</b> which adds " +
                "a button to the bottom of a message."))))
            .addSections(Section.newBuilder()
              .setHeader("What's next")
              .setCollapsible(true)
              .addWidgets(Widget.newBuilder().setTextParagraph(TextParagraph.newBuilder().setText(
                "❤️ <a href='https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.reactions/create'>Add a reaction</a>.")))
              .addWidgets(Widget.newBuilder().setTextParagraph(TextParagraph.newBuilder().setText(
                "🔄 <a href='https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/patch'>Update</a> " +
                "or ❌ <a href='https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/delete'>delete</a> " +
                "the message."))))))
          .addAccessoryWidgets(AccessoryWidget.newBuilder()
            .setButtonList(ButtonList.newBuilder()
              .addButtons(Button.newBuilder()
                .setText("View documentation")
                .setIcon(Icon.newBuilder()
                  .setMaterialIcon(MaterialIcon.newBuilder().setName("link")))
                .setOnClick(OnClick.newBuilder()
                  .setOpenLink(OpenLink.newBuilder()
                    .setUrl("https://developers.google.com/workspace/chat/create-messages")))))));
      Message response = chatServiceClient.createMessage(request.build());

      System.out.println(JsonFormat.printer().print(response));
    }
  }
}

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

chat/advanced-service/Main.gs
/**
 * This sample shows how to create message with app credential
 *
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.bot'
 * used by service accounts.
 */
function createMessageAppCred() {
  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME here.
  const parent = "spaces/SPACE_NAME";
  const message = {
    text:
      "👋🌎 Hello world! I created this message by calling " +
      "the Chat API's `messages.create()` method.",
    cardsV2: [
      {
        card: {
          header: {
            title: "About this message",
            imageUrl:
              "https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/info/default/24px.svg",
          },
          sections: [
            {
              header: "Contents",
              widgets: [
                {
                  textParagraph: {
                    text:
                      "🔡 <b>Text</b> which can include " +
                      "hyperlinks 🔗, emojis 😄🎉, and @mentions 🗣️.",
                  },
                },
                {
                  textParagraph: {
                    text:
                      "🖼️ A <b>card</b> to display visual elements" +
                      "and request information such as text 🔤, " +
                      "dates and times 📅, and selections ☑️.",
                  },
                },
                {
                  textParagraph: {
                    text:
                      "👉🔘 An <b>accessory widget</b> which adds " +
                      "a button to the bottom of a message.",
                  },
                },
              ],
            },
            {
              header: "What's next",
              collapsible: true,
              widgets: [
                {
                  textParagraph: {
                    text: "❤️ <a href='https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages.reactions/create'>Add a reaction</a>.",
                  },
                },
                {
                  textParagraph: {
                    text:
                      "🔄 <a href='https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/patch'>Update</a> " +
                      "or ❌ <a href='https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.messages/delete'>delete</a> " +
                      "the message.",
                  },
                },
              ],
            },
          ],
        },
      },
    ],
    accessoryWidgets: [
      {
        buttonList: {
          buttons: [
            {
              text: "View documentation",
              icon: { materialIcon: { name: "link" } },
              onClick: {
                openLink: {
                  url: "https://developers.google.com/workspace/chat/create-messages",
                },
              },
            },
          ],
        },
      },
    ],
  };
  const parameters = {};

  // Make the request
  const response = Chat.Spaces.Messages.create(
    message,
    parent,
    parameters,
    getHeaderWithAppCredentials(),
  );

  // Handle the response
  console.log(response);
}

এই নমুনাটি চালানোর জন্য, SPACE_NAME জায়গায় স্পেসটির name ফিল্ড থেকে পাওয়া ID-টি বসান। আপনি ListSpaces() মেথড কল করে অথবা স্পেসটির URL থেকে ID-টি পেতে পারেন।

বার্তার নীচে ইন্টারেক্টিভ উইজেট যোগ করুন

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

  • কোনো বার্তার নির্ভুলতা বা সন্তুষ্টির মূল্যায়ন করুন।
  • মেসেজ বা চ্যাট অ্যাপে কোনো সমস্যা হলে জানান।
  • ডকুমেন্টেশনের মতো সম্পর্কিত কন্টেন্টের একটি লিঙ্ক খুলুন।
  • চ্যাট অ্যাপ থেকে আসা একই ধরনের মেসেজ একটি নির্দিষ্ট সময়ের জন্য খারিজ করুন বা স্থগিত রাখুন।

অ্যাক্সেসরি উইজেট যোগ করতে, আপনার রিকোয়েস্টের বডিতে accessoryWidgets[] ফিল্ডটি অন্তর্ভুক্ত করুন এবং আপনি যে এক বা একাধিক উইজেট যোগ করতে চান তা নির্দিষ্ট করুন।

নিচের ছবিতে এমন একটি চ্যাট অ্যাপ দেখানো হয়েছে, যা একটি টেক্সট মেসেজের সাথে বিভিন্ন আনুষঙ্গিক উইজেট যুক্ত করে, যাতে ব্যবহারকারীরা চ্যাট অ্যাপটি ব্যবহারের অভিজ্ঞতা মূল্যায়ন করতে পারেন।

আনুষঙ্গিক উইজেট।
চিত্র ৫ : টেক্সট এবং অ্যাকসেসরি উইজেটসহ একটি চ্যাট অ্যাপের বার্তা।

নিম্নলিখিত অংশে এমন একটি রিকোয়েস্টের বডি দেখানো হয়েছে যা দুটি অ্যাক্সেসরি বাটনসহ একটি টেক্সট মেসেজ তৈরি করে। যখন কোনো ব্যবহারকারী একটি বাটনে ক্লিক করেন, তখন সংশ্লিষ্ট ফাংশনটি (যেমন doUpvote ) সেই ইন্টারঅ্যাকশনটি প্রসেস করে:

{
  text: "Rate your experience with this Chat app.",
  accessoryWidgets: [{ buttonList: { buttons: [{
    icon: { material_icon: {
      name: "thumb_up"
    }},
    color: { red: 0, blue: 255, green: 0 },
    onClick: { action: {
      function: "doUpvote"
    }}
  }, {
    icon: { material_icon: {
      name: "thumb_down"
    }},
    color: { red: 0, blue: 255, green: 0 },
    onClick: { action: {
      function: "doDownvote"
    }}
  }]}}]
}

ব্যক্তিগতভাবে একটি বার্তা পাঠান

চ্যাট অ্যাপগুলো ব্যক্তিগতভাবে বার্তা পাঠাতে পারে, যাতে বার্তাটি শুধুমাত্র ওই প্ল্যাটফর্মের একজন নির্দিষ্ট ব্যবহারকারীই দেখতে পান। যখন কোনো চ্যাট অ্যাপ একটি ব্যক্তিগত বার্তা পাঠায়, তখন বার্তাটিতে একটি লেবেল দেখানো হয় যা ব্যবহারকারীকে জানিয়ে দেয় যে বার্তাটি শুধুমাত্র তিনিই দেখতে পাবেন।

চ্যাট এপিআই ব্যবহার করে ব্যক্তিগতভাবে বার্তা পাঠাতে, আপনার অনুরোধের বডিতে privateMessageViewer ফিল্ডটি উল্লেখ করুন। ব্যবহারকারীকে নির্দিষ্ট করতে, চ্যাট ব্যবহারকারীকে প্রতিনিধিত্বকারী User রিসোর্সের ভ্যালুটি সেট করুন। এছাড়াও আপনি User রিসোর্সের name ফিল্ডটি ব্যবহার করতে পারেন, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে:

{
  text: "Hello private world!",
  privateMessageViewer: {
    name: "users/USER_ID"
  }
}

এই নমুনাটি ব্যবহার করতে, USER_ID জায়গায় ব্যবহারকারীর একটি অনন্য আইডি বসান, যেমন 12345678987654321 বা hao@cymbalgroup.com । ব্যবহারকারী নির্দিষ্ট করার বিষয়ে আরও তথ্যের জন্য, “Google Chat ব্যবহারকারীদের শনাক্ত ও নির্দিষ্ট করুন” দেখুন।

ব্যক্তিগতভাবে বার্তা পাঠাতে হলে, আপনার অনুরোধে নিম্নলিখিত বিষয়গুলো বাদ দিতে হবে:

বাধ্যতামূলক বিজ্ঞপ্তি বা নীরব বার্তা পাঠান

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

  • নোটিফিকেশন বাধ্যতামূলক করুন : প্রাপকদের নোটিফিকেশন সেটিংস বা ডু নট ডিস্টার্ব (DND) স্ট্যাটাস নির্বিশেষে, চ্যাট সর্বদা তাদের কাছে একটি পুশ নোটিফিকেশন পাঠায়। চ্যাটের ভেতরে, এই মেসেজটি প্রাপকদের রোস্টার বা হোম লিস্টে বোল্ড ও বাম্প হয়ে যায় এবং একটি ব্যাজ দেখায়।
  • একটি সাইলেন্ট মেসেজ পাঠান : চ্যাট প্রাপকদের জন্য পুশ নোটিফিকেশন বন্ধ করে দেয়। চ্যাটের ভেতরে, এই মেসেজটি প্রাপকদের রোস্টার বা হোম লিস্টে বোল্ড বা বাম্প হয় না এবং কোনো ব্যাজও দেখায় না। যদি সাইলেন্ট মেসেজটি কোনো কথোপকথনের শেষ মেসেজ হয়, তবে এর বিষয়বস্তু হোম স্নিপেটে দেখানো হয় না।

বাধ্যতামূলক হোক বা নীরব, এই বার্তাগুলিতে একটি দৃশ্যমান নির্দেশক থাকে যা প্রাপকদের বিশেষ নোটিফিকেশন আচরণ সম্পর্কে অবহিত করে।

বাধ্যতামূলক নোটিফিকেশন এবং সাইলেন্ট মেসেজ শুধুমাত্র অ্যাপ অথেন্টিকেশন ব্যবহারকারী চ্যাট অ্যাপগুলোর জন্যই উপলব্ধ।

বাধ্যতামূলক বিজ্ঞপ্তি এবং নীরব বার্তাগুলির এই সীমাবদ্ধতাগুলি রয়েছে:

  • বহিরাগত ব্যবহারকারী : একটি স্পেসের বহিরাগত ব্যবহারকারীদের (অতিথি) ক্ষেত্রে বাধ্যতামূলক নোটিফিকেশন এবং সাইলেন্ট মেসেজ প্রযোজ্য নয়। বহিরাগত ব্যবহারকারীরা তাদের নিজস্ব সেটিংস অনুযায়ী নোটিফিকেশন পেয়ে থাকেন।
  • মেনশন : সাইলেন্ট মেসেজে ব্যবহারকারীদের মেনশন করা যায় না। আপনি যদি কোনো সাইলেন্ট মেসেজে মেনশন অন্তর্ভুক্ত করেন, তবে তা সাধারণ টেক্সট হিসেবে গণ্য হয়।
  • থ্রেডিং : আপনি সাইলেন্ট মেসেজ দিয়ে কোনো থ্রেড শুরু করতে বা তাতে উত্তর দিতে পারবেন না।
  • স্পেসের ধরণ : ডাইরেক্ট মেসেজ (DM) বা যাদের গুগল ওয়ার্কস্পেস অ্যাকাউন্ট নেই, তাদের মালিকানাধীন স্পেসে বাধ্যতামূলক নোটিফিকেশন এবং সাইলেন্ট মেসেজ সমর্থিত নয়।
  • ইমেল নোটিফিকেশন : সাইলেন্ট মেসেজ ইমেল নোটিফিকেশন পাঠায় না। ফোর্স-নোটিফাইড মেসেজ শুধুমাত্র তখনই ইমেল নোটিফিকেশন পাঠায়, যদি সেগুলিতে কোনো নির্দিষ্ট ব্যবহারকারীকে মেনশন করা থাকে।

বাধ্যতামূলকভাবে নোটিফিকেশন পাঠাতে বা নীরব বার্তা পাঠাতে, আপনার অনুরোধে createMessageNotificationOptions ফিল্ডটি অন্তর্ভুক্ত করুন এবং notificationType নিম্নলিখিতগুলির মধ্যে একটিতে সেট করুন:

মূল্য আচরণ
NOTIFICATION_TYPE_FORCE_NOTIFY বিজ্ঞপ্তি প্রদর্শনে বাধ্য করে।
NOTIFICATION_TYPE_SILENT নীরবে বার্তা পাঠায়।

নিম্নলিখিত উদাহরণটি একটি বাধ্যতামূলক নোটিফিকেশন সহ বার্তা পাঠানোর অনুরোধের JSON বডি দেখাচ্ছে:

{
  "text": "Critical update: the server is down!",
  "createMessageNotificationOptions": {
    "notificationType": "NOTIFICATION_TYPE_FORCE_NOTIFY"
  }
}

একজন ব্যবহারকারীর পক্ষ থেকে একটি টেক্সট মেসেজ পাঠান

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

ব্যবহারকারীর প্রমাণীকরণের মাধ্যমে বার্তা পাঠানো হয়েছে।
চিত্র ৩. একটি চ্যাট অ্যাপ ব্যবহারকারীর পক্ষ থেকে একটি টেক্সট মেসেজ পাঠায়।

ব্যবহারকারী প্রমাণীকরণ ব্যবহার করে CreateMessage() মেথডটি কল করতে হলে, আপনাকে রিকোয়েস্টে নিম্নলিখিত ফিল্ডগুলো অবশ্যই উল্লেখ করতে হবে:

  • একটি অনুমোদন স্কোপ যা এই পদ্ধতির জন্য ব্যবহারকারী প্রমাণীকরণ সমর্থন করে। নিম্নলিখিত নমুনাটি chat.messages.create স্কোপ ব্যবহার করে।
  • যে Space রিসোর্সে আপনি বার্তাটি পোস্ট করতে চান। প্রমাণীকৃত ব্যবহারকারীকে অবশ্যই স্পেসটির সদস্য হতে হবে।
  • তৈরি করার জন্য Message রিসোর্স। মেসেজের বিষয়বস্তু নির্ধারণ করতে, আপনাকে অবশ্যই text ফিল্ড অন্তর্ভুক্ত করতে হবে।

ঐচ্ছিকভাবে, আপনি নিম্নলিখিত বিষয়গুলো অন্তর্ভুক্ত করতে পারেন:

নিম্নলিখিত কোডটিতে দেখানো হয়েছে, কীভাবে একটি চ্যাট অ্যাপ কোনো প্রমাণীকৃত ব্যবহারকারীর পক্ষ থেকে একটি নির্দিষ্ট স্পেসে টেক্সট মেসেজ পাঠাতে পারে:

নোড.জেএস

chat/client-libraries/cloud/create-message-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = [
  'https://www.googleapis.com/auth/chat.messages.create',
];

// This sample shows how to create message with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(
    USER_AUTH_OAUTH_SCOPES,
  );

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME here.
    parent: 'spaces/SPACE_NAME',
    message: {
      text:
        '👋🌎 Hello world!' +
        'Text messages can contain things like:\n\n' +
        '* Hyperlinks 🔗\n' +
        '* Emojis 😄🎉\n' +
        '* Mentions of other Chat users `@` \n\n' +
        'For details, see the ' +
        '<https://developers.google.com/workspace/chat/format-messages' +
        '|Chat API developer documentation>.',
    },
  };

  // Make the request
  const response = await chatClient.createMessage(request);

  // Handle the response
  console.log(response);
}

await main();

পাইথন

chat/client-libraries/cloud/create_message_user_cred.py
from authentication_utils import create_client_with_user_credentials
from google.apps import chat_v1 as google_chat

SCOPES = ["https://www.googleapis.com/auth/chat.messages.create"]

def create_message_with_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.CreateMessageRequest(
        # Replace SPACE_NAME here.
        parent = "spaces/SPACE_NAME",
        message = {
            "text": '👋🌎 Hello world!' +
                    'Text messages can contain things like:\n\n' +
                    '* Hyperlinks 🔗\n' +
                    '* Emojis 😄🎉\n' +
                    '* Mentions of other Chat users `@` \n\n' +
                    'For details, see the ' +
                    '<https://developers.google.com/workspace/chat/format-messages' +
                    '|Chat API developer documentation>.'
        }
    )

    # Make the request
    response = client.create_message(request)

    # Handle the response
    print(response)

create_message_with_user_cred()

জাভা

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/CreateMessageUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.CreateMessageRequest;
import com.google.chat.v1.Message;

// This sample shows how to create message with user credential.
public class CreateMessageUserCred {

  private static final String SCOPE =
    "https://www.googleapis.com/auth/chat.messages.create";

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithUserCredentials(
          ImmutableList.of(SCOPE))) {
      CreateMessageRequest.Builder request = CreateMessageRequest.newBuilder()
        // Replace SPACE_NAME here.
        .setParent("spaces/SPACE_NAME")
        .setMessage(Message.newBuilder()
          .setText( "👋🌎 Hello world!" +
                    "Text messages can contain things like:\n\n" +
                    "* Hyperlinks 🔗\n" +
                    "* Emojis 😄🎉\n" +
                    "* Mentions of other Chat users `@` \n\n" +
                    "For details, see the " +
                    "<https://developers.google.com/workspace/chat/format-messages" +
                    "|Chat API developer documentation>."));
      Message response = chatServiceClient.createMessage(request.build());

      System.out.println(JsonFormat.printer().print(response));
    }
  }
}

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

chat/advanced-service/Main.gs
/**
 * This sample shows how to create message with user credential
 *
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages.create'
 * referenced in the manifest file (appsscript.json).
 */
function createMessageUserCred() {
  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME here.
  const parent = "spaces/SPACE_NAME";
  const message = {
    text:
      "👋🌎 Hello world!" +
      "Text messages can contain things like:\n\n" +
      "* Hyperlinks 🔗\n" +
      "* Emojis 😄🎉\n" +
      "* Mentions of other Chat users `@` \n\n" +
      "For details, see the " +
      "<https://developers.google.com/workspace/chat/format-messages" +
      "|Chat API developer documentation>.",
  };

  // Make the request
  const response = Chat.Spaces.Messages.create(message, parent);

  // Handle the response
  console.log(response);
}

এই নমুনাটি চালানোর জন্য, SPACE_NAME জায়গায় স্পেসটির name ফিল্ড থেকে পাওয়া ID-টি বসান। আপনি ListSpaces() মেথড কল করে অথবা স্পেসটির URL থেকে ID-টি পেতে পারেন।

একটি থ্রেডে শুরু করুন বা উত্তর দিন

যেসব স্পেসে থ্রেড ব্যবহার করা হয়, সেখানে আপনি নির্দিষ্ট করে দিতে পারেন যে একটি নতুন মেসেজ একটি থ্রেড শুরু করবে, নাকি কোনো বিদ্যমান থ্রেডের উত্তর দেবে।

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

  • আপনার অনুরোধের মূল অংশে thread.threadKey ফিল্ডটি উল্লেখ করুন।
  • কী-টি আগে থেকেই বিদ্যমান থাকলে কী ঘটবে তা নির্ধারণ করতে messageReplyOption কোয়েরি প্যারামিটারটি নির্দিষ্ট করুন।

বিদ্যমান কোনো থ্রেডের উত্তরে একটি বার্তা তৈরি করতে:

  • আপনার অনুরোধের মূল অংশে thread ফিল্ডটি অন্তর্ভুক্ত করুন। যদি সেট করা থাকে, তাহলে আপনি আপনার তৈরি করা threadKey ) নির্দিষ্ট করতে পারেন। অন্যথায়, আপনাকে অবশ্যই থ্রেডের name ব্যবহার করতে হবে।
  • messageReplyOption কোয়েরি প্যারামিটারটি নির্দিষ্ট করুন।

নিম্নলিখিত কোডটিতে একটি উদাহরণ দেখানো হয়েছে, যেখানে একটি চ্যাট অ্যাপ একজন প্রমাণীকৃত ব্যবহারকারীর পক্ষ থেকে একটি নির্দিষ্ট স্পেসের কী (key) দ্বারা চিহ্নিত কোনো থ্রেড শুরু করতে বা তার উত্তর দিতে একটি টেক্সট মেসেজ পাঠাতে পারে:

নোড.জেএস

chat/client-libraries/cloud/create-message-user-cred-thread-key.js
import {protos} from '@google-apps/chat';
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = [
  'https://www.googleapis.com/auth/chat.messages.create',
];

// This sample shows how to create message with user credential with thread key
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(
    USER_AUTH_OAUTH_SCOPES,
  );

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME here.
    parent: 'spaces/SPACE_NAME',
    // Creates the message as a reply to the thread specified by thread_key
    // If it fails, the message starts a new thread instead
    messageReplyOption:
      protos.google.chat.v1.CreateMessageRequest.MessageReplyOption
        .REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD,
    message: {
      text: 'Hello with user credential!',
      thread: {
        // Thread key specifies a thread and is unique to the chat app
        // that sets it
        threadKey: 'THREAD_KEY',
      },
    },
  };

  // Make the request
  const response = await chatClient.createMessage(request);

  // Handle the response
  console.log(response);
}

await main();

পাইথন

chat/client-libraries/cloud/create_message_user_cred_thread_key.py
from authentication_utils import create_client_with_user_credentials
from google.apps import chat_v1 as google_chat

import google.apps.chat_v1.CreateMessageRequest.MessageReplyOption

SCOPES = ["https://www.googleapis.com/auth/chat.messages.create"]

# This sample shows how to create message with user credential with thread key
def create_message_with_user_cred_thread_key():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.CreateMessageRequest(
        # Replace SPACE_NAME here
        parent = "spaces/SPACE_NAME",
        # Creates the message as a reply to the thread specified by thread_key.
        # If it fails, the message starts a new thread instead.
        message_reply_option = MessageReplyOption.REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD,
        message = {
            "text": "Hello with user credential!",
            "thread": {
                # Thread key specifies a thread and is unique to the chat app
                # that sets it.
                "thread_key": "THREAD_KEY"
            }
        }
    )

    # Make the request
    response = client.create_message(request)

    # Handle the response
    print(response)

create_message_with_user_cred_thread_key()

জাভা

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/CreateMessageUserCredThreadKey.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.CreateMessageRequest;
import com.google.chat.v1.CreateMessageRequest.MessageReplyOption;
import com.google.chat.v1.Message;
import com.google.chat.v1.Thread;

// This sample shows how to create message with a thread key with user
// credential.
public class CreateMessageUserCredThreadKey {

  private static final String SCOPE =
    "https://www.googleapis.com/auth/chat.messages.create";

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithUserCredentials(
          ImmutableList.of(SCOPE))) {
      CreateMessageRequest.Builder request = CreateMessageRequest.newBuilder()
        // Replace SPACE_NAME here.
        .setParent("spaces/SPACE_NAME")
        // Creates the message as a reply to the thread specified by thread_key.
        // If it fails, the message starts a new thread instead.
        .setMessageReplyOption(
          MessageReplyOption.REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD)
        .setMessage(Message.newBuilder()
          .setText("Hello with user credentials!")
          // Thread key specifies a thread and is unique to the chat app
          // that sets it.
          .setThread(Thread.newBuilder().setThreadKey("THREAD_KEY")));
      Message response = chatServiceClient.createMessage(request.build());

      System.out.println(JsonFormat.printer().print(response));
    }
  }
}

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

chat/advanced-service/Main.gs
/**
 * This sample shows how to create message with user credential with thread key
 *
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages.create'
 * referenced in the manifest file (appsscript.json).
 */
function createMessageUserCredThreadKey() {
  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME here.
  const parent = "spaces/SPACE_NAME";
  // Creates the message as a reply to the thread specified by thread_key
  // If it fails, the message starts a new thread instead
  const messageReplyOption = "REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD";
  const message = {
    text: "Hello with user credential!",
    thread: {
      // Thread key specifies a thread and is unique to the chat app
      // that sets it
      threadKey: "THREAD_KEY",
    },
  };

  // Make the request
  const response = Chat.Spaces.Messages.create(message, parent, {
    messageReplyOption: messageReplyOption,
  });

  // Handle the response
  console.log(response);
}

এই নমুনাটি চালানোর জন্য, নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • THREAD_KEY : স্পেসটিতে বিদ্যমান একটি থ্রেড কী, অথবা নতুন থ্রেড তৈরি করার জন্য থ্রেডটির একটি অনন্য নাম।
  • SPACE_NAME : স্পেসটির name ফিল্ড থেকে প্রাপ্ত আইডি। আপনি ListSpaces() মেথড কল করে অথবা স্পেসটির URL থেকে আইডিটি পেতে পারেন।

একটি বার্তার নাম দিন

ভবিষ্যতের এপিআই কলে কোনো মেসেজ পুনরুদ্ধার বা নির্দিষ্ট করার জন্য, আপনি আপনার রিকোয়েস্টের messageId ফিল্ডে একটি মেসেজের নামকরণ করতে পারেন। মেসেজের নামকরণ করলে, মেসেজের রিসোর্স নেম (যা name ফিল্ডে থাকে) থেকে সিস্টেম-নির্ধারিত আইডি সংরক্ষণ করার প্রয়োজন হয় না, এবং এর মাধ্যমেই মেসেজটি নির্দিষ্ট করা যায়।

উদাহরণস্বরূপ, get() মেথড ব্যবহার করে একটি মেসেজ পুনরুদ্ধার করতে, আপনি কোন মেসেজটি পুনরুদ্ধার করবেন তা নির্দিষ্ট করার জন্য রিসোর্স নামটি ব্যবহার করেন। রিসোর্স নামটি spaces/{space}/messages/{message} আকারে থাকে, যেখানে {message} হলো সিস্টেম-নির্ধারিত আইডি অথবা মেসেজটি তৈরি করার সময় আপনার সেট করা কাস্টম নাম।

মেসেজের নামকরণ করতে, মেসেজ তৈরি করার সময় messageId ফিল্ডে একটি কাস্টম আইডি উল্লেখ করুন। messageId ফিল্ডটি Message রিসোর্সের clientAssignedMessageId ফিল্ডের মান নির্ধারণ করে।

আপনি শুধুমাত্র মেসেজ তৈরি করার সময়ই সেটির নাম দিতে পারবেন। বিদ্যমান মেসেজের জন্য আপনি কোনো কাস্টম আইডি-র নাম দিতে বা তা পরিবর্তন করতে পারবেন না। কাস্টম আইডি-টিকে অবশ্যই নিম্নলিখিত শর্তগুলো পূরণ করতে হবে:

  • client- দিয়ে শুরু হয়। উদাহরণস্বরূপ, client-custom-name একটি বৈধ কাস্টম আইডি, কিন্তু custom-name নয়।
  • এতে সর্বাধিক ৬৩টি অক্ষর এবং শুধুমাত্র ছোট হাতের অক্ষর, সংখ্যা ও হাইফেন থাকতে পারে।
  • একটি পরিসরের মধ্যে এটি অনন্য। একটি চ্যাট অ্যাপ বিভিন্ন বার্তার জন্য একই কাস্টম আইডি ব্যবহার করতে পারে না।

নিম্নলিখিত কোডটিতে দেখানো হয়েছে, কীভাবে একটি চ্যাট অ্যাপ কোনো প্রমাণীকৃত ব্যবহারকারীর পক্ষ থেকে একটি আইডি সহ কোনো নির্দিষ্ট স্পেসে টেক্সট মেসেজ পাঠাতে পারে:

নোড.জেএস

chat/client-libraries/cloud/create-message-user-cred-message-id.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = [
  'https://www.googleapis.com/auth/chat.messages.create',
];

// This sample shows how to create a message with user credentials and a custom
// message id
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(
    USER_AUTH_OAUTH_SCOPES,
  );

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME here.
    parent: 'spaces/SPACE_NAME',
    // Message id lets chat apps get, update or delete a message without needing
    // to store the system assigned ID in the message's resource name
    messageId: 'client-MESSAGE-ID',
    message: {text: 'Hello with user credential!'},
  };

  // Make the request
  const response = await chatClient.createMessage(request);

  // Handle the response
  console.log(response);
}

await main();

পাইথন

chat/client-libraries/cloud/create_message_user_cred_message_id.py
from authentication_utils import create_client_with_user_credentials
from google.apps import chat_v1 as google_chat

SCOPES = ["https://www.googleapis.com/auth/chat.messages.create"]

# This sample shows how to create message with user credential with message id
def create_message_with_user_cred_message_id():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.CreateMessageRequest(
        # Replace SPACE_NAME here
        parent = "spaces/SPACE_NAME",
        # Message id let chat apps get, update or delete a message without needing
        # to store the system assigned ID in the message's resource name.
        message_id = "client-MESSAGE-ID",
        message = {
            "text": "Hello with user credential!"
        }
    )

    # Make the request
    response = client.create_message(request)

    # Handle the response
    print(response)

create_message_with_user_cred_message_id()

জাভা

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/CreateMessageUserCredMessageId.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.CreateMessageRequest;
import com.google.chat.v1.Message;

// This sample shows how to create message with message id specified with user
// credential.
public class CreateMessageUserCredMessageId {

  private static final String SCOPE =
    "https://www.googleapis.com/auth/chat.messages.create";

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithUserCredentials(
          ImmutableList.of(SCOPE))) {
      CreateMessageRequest.Builder request = CreateMessageRequest.newBuilder()
        // Replace SPACE_NAME here.
        .setParent("spaces/SPACE_NAME")
        .setMessage(Message.newBuilder()
          .setText("Hello with user credentials!"))
        // Message ID lets chat apps get, update or delete a message without
        // needing to store the system assigned ID in the message's resource
        // name.
        .setMessageId("client-MESSAGE-ID");
      Message response = chatServiceClient.createMessage(request.build());

      System.out.println(JsonFormat.printer().print(response));
    }
  }
}

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

chat/advanced-service/Main.gs
/**
 * This sample shows how to create message with user credential with message id
 *
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages.create'
 * referenced in the manifest file (appsscript.json).
 */
function createMessageUserCredMessageId() {
  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME here.
  const parent = "spaces/SPACE_NAME";
  // Message id lets chat apps get, update or delete a message without needing
  // to store the system assigned ID in the message's resource name
  const messageId = "client-MESSAGE-ID";
  const message = { text: "Hello with user credential!" };

  // Make the request
  const response = Chat.Spaces.Messages.create(message, parent, {
    messageId: messageId,
  });

  // Handle the response
  console.log(response);
}

এই নমুনাটি চালানোর জন্য, নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • SPACE_NAME : স্পেসটির name ফিল্ড থেকে প্রাপ্ত আইডি। আপনি ListSpaces() মেথড কল করে অথবা স্পেসটির URL থেকে আইডিটি পেতে পারেন।
  • MESSAGE-ID : মেসেজের একটি নাম যা custom- দিয়ে শুরু হয়। নির্দিষ্ট স্থানে চ্যাট অ্যাপ দ্বারা তৈরি অন্য যেকোনো মেসেজের নাম থেকে এটি অবশ্যই অনন্য হতে হবে।

একটি বার্তা উদ্ধৃত করুন

আপনি CreateMessage() ( rpc , rest ) কল করে এবং অনুরোধে quotedMessageMetadata ( rpc , rest ) সেট করে অন্য একটি বার্তা উদ্ধৃত করতে পারেন।

আপনি একটি থ্রেডের মধ্যে বা মূল চ্যাটে বার্তা উদ্ধৃত করতে পারেন, কিন্তু অন্য কোনো থ্রেডের বার্তা উদ্ধৃত করতে পারবেন না।

নিম্নলিখিত কোডটি দেখায় কিভাবে এমন একটি বার্তা তৈরি করতে হয় যা অন্য একটি বার্তাকে উদ্ধৃত করে:

নোড.জেএস

import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.messages.create'];

// This sample shows how to create a message that quotes another message.
async function main() {

  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const request = {

    // TODO(developer): Replace SPACE_NAME .
    parent: 'spaces/SPACE_NAME',

    message: {
      text: 'I am responding to a quoted message!',

      // quotedMessageMetadata lets Chat apps respond to a message by quoting it.
      quotedMessageMetadata: {

        // TODO(developer): Replace QUOTED_MESSAGE_NAME
        // and QUOTED_MESSAGE_LAST_UPDATE_TIME.
        name: 'QUOTED_MESSAGE_NAME',
        lastUpdateTime: 'QUOTED_MESSAGE_LAST_UPDATE_TIME'
      }
    }
  };

  // Make the request
  const response = await chatClient.createMessage(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

পাইথন

from authentication_utils import create_client_with_user_credentials
from google.apps import chat_v1 as google_chat
from google.protobuf.timestamp_pb2 import Timestamp

SCOPES = ['https://www.googleapis.com/auth/chat.messages.create']

# This sample shows how to create a message that quotes another message.
def create_message_quote_message():
    '''Creates a message that quotes another message.'''

    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Create a timestamp from the RFC-3339 string.
    # TODO(developer): Replace QUOTED_MESSAGE_LAST_UPDATE_TIME.
    last_update_time = Timestamp()
    last_update_time.FromJsonString('QUOTED_MESSAGE_LAST_UPDATE_TIME')

    # Initialize request argument(s)
    request = google_chat.CreateMessageRequest(

        # TODO(developer): Replace SPACE_NAME.
        parent='spaces/SPACE_NAME',

        # Create the message.
        message = google_chat.Message(
            text='I am responding to a quoted message!',

            # quotedMessageMetadata lets Chat apps respond to a message by quoting it.
            quoted_message_metadata=google_chat.QuotedMessageMetadata(

                name='QUOTED_MESSAGE_NAME',
                last_update_time=last_update_time
            )
        )
    )

    # Make the request
    response = client.create_message(request)

    # Handle the response
    print(response)

create_message_quote_message()

জাভা

import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.CreateMessageRequest;
import com.google.chat.v1.Message;
import com.google.chat.v1.QuotedMessageMetadata;
import com.google.protobuf.util.Timestamps;
import com.google.workspace.api.chat.samples.utils.AuthenticationUtils;
import java.text.ParseException;

// This sample shows how to create a message that quotes another message.
public class CreateMessageQuoteMessage {
  public static void main(String[] args) throws Exception, ParseException {
    // Create a client.
    ChatServiceClient chatClient = AuthenticationUtils.createClientWithUserCredentials();

    // Initialize request argument(s).
    // TODO(developer): Replace SPACE_NAME, QUOTED_MESSAGE_NAME,
    // and QUOTED_MESSAGE_LAST_UPDATE_TIME here.
    String parent = "spaces/SPACE_NAME";
    String quotedMessageName = "QUOTED_MESSAGE_NAME";
    String lastUpdateTime = "QUOTED_MESSAGE_LAST_UPDATE_TIME";

    QuotedMessageMetadata quotedMessageMetadata =
        QuotedMessageMetadata.newBuilder()
            .setName(quotedMessageName)
            .setLastUpdateTime(Timestamps.parse(lastUpdateTime))
            .build();

    Message message = Message.newBuilder()
        .setText("I am responding to a quoted message!")
        .setQuotedMessageMetadata(quotedMessageMetadata)
        .build();

    CreateMessageRequest request =
        CreateMessageRequest.newBuilder()
            .setParent(parent)
            .setMessage(message)
            .build();

    // Make the request.
    Message response = chatClient.createMessage(request);

    // Handle the response.
    System.out.println(response);
  }
}

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

/**
 * Creates a message that quotes another message.
 *
 * Relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages.create'
 * referenced in the manifest file (appsscript.json).
 */
function createMessageQuoteMessage() {

  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME here.
  const parent = 'spaces/SPACE_NAME';

  const message = {

    // The text content of the message.
    text: 'I am responding to a quoted message!',

    // quotedMessageMetadata lets Chat apps respond to a message by quoting it.
    //
    // TODO(developer): Replace QUOTED_MESSAGE_NAME
    // and QUOTED_MESSAGE_LAST_UPDATE_TIME .
    quotedMessageMetadata: {
      name: 'QUOTED_MESSAGE_NAME',
      lastUpdateTime: 'QUOTED_MESSAGE_LAST_UPDATE_TIME',
    }
  };

  // Make the request
  const response = Chat.Spaces.Messages.create(message, parent);

  // Handle the response
  console.log(response);
}

এই নমুনাটি চালানোর জন্য, নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

  • SPACE_NAME : স্পেসের name ফিল্ড থেকে প্রাপ্ত আইডি। আপনি ListSpaces() ( rpc , rest ) মেথড কল করে অথবা স্পেসের URL থেকে আইডিটি পেতে পারেন।
  • QUOTED_MESSAGE_NAME : যে বার্তাটিকে উদ্ধৃত করতে হবে তার বার্তা রিসোর্সের name ( rpc , rest ) spaces/{space}/messages/{message} ফরম্যাটে থাকবে।
  • QUOTED_MESSAGE_LAST_UPDATE_TIME : যে মেসেজটি আপনি উদ্ধৃত করতে চান তার সর্বশেষ আপডেটের সময়। যদি মেসেজটি কখনও সম্পাদনা করা না হয়ে থাকে, তবে এটি createTime ( rpc , rest )-এর সাথে সঙ্গতিপূর্ণ। যদি মেসেজটি সম্পাদনা করা হয়ে থাকে, তবে এটি lastUpdateTime ( rpc , rest )-এর সাথে সঙ্গতিপূর্ণ।

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

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

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