This page explains how to set up and respond to commands as a Google Chat app.
Команды помогают пользователям находить и использовать ключевые функции приложения для чата. Содержимое команды видят только приложения для чата. Например, если пользователь отправляет сообщение с командой, содержащей косую черту, сообщение будет видно только пользователю и приложению для чата.
To decide whether you should build commands, and to understand how to design user interactions, see Define all user journeys .
Types of Chat app commands
You can build Chat app commands as slash commands, quick commands, or message actions. To use each type of command, users can do the following:Команды со слэшем: Пользователи могут выбрать команду со слэшем из меню или ввести слэш (
/) и затем предопределенный текст, например/about. В чат-приложениях обычно требуется текстовый аргумент для команды со слэшем.Если ваше приложение для чата требует от пользователя дополнительного ввода, создайте команду со слэшем. Например, вы можете создать команду со слэшем под названием
/search, которая будет выполняться после того, как пользователь введет поисковую фразу, например,/search receipts.Quick commands: Users use commands by opening the menu from the reply area of a Chat message. To use a command, they click Add
and select a command from the menu.
Создайте быструю команду, если ваше приложение для чата может отвечать пользователю немедленно, без ожидания дополнительного ввода. Например, вы можете создать быструю команду под названием «Случайное изображение» , которая немедленно отправит пользователю изображение.
Действия с сообщениями: ( предварительная версия для разработчиков) Пользователи используют действия с сообщениями, наводя курсор на сообщение и щелкая по меню с тремя точками. Чтобы использовать команду, они открывают меню с тремя точками и выбирают команду из меню.
Если ваше приложение для чата может выполнять действия на основе контекста сообщения, создайте действие для сообщения.
The following images show how users discover the menu for slash and quick commands, and message actions:


Предварительные требования
Node.js
A Google Chat app that receives and responds to interaction events . To create an interactive Chat app using an HTTP service, complete this quickstart .Apps Script
A Google Chat app that receives and responds to interaction events . To create an interactive Chat app in Apps Script, complete this quickstart .Python
A Google Chat app that receives and responds to interaction events . To create an interactive Chat app using an HTTP service, complete this quickstart .Java
A Google Chat app that receives and responds to interaction events . To create an interactive Chat app using an HTTP service, complete this quickstart .Set up the command
This section explains how to complete the following steps to set up the command:
- Create a name and description for the command.
- Настройте команду в консоли Google Cloud.
Name and describe the command
Название команды — это то, что пользователи вводят или выбирают для вызова приложения «Чат». Ниже названия также отображается краткое описание, чтобы подсказать пользователям, как использовать команду:

При выборе названия и описания для вашего подразделения учитывайте следующие рекомендации:
To name a command:
- Используйте короткие, описательные и действенные слова или фразы, чтобы команды были понятны пользователю. Например, вместо названия
Create a reminder» используйтеRemind me. - Рассмотрите возможность использования уникального или общеупотребительного имени для вашей команды. Если ваша команда описывает типичное взаимодействие или функцию, вы можете использовать общеупотребительное имя, которое пользователи узнают и ожидают, например,
SettingsилиFeedback. В противном случае, старайтесь использовать уникальные имена команд, потому что если имя вашей команды одинаково в других приложениях для чата, пользователю придется просматривать похожие команды, чтобы найти и использовать вашу.
To describe a command:
- Keep the description short and clear so that users know what to expect when they use the command.
- Сообщите пользователям, если для команды существуют какие-либо требования к форматированию. Например, если вы создаете команду со слэшем, требующую текстового аргумента, установите описание примерно такого вида:
Remind me to do [something] at [time]. - Сообщите пользователям, отвечает ли приложение чата всем участникам в пространстве или только тому пользователю, который вызвал команду. Например, для быстрой команды
About» можно описать её какLearn about this app (Only visible to you).
Configure the command in the Google Cloud console
Для создания команды с косой чертой, быстрой команды или действия с сообщением необходимо указать информацию о команде или действии в конфигурации вашего приложения чата для API Google Chat.
Для настройки команды в API Google Chat выполните следующие шаги:
В консоли Google Cloud перейдите в «Меню» > «API и сервисы» > «Включенные API и сервисы» > «Google Chat API».
Click Configuration .
Under Commands , click Add a command .
Введите идентификатор команды, описание, тип команды и имя команды:
- Идентификатор команды: число от 1 до 1000, которое ваше приложение чата использует для распознавания команды и возврата ответа.
- Описание: текст, описывающий действие команды. Описание может содержать до 50 символов и включать специальные символы.
- Тип команды: выберите либо «Быстрая команда» , «Команда со слэшем» , либо «Действие сообщения» .
- Specify a name for the command:
- Название быстрой команды: отображаемое имя, которое пользователи выбирают из меню для вызова команды. Может содержать до 50 символов и включать специальные символы. Например,
Remind me. - Название команды с косой чертой: текст, который пользователи вводят для вызова команды в сообщении. Должен начинаться с косой черты, содержать только текст и может содержать до 50 символов. Например,
/remindMe. - Название действия сообщения: ( предварительная версия для разработчиков) Отображаемое имя, которое пользователи выбирают из меню для вызова действия сообщения. Может содержать до 50 символов и включать специальные символы. Например,
Remind me.
- Название быстрой команды: отображаемое имя, которое пользователи выбирают из меню для вызова команды. Может содержать до 50 символов и включать специальные символы. Например,
Необязательно: Уведомление о загрузке : ( Developer Preview) Всплывающее уведомление, отображаемое пользователю во время выполнения действия с сообщением. Доступно только для действий с сообщениями, которые не открывают диалоговые окна.
Необязательно: если вы хотите, чтобы ваше приложение чата ответило на команду диалоговым окном , установите флажок «Открыть диалоговое окно».
Нажмите « Сохранить ».
The command is now configured for the Chat app.
Respond to a command
Когда пользователи используют команду, ваше приложение «Чат» получает событие взаимодействия . Полезная нагрузка события содержит метаданные с подробной информацией о вызванной команде (включая идентификатор команды и тип команды), чтобы вы могли вернуть соответствующий ответ.

/help , чтобы объяснить, как получить поддержку.Для реагирования на каждый тип команды необходимо обрабатывать различные типы событий и объекты метаданных в полезной нагрузке события:
| Command type | Event type | Command metadata |
|---|---|---|
| Команда слэша | MESSAGE | message.slashCommand или message.annotation.slashCommand |
| Быстрая команда | APP_COMMAND | appCommandMetadata |
| Message action | APP_COMMAND | appCommandMetadata |
Чтобы узнать, как ответить на команду сообщением, см. следующие разделы.
Respond to a slash command
Приведенный ниже код демонстрирует пример чат-приложения, отвечающего на команду /about . Чат-приложение обрабатывает события взаимодействия MESSAGE , определяет, содержит ли событие взаимодействия соответствующий идентификатор команды, и возвращает личное сообщение:
Node.js
Apps Script
Python
Java
Замените ABOUT_COMMAND_ID на идентификатор команды, который вы указали при настройке команды в консоли Google Cloud.
Respond to a quick command
Приведенный ниже код демонстрирует пример приложения чата, которое отвечает на быструю команду « Помощь» . Приложение чата обрабатывает события взаимодействия APP_COMMAND , определяет, содержит ли событие взаимодействия соответствующий идентификатор команды, и возвращает личное сообщение:
Node.js
Apps Script
Python
Java
Замените HELP_COMMAND_ID на идентификатор команды, который вы указали при настройке команды в консоли Google Cloud.
Respond to a message action
Приведенный ниже код демонстрирует пример чат-приложения, отвечающего на сообщение «Напомнить мне» . Чат-приложение обрабатывает события взаимодействия APP_COMMAND , определяет, содержит ли событие взаимодействия соответствующий идентификатор команды, и возвращает личное сообщение:
Node.js
/**
* Responds to an APP_COMMAND interaction event from Google Chat.
*
* @param {Object} event The interaction event from Google Chat.
* @param {Object} res The HTTP response object.
* @return {Object} The JSON response message with a confirmation.
*/
function handleAppCommand(event, res) {
// Collect the command ID and type from the event metadata.
const {appCommandId, appCommandType} = event.appCommandMetadata;
// Use appCommandType to detect message actions.
if (appCommandType === 'MESSAGE_ACTION' &&
appCommandId === REMIND_ME_COMMAND_ID) {
// Message actions can access the context of the message they were
// invoked on, such as the text or sender of that message.
const messageText = event.message.text;
// Return a response that includes details from the original message.
return res.send({
text: `Setting a reminder for this message: "${messageText}"`
});
}
}
Apps Script
/**
* Responds to an APP_COMMAND interaction event in Google Chat.
*
* @param {Object} event The interaction event from Google Chat.
* @return {Object} The JSON response message with a confirmation.
*/
function onAppCommand(event) {
// Collect the command ID and type from the event metadata.
const {appCommandId, appCommandType} = event.appCommandMetadata;
if (appCommandType === 'MESSAGE_ACTION' &&
appCommandId === REMIND_ME_COMMAND_ID) {
// Message actions can access the context of the message they were
// invoked on, such as the text or sender of that message.
const messageText = event.message.text;
// Return a response that includes details from the original message.
return { "text": "Setting a reminder for message: " + messageText };
}
}
Python
def handle_app_command(event):
"""Responds to an APP_COMMAND interaction event from Google Chat.
Args:
event (dict): The interaction event from Google Chat.
Returns:
dict: The JSON response message with a confirmation.
"""
# Collect the command ID and type from the event metadata.
metadata = event.get('appCommandMetadata', {})
if metadata.get('appCommandType') == 'MESSAGE_ACTION' and \
metadata.get('appCommandId') == REMIND_ME_COMMAND_ID:
# Message actions can access the context of the message they were
# invoked on, such as the text or sender of that message.
message_text = event.get('message', {}).get('text')
# Return a response that includes details from the original message.
return {
"text": f'Setting a reminder for message: "{message_text}"'
}
Java
/**
* Responds to an APP_COMMAND interaction event from Google Chat.
*
* @param event The interaction event from Google Chat.
* @param response The HTTP response object.
*/
void handleAppCommand(JsonObject event, HttpResponse response) throws Exception {
// Collect the command ID and type from the event metadata.
JsonObject metadata = event.getAsJsonObject("appCommandMetadata");
String appCommandType = metadata.get("appCommandType").getAsString();
if (appCommandType.equals("MESSAGE_ACTION")) {
int commandId = metadata.get("appCommandId").getAsInt();
if (commandId == REMIND_ME_COMMAND_ID) {
// Message actions can access the context of the message they were
// invoked on, such as the text or sender of that message.
String messageText = event.getAsJsonObject("message").get("text").getAsString();
// Return a response that includes details from the original message.
JsonObject responseMessage = new JsonObject();
responseMessage.addProperty("text", "Setting a reminder for message: " + messageText);
response.getWriter().write(responseMessage.toString());
}
}
}
Замените REMIND_ME_COMMAND_ID на идентификатор команды, который вы указали при настройке команды в консоли Google Cloud.
Test the command
Чтобы проверить команду и код, см. раздел «Тестирование интерактивных функций для приложений Google Chat» .
Чтобы узнать, как протестировать и использовать эту команду в пользовательском интерфейсе чата, см. раздел «Использование приложений в Google Chat» в справочной документации Google Chat.
Связанные темы
- View Chat app samples that use commands
- Отправить сообщение
- Open interactive dialogs