На этой странице описывается, как настроить вебхук для отправки асинхронных сообщений в чат-пространство с использованием внешних триггеров. Например, вы можете настроить приложение мониторинга для уведомления дежурного персонала в чате о сбое сервера. Чтобы отправить синхронное сообщение с помощью приложения чата, см. раздел «Отправка сообщения» .
При таком типе архитектуры пользователи не могут взаимодействовать с веб-хуком или подключенным внешним приложением, поскольку взаимодействие одностороннее. Веб-хуки не являются диалоговыми. Они не могут отвечать на сообщения пользователей или получать от них сообщения, а также события взаимодействия с чат-приложением . Чтобы отвечать на сообщения, создайте чат-приложение вместо веб-хука.
Хотя веб-хук технически не является приложением чата (веб-хуки соединяют приложения с помощью стандартных HTTP-запросов), на этой странице для упрощения он называется приложением чата. Каждый веб-хук работает только в том пространстве чата, в котором он зарегистрирован. Входящие веб-хуки работают в личных сообщениях, но только если у всех пользователей включены приложения чата . Веб-хуки нельзя публиковать в Google Workspace Marketplace.
На следующей диаграмме показана архитектура веб-перехватчика, подключенного к чату:
На предыдущей диаграмме приложение чата имеет следующий поток информации:
- Логика приложения «Чат» получает информацию от внешних сторонних сервисов, таких как система управления проектами или инструмент управления тикетами.
- Логика приложения чата размещается либо в облаке, либо в локальной системе, которая может отправлять сообщения с использованием URL-адреса веб-перехватчика в определенное пространство чата.
- Пользователи могут получать сообщения из приложения «Чат» в этом конкретном чат-пространстве, но не могут взаимодействовать с приложением «Чат».
Предпосылки
Питон
- Учетная запись Google Workspace уровня Business или Enterprise с доступом к Google Chat . Ваша организация Google Workspace должна разрешить пользователям добавлять и использовать входящие веб-перехватчики .
- Python 3.6 или выше
- Инструмент управления пакетами pip
- Библиотека - httplib2. Чтобы установить библиотеку, выполните следующую команду в командной строке:- pip install httplib2
- Пространство Google Chat. Чтобы создать его с помощью API Google Chat, см. раздел Создание пространства . Чтобы создать пространство в Chat, посетите документацию Справочного центра . 
Node.js
- Учетная запись Google Workspace уровня Business или Enterprise с доступом к Google Chat . Ваша организация Google Workspace должна разрешить пользователям добавлять и использовать входящие веб-перехватчики .
- Node.js 14 или выше
- Инструмент управления пакетами npm
- Пространство Google Chat. Чтобы создать его с помощью API Google Chat, см. раздел Создание пространства . Чтобы создать пространство в Chat, посетите документацию Справочного центра .
Ява
- Учетная запись Google Workspace уровня Business или Enterprise с доступом к Google Chat . Ваша организация Google Workspace должна разрешить пользователям добавлять и использовать входящие веб-перехватчики .
- Java 11 или выше
- Инструмент управления пакетами Maven
- Пространство Google Chat. Чтобы создать его с помощью API Google Chat, см. раздел Создание пространства . Чтобы создать пространство в Chat, посетите документацию Справочного центра .
Скрипт приложений
- Учетная запись Google Workspace уровня Business или Enterprise с доступом к Google Chat . Ваша организация Google Workspace должна разрешить пользователям добавлять и использовать входящие веб-перехватчики .
- Создайте автономный проект Apps Script и включите расширенную службу чата .
- Пространство Google Chat. Чтобы создать его с помощью API Google Chat, см. раздел Создание пространства . Чтобы создать пространство в Chat, посетите документацию Справочного центра .
Создать вебхук
Чтобы создать веб-хук, зарегистрируйте его в области чата, где вы хотите получать сообщения, а затем напишите скрипт, который отправляет сообщения.
Зарегистрировать входящий вебхук
- Откройте Chat в браузере. Веб-перехваты нельзя настроить из мобильного приложения Chat.
- Перейдите в место, куда вы хотите добавить веб-хук.
- Рядом с заголовком пространства нажмите стрелку развернуть больше, а затем нажмите Приложения и интеграции .
- Нажмите веб-перехватчики» . 
- В поле Имя введите - Quickstart Webhook.
- В поле URL аватара введите - https://developers.google.com/chat/images/chat-product-icon.png.
- Нажмите «Сохранить ». 
- Чтобы скопировать URL-адрес веб-перехватчика, нажмите Еще , а затем нажмите Копировать ссылку . - URL-адрес веб-перехватчика содержит два параметра: - key— общее значение, используемое всеми веб-перехватчиками, и- token— уникальное значение, которое необходимо хранить в секрете для сохранения безопасности вашего веб-перехватчика.
Напишите скрипт вебхука
 Пример скрипта вебхука отправляет сообщение в область, в которой зарегистрирован вебхук, отправляя POST запрос на URL-адрес вебхука. API чата отвечает экземпляром Message .
Выберите язык, чтобы узнать, как создать скрипт веб-перехвата:
Питон
- В рабочем каталоге создайте файл с именем - quickstart.py.
- В - quickstart.pyвставьте следующий код:
- Замените значение переменной - urlна URL-адрес веб-перехватчика, скопированный вами при регистрации веб-перехватчика.
Node.js
- В рабочем каталоге создайте файл с именем - index.js.
- В - index.jsвставьте следующий код:
- Замените значение переменной - urlна URL-адрес веб-перехватчика, скопированный вами при регистрации веб-перехватчика.
Ява
- В рабочем каталоге создайте файл с именем - pom.xml.
- В - pom.xmlскопируйте и вставьте следующее:
- В рабочем каталоге создайте следующую структуру каталогов - src/main/java.
- В каталоге - src/main/javaсоздайте файл с именем- App.java.
- В - App.javaвставьте следующий код:
- Замените значение переменной - URLна URL-адрес веб-перехватчика, скопированный вами при регистрации веб-перехватчика.
Скрипт приложений
- В браузере перейдите в Apps Script . 
- Нажмите «Новый проект». 
- Вставьте следующий код: 
- Замените значение переменной - urlна URL-адрес веб-перехватчика, скопированный вами при регистрации веб-перехватчика.
Запустить скрипт вебхука
В CLI запустите скрипт:
Питон
  python3 quickstart.pyNode.js
  node index.jsЯва
  mvn compile exec:java -Dexec.mainClass=AppСкрипт приложений
- Нажмите кнопку Выполнить .
При запуске кода веб-хук отправляет сообщение в пространство, в котором вы его зарегистрировали.
Начать или ответить на цепочку сообщений
- Укажите - spaces.messages.thread.threadKeyв теле запроса сообщения. В зависимости от того, создаёте ли вы обсуждение или отвечаете на него, используйте следующие значения для- threadKey:- При создании темы установите для - threadKeyпроизвольную строку, но запишите это значение, чтобы опубликовать ответ в теме.
- При ответе на тему укажите - threadKey, который был задан при её создании. Например, чтобы ответить на тему, где в первом сообщении использовался- MY-THREAD, укажите- MY-THREAD.
 
- Определите поведение потока, если указанный - threadKeyне найден:- Ответьте на обсуждение или начните новое. Добавьте параметр - messageReplyOption=REPLY_MESSAGE_FALLBACK_TO_NEW_THREADк URL-адресу веб-перехватчика. Передача этого параметра URL-адреса заставляет Chat искать существующее обсуждение по указанному- threadKey. Если обсуждение найдено, сообщение отправляется как ответ на него. Если обсуждение не найдено, сообщение начинает новое обсуждение, соответствующее этому- threadKey.
- Ответьте на ветку или не делайте ничего. Добавьте параметр - messageReplyOption=REPLY_MESSAGE_OR_FAILк URL-адресу веб-перехватчика. Передача этого параметра URL-адреса заставляет Chat искать существующую ветку, используя указанный- threadKey. Если она найдена, сообщение отправляется как ответ на эту ветку. Если ничего не найдено, сообщение не отправляется.
 - Более подробную информацию см. в - messageReplyOption.
Следующий пример кода начинает поток сообщений или отвечает на него:
Питон
Node.js
Скрипт приложений
Обработка ошибок
Запросы Webhook могут быть неудачными по разным причинам, включая:
- Неверный запрос.
- Веб-перехватчик или пространство, на котором размещен веб-перехватчик, удаляется.
- Периодически возникающие проблемы, такие как сетевое подключение или ограничения квот.
При создании веб-перехватчика необходимо правильно обрабатывать ошибки:
- Регистрация сбоя.
- В случае ошибок, связанных со временем, квотой или сетевым подключением, повторная попытка запроса выполняется с экспоненциальной задержкой .
- Ничего не делать, что уместно, если отправка сообщения вебхука не важна.
 API Google Chat возвращает ошибки в виде объекта google.rpc.Status , который включает code ошибки HTTP, указывающий тип обнаруженной ошибки: ошибка клиента (серия 400) или ошибка сервера (серия 500). Чтобы просмотреть все сопоставления HTTP, см. google.rpc.Code . 
{
    "code": 503,
    "message": "The service is currently unavailable.",
    "status": "UNAVAILABLE"
}
Чтобы узнать, как интерпретировать коды состояния HTTP и обрабатывать ошибки, см. раздел Ошибки .
Ограничения и соображения
-  При создании сообщения с помощью вебхука в Google Chat API ответ не содержит полного сообщения. В ответе заполняются только поля nameиthread.name.
-  На веб-хуки распространяется квота spaces.messages.createна пространство: 1 запрос в секунду, общая для всех веб-хуков в пространстве. Чат также может отклонять запросы веб-хуков, превышающие 1 запрос в секунду в одном пространстве. Подробнее о квотах API чата см. в разделе «Ограничения использования» .