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

এই নির্দেশিকা ব্যাখ্যা করে যে Google Chat API-এর Message রিসোর্সে create() মেথড ব্যবহার করে নিচের যেকোনো একটি করতে হবে:

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

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

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

চ্যাট কীভাবে চ্যাট এপিআই-এর সাহায্যে তৈরি বার্তাগুলিকে প্রদর্শন করে এবং বৈশিষ্ট্যযুক্ত করে

আপনি অ্যাপ প্রমাণীকরণ এবং ব্যবহারকারী প্রমাণীকরণ ব্যবহার করে create() পদ্ধতিতে কল করতে পারেন। আপনি যে ধরনের প্রমাণীকরণ ব্যবহার করেন তার উপর নির্ভর করে চ্যাট বার্তা প্রেরককে আলাদাভাবে অ্যাট্রিবিউট করে।

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

অ্যাপ প্রমাণীকরণের সাথে create() পদ্ধতিতে কল করা হচ্ছে।
চিত্র 1 : অ্যাপ প্রমাণীকরণের সাথে, চ্যাট অ্যাপটি বার্তা পাঠায়। উল্লেখ্য যে প্রেরক একজন ব্যক্তি নন, চ্যাট তার নামের পাশে App প্রদর্শন করে।

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

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

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

এই নির্দেশিকাটি ব্যাখ্যা করে যে চ্যাট API এর সাথে একটি বার্তা পাঠাতে প্রমাণীকরণের ধরনটি কীভাবে ব্যবহার করতে হয়।

পূর্বশর্ত

Node.js

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

পাইথন

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

জাভা

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

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

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

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

অ্যাপ প্রমাণীকরণ ব্যবহার করে পাঠ্য, কার্ড এবং ইন্টারেক্টিভ আনুষঙ্গিক উইজেট ধারণ করে কীভাবে বার্তা পাঠাতে হয় এই বিভাগটি ব্যাখ্যা করে।

অ্যাপ প্রমাণীকরণ সহ বার্তা পাঠানো হয়েছে
চিত্র 4. একটি চ্যাট অ্যাপ পাঠ্য, একটি কার্ড এবং একটি আনুষঙ্গিক বোতাম সহ একটি বার্তা পাঠায়৷

অ্যাপ প্রমাণীকরণ ব্যবহার করে CreateMessage() পদ্ধতিতে কল করতে, আপনাকে অনুরোধে নিম্নলিখিত ক্ষেত্রগুলি নির্দিষ্ট করতে হবে:

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

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

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

Node.js

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);
}

main().catch(console.error);

পাইথন

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);
}

এই নমুনাটি চালানোর জন্য, স্পেসের name ক্ষেত্র থেকে আইডি দিয়ে SPACE_NAME প্রতিস্থাপন করুন। আপনি ListSpaces() পদ্ধতিতে কল করে বা স্পেস এর URL থেকে আইডি পেতে পারেন।

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

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

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

আনুষঙ্গিক উইজেটগুলি যোগ করতে, আপনার অনুরোধের মূল অংশে accessoryWidgets[] ক্ষেত্রটি অন্তর্ভুক্ত করুন এবং আপনি যে এক বা একাধিক উইজেট অন্তর্ভুক্ত করতে চান তা নির্দিষ্ট করুন৷

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

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

নিম্নলিখিতটি অনুরোধের মূল অংশটি দেখায় যা দুটি আনুষঙ্গিক বোতাম সহ একটি পাঠ্য বার্তা তৈরি করে। যখন একজন ব্যবহারকারী একটি বোতামে ক্লিক করেন, তখন সংশ্লিষ্ট ফাংশন (যেমন 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"
    }}
  }]}}]
}

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

চ্যাট অ্যাপগুলি ব্যক্তিগতভাবে বার্তা পাঠাতে পারে যাতে বার্তাটি শুধুমাত্র স্থানের একটি নির্দিষ্ট ব্যবহারকারীর কাছে দৃশ্যমান হয়। যখন একটি চ্যাট অ্যাপ একটি ব্যক্তিগত বার্তা পাঠায়, বার্তাটি একটি লেবেল দেখায় যা ব্যবহারকারীকে সূচিত করে যে বার্তাটি শুধুমাত্র তাদের কাছে দৃশ্যমান।

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

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

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

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

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

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

ব্যবহারকারীর প্রমাণীকরণ সহ বার্তা পাঠানো হয়েছে
চিত্র 3. একটি চ্যাট অ্যাপ ব্যবহারকারীর পক্ষে একটি পাঠ্য বার্তা পাঠায়৷

ব্যবহারকারীর প্রমাণীকরণ ব্যবহার করে CreateMessage() পদ্ধতিতে কল করতে, আপনাকে অনুরোধে নিম্নলিখিত ক্ষেত্রগুলি নির্দিষ্ট করতে হবে:

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

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

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

Node.js

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);
}

main().catch(console.error);

পাইথন

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);
}

এই নমুনাটি চালানোর জন্য, স্পেসের name ক্ষেত্র থেকে আইডি দিয়ে SPACE_NAME প্রতিস্থাপন করুন। আপনি ListSpaces() পদ্ধতিতে কল করে বা স্পেস এর URL থেকে আইডি পেতে পারেন।

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

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

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

  • আপনার অনুরোধের মূল অংশে, thread.threadKey ক্ষেত্রটি নির্দিষ্ট করুন।
  • কীটি ইতিমধ্যেই বিদ্যমান থাকলে কী হবে তা নির্ধারণ করতে ক্যোয়ারী প্যারামিটার messageReplyOption নির্দিষ্ট করুন।

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

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

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

Node.js

chat/client-libraries/cloud/create-message-user-cred-thread-key.js
import {createClientWithUserCredentials} from './authentication-utils.js';
const {MessageReplyOption} = require('@google-apps/chat').protos.google.chat.v1.CreateMessageRequest;

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: 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);
}

main().catch(console.error);

পাইথন

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 থেকে আইডি পেতে পারেন।

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

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

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

একটি বার্তার নাম দেওয়ার জন্য, আপনি যখন বার্তা তৈরি করবেন তখন messageId ক্ষেত্রে একটি কাস্টম আইডি উল্লেখ করুন। messageId ক্ষেত্রটি Message সংস্থানের clientAssignedMessageId ক্ষেত্রের মান সেট করে।

আপনি যখন বার্তা তৈরি করবেন তখনই আপনি একটি বার্তার নাম দিতে পারেন৷ আপনি বিদ্যমান বার্তাগুলির জন্য একটি কাস্টম আইডি নাম বা পরিবর্তন করতে পারবেন না৷ কাস্টম আইডি নিম্নলিখিত প্রয়োজনীয়তা পূরণ করতে হবে:

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

নিম্নলিখিত কোডটি একটি প্রমাণীকৃত ব্যবহারকারীর পক্ষে একটি প্রদত্ত স্পেসে একটি আইডি সহ একটি টেক্সট বার্তা পাঠাতে পারে তার একটি উদাহরণ দেখায়:

Node.js

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 message with user credential with 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);
}

main().catch(console.error);

পাইথন

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- দিয়ে শুরু হওয়া বার্তার একটি নাম। নির্দিষ্ট জায়গায় চ্যাট অ্যাপের তৈরি অন্য যেকোন মেসেজ নামের থেকে অনন্য হতে হবে।

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

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

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