Отправлять сообщения в Google Chat

На этой странице объясняется, как приложения Google Chat могут отправлять сообщения в ответ на взаимодействия пользователей.

В Google Chat дополнения отображаются для пользователей как приложения Google Chat. Чтобы узнать больше, см. обзор Extend Google Chat .

  • Контактная форма из команды с косой чертой.
    Рисунок 1. Приложение чата отвечает на команду с косой чертой текстовым сообщением и кнопкой.
  • Контактная форма в диалоговом окне.
    Рисунок 2. Приложение чата открывает диалоговое окно, в котором пользователи могут вводить информацию.
  • Сообщение карты с виджетами ввода данных.
    Рисунок 5. Приложение чата отправляет сообщение с текстом и интерактивной карточкой.

Предпосылки

Node.js

Надстройка Google Workspace, расширяющая Google Chat. Чтобы создать ее, выполните HTTP quickstart .

Скрипт приложений

Надстройка Google Workspace, расширяющая Google Chat. Чтобы создать ее, выполните краткое руководство по Apps Script .

Разработайте сообщение

Приложения чата могут включать в сообщение любую из следующих функций:

  • Текст, содержащий гиперссылки, @упоминания и эмодзи.
  • Одна или несколько карточек, которые могут отображаться в сообщении или открываться в новом окне в виде диалога.
  • Один или несколько дополнительных виджетов, представляющих собой кнопки, которые появляются после любого текста или карточек в сообщении.

Чтобы узнать больше о разработке сообщений, ознакомьтесь со следующей документацией Google Chat API:

Ответить сообщением

Чат-приложения могут отвечать сообщением на любой из следующих триггеров или взаимодействий:

  • Триггеры сообщений , например, когда пользователи @упоминают или отправляют личные сообщения в приложении Chat.
  • Добавляется к триггерам пространства , например, когда пользователи устанавливают приложение Chat из Google Workspace Marketplace или добавляют его в пространство.
  • Нажатия кнопок с карточек в сообщениях или диалогах. Например, когда пользователи вводят информацию и нажимают «отправить».

В противном случае приложения чата могут отправлять сообщения заранее, вызывая API чата Google .

Чтобы ответить сообщением, верните действие DataActions с объектом CreateMessageAction :

{ "hostAppDataAction": { "chatDataAction": { "createMessageAction": {
  "message": MESSAGE
}}}

Замените MESSAGE на ресурс Message из Chat API. Чтобы узнать больше о том, как работают действия, см. Действия чата .

В следующем примере приложение Chat создает и отправляет текстовое сообщение всякий раз, когда оно добавляется в пространство. Чтобы отправить текстовое сообщение, когда пользователь добавляет ваше приложение Chat в пространство, ваше приложение Chat реагирует на триггер Added to space , возвращая действие DataActions :

Node.js

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} req The request object from Google Workspace add-on.
 * @param {Object} res The response object from the Chat app. An onboarding message that
 *                     introduces the app and helps people get started with it.
 */
exports.cymbalApp = function cymbalApp(req, res) {
  const chatEvent = req.body.chat;
  // Send an onboarding message when added to a Chat space
  if (chatEvent.addedToSpacePayload) {
    res.json({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
      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`.'
    }}}}});
  }
};

Скрипт приложений

/**
 * 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 onAddedToSpace(event) {
  return { hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
    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`.'
  }}}}};
}

Пример кода возвращает следующее текстовое сообщение:

Пример приветственного сообщения.

Дополнительные примеры того, как ответить сообщением, см. в следующих руководствах:

Обновить сообщение

Приложения чата также могут обновлять отправляемые ими сообщения. Например, чтобы обновить сообщение после того, как пользователь отправил диалог или нажал кнопку и отправил сообщение.

Чтобы обновить сообщение приложения Chat, верните действие DataActions с UpdateMessageAction , как показано в следующем примере:

{ "hostAppDataAction": { "chatDataAction": { "updateMessageAction": {
  "message": MESSAGE
}}}}

Замените MESSAGE ресурсом Message из API чата.

Чтобы узнать больше о том, как работают действия, см. раздел Действия чата .

Приложения чата также могут обновлять сообщение от пользователя, чтобы вернуть предварительный просмотр ссылки, которую он отправил. Подробности см. в разделе Предварительный просмотр ссылок в сообщениях Google Chat .

Отвечайте на взаимодействия или отправляйте проактивные сообщения с помощью API Google Chat

Вместо возврата действия надстройки приложениям Chat может потребоваться использовать API Google Chat для ответа на взаимодействие. Например, приложения Chat должны вызывать API Google Chat, чтобы выполнить любое из следующих действий:

  • Отправляйте сообщения по расписанию или об изменениях на внешних ресурсах. Например, уведомления о новой проблеме или деле.
  • Ответить более чем через 30 секунд после взаимодействия. Например, чтобы ответить сообщением после завершения длительной задачи.
  • Отправьте сообщение за пределы пространства, где произошло взаимодействие.
  • Отправьте сообщение от имени пользователя чата.

Чтобы отправить сообщение с помощью API чата, необходимо настроить аутентификацию и вызвать метод create() на ресурсе Message . Для получения инструкций см. Отправка сообщения с помощью API чата Google .