Gửi tin nhắn

Hướng dẫn này giải thích các cách mà các ứng dụng Google Chat có thể gửi tin nhắn:

  • Gửi tin nhắn văn bản và tin nhắn thẻ theo thời gian thực bằng cách phản hồi tương tác của người dùng.
  • Gửi tin nhắn văn bản và tin nhắn thẻ một cách không đồng bộ bằng cách gọi phương thức create trên tài nguyên Message.
  • Bắt đầu hoặc trả lời một chuỗi tin nhắn.
  • Gửi và đặt tên cho tin nhắn.

Tài nguyên Message đại diện cho thông báo văn bản hoặc thẻ trong Google Chat. Bạn có thể create, get, update hoặc delete tin nhắn trong API Google Chat bằng cách gọi các phương thức tương ứng. Để tìm hiểu thêm về tin nhắn văn bản và tin nhắn thẻ, hãy xem bài viết Tổng quan về tin nhắn trong Google Chat.

Kích thước tin nhắn tối đa (bao gồm mọi văn bản hoặc thẻ) là 32.000 byte. Nếu một tin nhắn vượt quá kích thước này, thì ứng dụng Chat của bạn có thể gửi nhiều tin nhắn.

Thay vì gọi phương thức create trên tài nguyên Message của API Google Chat để gửi tin nhắn văn bản hoặc tin nhắn thẻ một cách không đồng bộ, các ứng dụng Google Chat cũng có thể tạo tin nhắn để phản hồi hoạt động tương tác của người dùng theo thời gian thực. Phản hồi tương tác của người dùng không yêu cầu xác thực và hỗ trợ các loại thông báo khác, bao gồm hộp thoại tương tác và bản xem trước đường liên kết. Để biết thông tin chi tiết, hãy xem bài viết Nhận và trả lời các hoạt động tương tác với ứng dụng Google Chat.

Điều kiện tiên quyết

Node.js

Python

  • Một tài khoản Google Workspace có quyền truy cập vào Google Chat.
  • Python 3.6 trở lên
  • Công cụ quản lý gói pip
  • Các thư viện ứng dụng mới nhất của Google dành cho Python. Để cài đặt hoặc cập nhật các trình mô phỏng, hãy chạy lệnh sau trong giao diện dòng lệnh:

    pip3 install --upgrade google-api-python-client google-auth
    
  • Một dự án trên Google Cloud đã bật và định cấu hình API Google Chat. Để biết các bước, hãy xem bài viết Tạo ứng dụng Google Chat.
  • Đã định cấu hình uỷ quyền để ứng dụng Chat gửi tin nhắn không đồng bộ. Không cần cấu hình uỷ quyền để gửi thông báo theo thời gian thực.

Apps Script

  • Một tài khoản Google Workspace có quyền truy cập vào Google Chat.
  • Một ứng dụng Chat đã phát hành. Để tạo một ứng dụng Chat, hãy làm theo hướng dẫn quickstart sau đây.
  • Đã định cấu hình uỷ quyền để ứng dụng Chat gửi tin nhắn không đồng bộ. Không cần cấu hình uỷ quyền để gửi thông báo theo thời gian thực.

Gửi tin nhắn văn bản

Phần này mô tả cách gửi tin nhắn văn bản theo hai cách sau:

  • Gửi tin nhắn văn bản theo thời gian thực bằng cách phản hồi một tương tác của người dùng.
  • Gửi tin nhắn văn bản bằng cách gọi API Google Chat theo cách không đồng bộ.

Gửi tin nhắn văn bản theo thời gian thực

Trong ví dụ này, ứng dụng Chat tạo và gửi tin nhắn văn bản bất cứ khi nào tin nhắn đó được thêm vào không gian. Để tìm hiểu các phương pháp hay nhất giúp người dùng giới thiệu, hãy xem bài viết Giúp mọi người và không gian bắt đầu với phần giới thiệu hữu ích.

Để gửi tin nhắn văn bản khi người dùng thêm ứng dụng Chat của bạn vào một không gian, ứng dụng Chat sẽ phản hồi một ADDED_TO_SPACE sự kiện tương tác. Để phản hồi sự kiện tương tác ADDED_TO_SPACE bằng tin nhắn văn bản, hãy dùng mã sau:

Node.js

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} event The event object from Chat API.
 * @return {Object} Response from the Chat app. An onboarding message that
 * introduces the app and helps people get started with it.
 */
exports.onMessage = function onMessage(req, res) {
  if (req.method === 'GET' || !req.body.message) {
    res.send(
      'Hello! This function is meant to be used in a Google Chat space.');
  }

  // Send an onboarding message when added to a Chat space
  if (req.body.type === 'ADDED_TO_SPACE') {
    res.json({
      'text': 'Hi, Cymbal at your service. I help you manage your calendar
      from Google Chat. Take a look at your schedule today by typing
      `/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To
      learn what else I can do, type `/help`.'
    });
  }
};

Apps Script

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} event The event object from Chat API.
 * @return {Object} Response from the Chat app. An onboarding message that
 * introduces the app and helps people get started with it.
 */
function onAddToSpace(event) {

  return {
    'text': 'Hi, Cymbal at your service. I help you manage your calendar
    from Google Chat. Take a look at your schedule today by typing
    `/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn
    what else I can do, type `/help`.'
  }
}

Mã mẫu sẽ trả về tin nhắn văn bản sau:

Ví dụ về thông báo giới thiệu.

Gửi tin nhắn văn bản không đồng bộ

Phần sau giải thích cách gửi tin nhắn văn bản không đồng bộ bằng phương thức xác thực ứng dụng và xác thực người dùng.

Để gửi tin nhắn văn bản, hãy chuyển những thông tin sau vào yêu cầu:

  • Với phương thức xác thực ứng dụng, hãy chỉ định phạm vi uỷ quyền chat.bot. Với tính năng xác thực người dùng, hãy chỉ định phạm vi uỷ quyền chat.messages.create.
  • Gọi phương thức create trên tài nguyên Message.

Gửi tin nhắn văn bản bằng phương thức xác thực ứng dụng

Dưới đây là cách gửi tin nhắn văn bản bằng tính năng xác thực ứng dụng:

Python

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên chat_create_text_message_app.py.
  2. Đưa mã sau vào chat_create_text_message_app.py:

    from apiclient.discovery import build
    from google.oauth2 import service_account
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = service_account.Credentials.from_service_account_file(
        'credentials.json', scopes=SCOPES)
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Create a Chat message.
    result = chat.spaces().messages().create(
    
        # The space to create the message in.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # The message to create.
        body={'text': 'Hello, world!'}
    
    ).execute()
    
    print(result)
    
  3. Trong đoạn mã, hãy thay thế SPACE bằng tên không gian mà bạn có thể lấy từ phương thức spaces.list() trong API Chat hoặc từ URL của không gian.

  4. Trong thư mục đang làm việc, hãy tạo và chạy mẫu:

    python3 chat_create_text_message_app.py
    

API Chat trả về một bản sao của Message cho biết thông tin chi tiết về tin nhắn đã gửi.

Gửi tin nhắn văn bản có xác thực người dùng

Dưới đây là cách gửi tin nhắn văn bản bằng tính năng xác thực người dùng:

Python

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên chat_create_text_message_user.py.
  2. Đưa mã sau vào chat_create_text_message_user.py:

    import os.path
    
    from google.auth.transport.requests import Request
    from google.oauth2.credentials import Credentials
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    from googleapiclient.errors import HttpError
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.messages.create"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then creates a text message in a Chat space.
        '''
    
        # Start with no credentials.
        creds = None
    
        # Authenticate with Google Workspace
        # and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file(
                        'client_secrets.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds)
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().messages().create(
    
            # The space to create the message in.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            parent='spaces/SPACE',
    
            # The message to create.
            body={'text': 'Hello, world!'}
    
        ).execute()
    
        # Prints details about the created message.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. Trong mã, hãy thay thế SPACE bằng tên không gian mà bạn có thể lấy từ phương thức spaces.list() trong API Chat hoặc từ URL của không gian.

  4. Trong thư mục đang làm việc, hãy tạo và chạy mẫu:

    python3 chat_create_text_message_user.py
    

API Chat trả về một bản sao của Message cho biết thông tin chi tiết về tin nhắn đã gửi.

Gửi tin nhắn qua thẻ

Phần này mô tả cách gửi thông báo thẻ theo hai cách sau:

  • Gửi thông báo thẻ theo thời gian thực bằng cách phản hồi tương tác của người dùng.
  • Gửi tin nhắn thẻ bằng cách gọi API Google Chat theo cách không đồng bộ.

Gửi tin nhắn thẻ theo thời gian thực

Các ứng dụng trong Chat có thể tạo tin nhắn thẻ để phản hồi một hoạt động tương tác của người dùng, chẳng hạn như khi người dùng gửi tin nhắn cho ứng dụng Chat hoặc thêm ứng dụng Chat vào một không gian. Để tìm hiểu thêm về cách phản hồi hoạt động tương tác của người dùng, hãy xem bài viết Nhận và phản hồi các sự kiện tương tác với ứng dụng Chat.

Trong ví dụ này, người dùng gửi tin nhắn đến ứng dụng Chat và ứng dụng Chat sẽ phản hồi bằng cách gửi thông báo dạng thẻ cho thấy tên và hình đại diện của người dùng:

Một ứng dụng trong Chat phản hồi bằng một thẻ có tên hiển thị và hình đại diện của người gửi.

Node.js

nút/avatar-app/index.js
/**
 * Google Cloud Function that responds to messages sent from a
 * Google Chat room.
 *
 * @param {Object} req Request sent from Google Chat room
 * @param {Object} res Response to send back
 */
exports.helloChat = function helloChat(req, res) {
  if (req.method === 'GET' || !req.body.message) {
    res.send('Hello! This function is meant to be used in a Google Chat ' +
      'Room.');
  }

  const sender = req.body.message.sender.displayName;
  const image = req.body.message.sender.avatarUrl;

  const data = createMessage(sender, image);

  res.send(data);
};

/**
 * Creates a card with two widgets.
 * @param {string} displayName the sender's display name
 * @param {string} imageUrl the URL for the sender's avatar
 * @return {Object} a card with the user's avatar.
 */
function createMessage(displayName, imageUrl) {
  const cardHeader = {
    title: `Hello ${displayName}!`,
  };

  const avatarWidget = {
    textParagraph: {text: 'Your avatar picture: '},
  };

  const avatarImageWidget = {
    image: {imageUrl},
  };

  const avatarSection = {
    widgets: [
      avatarWidget,
      avatarImageWidget,
    ],
  };

  return {
    text: 'Here\'s your avatar',
    cardsV2: [{
      cardId: 'avatarCard',
      card: {
        name: 'Avatar Card',
        header: cardHeader,
        sections: [avatarSection],
      }
    }],
  };
}

Python

python/avatar-app/main.py
from typing import Any, Mapping

import flask
import functions_framework


# Google Cloud Function that responds to messages sent in
# Google Chat.
#
# @param {Object} req Request sent from Google Chat.
# @param {Object} res Response to send back.
@functions_framework.http
def hello_chat(req: flask.Request) -> Mapping[str, Any]:
  if req.method == "GET":
    return "Hello! This function must be called from Google Chat."

  request_json = req.get_json(silent=True)

  display_name = request_json["message"]["sender"]["displayName"]
  avatar = request_json["message"]["sender"]["avatarUrl"]

  response = create_message(name=display_name, image_url=avatar)

  return response


# Creates a card with two widgets.
# @param {string} name the sender's display name.
# @param {string} image_url the URL for the sender's avatar.
# @return {Object} a card with the user's avatar.
def create_message(name: str, image_url: str) -> Mapping[str, Any]:
  avatar_image_widget = {"image": {"imageUrl": image_url}}
  avatar_text_widget = {"textParagraph": {"text": "Your avatar picture:"}}
  avatar_section = {"widgets": [avatar_text_widget, avatar_image_widget]}

  header = {"title": f"Hello {name}!"}

  cards = {
      "text": "Here's your avatar",
      "cardsV2": [
          {
              "cardId": "avatarCard",
              "card": {
                  "name": "Avatar Card",
                  "header": header,
                  "sections": [avatar_section],
              },
          }
      ]
  }

  return cards

Apps Script

Ví dụ này gửi thông báo thẻ bằng cách trả về JSON thẻ. Bạn cũng có thể sử dụng dịch vụ thẻ Apps Script.

apps-script/avatar-app/hello-chat.gs
/**
 * Responds to a MESSAGE event in Google Chat.
 *
 * @param {Object} event the event object from Google Chat
 */
function onMessage(event) {
  const displayName = event.message.sender.displayName;
  const avatarUrl = event.message.sender.avatarUrl;

  return createMessage(displayName, avatarUrl);
}

/**
 * Creates a card with two widgets.
 * @param {string} displayName the sender's display name
 * @param {string} avatarUrl the URL for the sender's avatar
 * @return {Object} a card with the sender's avatar.
 */
function createMessage(displayName, avatarUrl) {
  const cardHeader = {
    title: `Hello ${displayName}!`
  };

  const avatarWidget = {
    textParagraph: {text: 'Your avatar picture: '}
  };

  const avatarImageWidget = {
    image: {imageUrl: avatarUrl}
  };

  const avatarSection = {
    widgets: [
      avatarWidget,
      avatarImageWidget
    ],
  };

  return {
    text: 'Here\'s your avatar',
    cardsV2: [{
      cardId: 'avatarCard',
      card: {
        name: 'Avatar Card',
        header: cardHeader,
        sections: [avatarSection],
      }
    }],
  };
}

Gửi thông báo thẻ theo cách không đồng bộ

Để gửi thông báo thẻ, hãy chuyển các nội dung sau vào yêu cầu của bạn:

  • Với phương thức xác thực ứng dụng, hãy chỉ định phạm vi uỷ quyền chat.bot. Bạn không thể gửi thông báo trên thẻ có xác thực người dùng.
  • Gọi phương thức create trên tài nguyên Message.

Sau đây là ví dụ về thông báo dạng thẻ:

Một thông báo dạng thẻ được gửi bằng API Chat.

Dưới đây là cách gửi thông báo thẻ có xác thực ứng dụng:

Python

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên chat_create_card_message.py.
  2. Đưa mã sau vào chat_create_card_message.py:

    from apiclient.discovery import build
    from google.oauth2 import service_account
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = service_account.Credentials.from_service_account_file(
        'credentials.json', scopes=SCOPES)
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Create a Chat message.
    result = chat.spaces().messages().create(
    
        # The space to create the message in.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # The message to create.
        body=
        {
          'cardsV2': [{
            'cardId': 'createCardMessage',
            'card': {
              'header': {
                'title': 'A card message!',
                'subtitle': 'Created with the Chat API',
                'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png',
                'imageType': 'CIRCLE'
              },
              'sections': [
                {
                  'widgets': [
                    {
                      'buttonList': {
                        'buttons': [
                          {
                            'text': 'Read the docs!',
                            'onClick': {
                              'openLink': {
                                'url': 'https://developers.google.com/chat'
                              }
                            }
                          }
                        ]
                      }
                    }
                  ]
                }
              ]
            }
          }]
        }
    
    ).execute()
    
    print(result)
    
  3. Trong đoạn mã, hãy thay thế SPACE bằng tên không gian mà bạn có thể lấy từ phương thức spaces.list trong API Chat hoặc từ URL của không gian.

  4. Trong thư mục đang làm việc, hãy tạo và chạy mẫu:

    python3 chat_create_card_message.py
    

Bắt đầu hoặc trả lời một chuỗi tin nhắn

Để bắt đầu một chuỗi tin nhắn, hãy gửi một tin nhắn và để trống thread.name; Google Chat sẽ điền chuỗi này khi tạo chuỗi tin nhắn. Nếu muốn tuỳ chỉnh tên của luồng, hãy chỉ định trường thread.threadKey.

Để trả lời một chuỗi tin nhắn, hãy gửi một tin nhắn chỉ định trường threadKey hoặc name của chuỗi tin nhắn đó. Nếu chuỗi tin nhắn do một người hoặc một ứng dụng khác trong Chat tạo, bạn phải sử dụng trường thread.name.

Nếu không tìm thấy chuỗi nào phù hợp, bạn có thể chỉ định xem thông báo sẽ bắt đầu chuỗi mới hay không đăng được bằng cách đặt trường messageReplyOption.

Nếu đặt messageReplyOption, bạn cũng phải đặt thread.name hoặc thread.threadKey.

Dưới đây là cách bắt đầu hoặc trả lời một luồng có trường threadKey được xác định là nameOfThread:

Python

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên chat_create_message_thread.py.
  2. Đưa mã sau vào chat_create_message_thread.py:

    from apiclient.discovery import build
    from google.oauth2 import service_account
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = service_account.Credentials.from_service_account_file(
        'credentials.json', scopes=SCOPES)
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Create a Chat message.
    result = chat.spaces().messages().create(
    
        # The space to create the message in.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # Whether to start a thread or reply to an existing one.
        #
        # Required when threading is enabled in a space unless starting a
        # thread.  Ignored in other space types. Threading is enabled when
        # space.spaceThreadingState is THREADED_MESSAGES.
        #
        # REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD replies to an existing thread
        # if one exists, otherwise it starts a new one.
        messageReplyOption='REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD',
    
        # The message body.
        body={
    
            # The message to create.
            'text': 'Start or reply to another message in a thread!',
    
            # The thread to start or reply to.
            'thread': {
                'threadKey': 'nameOfThread'
            }
        }
    
    ).execute()
    
    print(result)
    
  3. Trong đoạn mã, hãy thay thế SPACE bằng tên không gian mà bạn có thể lấy từ phương thức spaces.list trong API Chat hoặc từ URL của không gian.

  4. Trong thư mục đang làm việc, hãy tạo và chạy mẫu:

    python3 chat_create_message_thread.py
    

API Chat trả về một bản sao của Message cho biết thông tin chi tiết về tin nhắn đã gửi.

Đặt tên cho thông báo

Phần này giải thích cách đặt tên cho một thông báo bằng cách đặt mã tuỳ chỉnh cho thông báo đó. Bạn có thể sử dụng mã tuỳ chỉnh để nhận, cập nhật hoặc xoá tin nhắn. Mã tuỳ chỉnh cho phép bạn chỉ định một thông báo mà không cần lưu trữ mã nhận dạng do hệ thống chỉ định từ tên tài nguyên của thông báo (được biểu thị trong trường name). Tên tài nguyên được tạo trong nội dung phản hồi khi bạn tạo thông báo.

Ví dụ: để truy xuất một thông báo bằng phương thức get(), bạn sẽ sử dụng tên tài nguyên để chỉ định thông báo nào cần truy xuất. Tên tài nguyên có định dạng là spaces/{space}/messages/{message}, trong đó {message} đại diện cho mã nhận dạng do hệ thống chỉ định. Nếu đã đặt tên cho thông báo, bạn có thể thay thế giá trị của {message} bằng mã tuỳ chỉnh.

Để đặt tên cho một thông báo, hãy chỉ định một mã tuỳ chỉnh trong trường messageId khi bạn tạo thông báo đó. Trường messageId đặt giá trị cho trường clientAssignedMessageId của tài nguyên Message.

Bạn chỉ có thể đặt tên cho thông báo khi tạo thông báo. Bạn không thể đặt tên hoặc sửa đổi mã tuỳ chỉnh cho các thông báo hiện có. Mã tuỳ chỉnh phải đáp ứng các yêu cầu sau:

  • Bắt đầu bằng client-. Ví dụ: client-custom-name là mã tuỳ chỉnh hợp lệ, nhưng custom-name thì không.
  • Chứa tối đa 63 ký tự, chỉ chứa chữ cái viết thường, số và dấu gạch nối.
  • Là duy nhất trong một không gian. Một ứng dụng Chat không thể sử dụng cùng một mã tuỳ chỉnh cho nhiều tin nhắn.

Dưới đây là cách gửi thư bằng mã tuỳ chỉnh:

Python

  1. Trong thư mục đang làm việc, hãy tạo một tệp có tên chat_create_named_message.py.
  2. Đưa mã sau vào chat_create_named_message.py:

    from apiclient.discovery import build
    from google.oauth2 import service_account
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = service_account.Credentials.from_service_account_file(
        'credentials.json', scopes=SCOPES)
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Create a Chat message with a custom name.
    result = chat.spaces().messages().create(
    
        # The space to create the message in.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # Custom name for the message used to facilitate later operations.
        messageId='client-NAME',
    
        # The message to create.
        body={'text': 'Hello, world!'}
    
    ).execute()
    
    print(result)
    
  3. Trong mã, thay thế các nội dung sau:

    • SPACE: Mã nhận dạng của không gian bạn muốn đăng tin nhắn. Bạn có thể lấy mã này từ phương thức spaces.list trong API Chat hoặc từ URL của không gian.
    • NAME: Tên tuỳ chỉnh cho thông báo.
  4. Trong thư mục đang làm việc, hãy tạo và chạy mẫu:

    python3 chat_create_named_message.py
    

API Chat trả về một thực thể của Message.

Thêm tiện ích tương tác ở cuối thư

Bạn có thể tùy chọn thêm tin nhắn bằng tiện ích phụ kiện. Tiện ích phụ kiện xuất hiện sau mọi văn bản hoặc thẻ trong một tin nhắn. Bạn có thể sử dụng các tiện ích này để nhắc người dùng tương tác với thông báo theo nhiều cách, bao gồm:

  • Đánh giá độ chính xác hoặc mức độ hài lòng của tin nhắn.
  • Báo cáo vấn đề về tin nhắn hoặc ứng dụng Chat.
  • Mở một đường liên kết đến nội dung liên quan, chẳng hạn như tài liệu.
  • Đóng hoặc tạm ẩn các tin nhắn tương tự từ ứng dụng Chat trong một khoảng thời gian cụ thể.

Để thêm tiện ích phụ kiện, hãy thêm đối tượng accessoryWidgets[] vào thông báo và chỉ định một hoặc nhiều AccessoryWidgets mà bạn muốn đưa vào. Mọi người trong không gian đều phải nhìn thấy tin nhắn này (Bạn không thể thêm tiện ích phụ kiện vào tin nhắn riêng tư).

Hình ảnh sau đây cho thấy một ứng dụng Chat thêm tin nhắn văn bản cùng các tiện ích phụ kiện để người dùng có thể đánh giá trải nghiệm của họ khi dùng ứng dụng Chat.

Ví dụ về tiện ích phụ

Mã mẫu sau đây cho thấy JSON của thông báo này. Khi người dùng nhấp vào một trong các nút, lượt tương tác đó sẽ kích hoạt hàm tương ứng (chẳng hạn như doUpvote) xử lý điểm xếp hạng.


 "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",
             }
           }
         }
       ]
     }
   }
 ]

Gửi tin nhắn ở chế độ riêng tư

Các ứng dụng trong Chat có thể gửi tin nhắn văn bản và tin nhắn thẻ ở chế độ riêng tư để chỉ một người dùng trong không gian mới nhìn thấy tin nhắn. Để gửi thư một cách riêng tư, bạn cần chỉ định trường privateMessageViewer trong thông báo. Chỉ các ứng dụng trong Chat mới có thể gửi tin nhắn riêng tư. Để gửi một thông báo riêng tư không đồng bộ, bạn phải sử dụng phương thức xác thực ứng dụng.

Để biết thông tin chi tiết, hãy xem phần Gửi tin nhắn riêng tư cho người dùng Google Chat.

Khắc phục sự cố

Khi một ứng dụng hoặc thẻ Google Chat trả về lỗi, giao diện Chat sẽ hiển thị một thông báo cho biết "Đã xảy ra lỗi". hoặc "Không thể xử lý yêu cầu của bạn". Đôi khi, giao diện người dùng của Chat không hiển thị thông báo lỗi nào, nhưng ứng dụng hoặc thẻ trong Chat lại cho ra kết quả không mong muốn; ví dụ: thông báo thẻ có thể không xuất hiện.

Mặc dù thông báo lỗi có thể không xuất hiện trong giao diện người dùng của Chat, nhưng chúng tôi cung cấp dữ liệu nhật ký và thông báo lỗi mô tả để giúp bạn khắc phục lỗi khi bật tính năng ghi nhật ký lỗi cho các ứng dụng trong Chat. Để được trợ giúp xem, gỡ lỗi và sửa lỗi, hãy xem bài viết Khắc phục sự cố và sửa lỗi Google Chat.