Microsoft Teams с нами уже больше четырёх лет. Этот инструмент призван заменить программу-клиент «Skype для бизнеса» и был разработан в Microsoft как конкурент других популярных средств коммуникации, таких как Hangout, Slack, Zoom и т. д.

Microsoft Teams используется для ежедневного взаимодействия внутри команды или для связи с отдельными её участниками. Представьте, что вы сможете получать критически важную информацию, например отслеживая оповещения приложений или баз данных или любые другие события, а ваша команда будет получать уведомления в режиме реального времени. Не сомневаюсь, что все будут только рады такой идее.

2020 год был трудным, и теперь участники многих команд работают удалённо. Поэтому я выбрал эту тему для подробного разбора. Всё, что имеет критически важное значение, нужно сделать доступным в одном месте и уведомлять всех участников команды о появлении тех или иных вопросов или проблем. Тогда и решать их станет проще.

Рассмотрим базовую конфигурацию Microsoft Teams, позволяющую любому пользователю настроить веб-перехватчик, с помощью которого отправляются пользовательские уведомления на основе тех или иных требований.

Входящие веб-перехватчики  —  это специальный тип соединителя в Microsoft Teams, благодаря которому внешнее приложение использует простой способ обмена сообщениями в каналах команды. Microsoft Teams предоставляет уникальный URL-адрес, на который отправляется полезная нагрузка JSON с сообщением, которое требуется передать с помощью запроса POST (как правило, в формате карточки). Карточки  —  это контейнеры пользовательского интерфейса, которые содержат сообщения и действия, связанные с одной темой. А кроме того, это последовательный способ представления данных сообщения.

Добавление входящего веб-перехватчика в канал Microsoft Teams

  • Переходим к каналу, к которому надо добавить веб-перехватчик, и выбираем (•••) More Options («Дополнительные параметры») на панели быстрого доступа.
  • В раскрывающемся меню выбираем Connectors («Соединители») и выполняем поиск Incoming Webhook («Входящего веб-перехватчика»).
  • Нажимаем на кнопку Configure («Настроить»), указываем название и при желании загружаем изображение-аватар для веб-перехватчика.
  • В диалоговом окне появится уникальный URL-адрес, который будет сопоставлен с каналом. Обязательно скопируйте и сохраните этот URL: его нужно будет предоставить внешнему сервису.
  • Нажимаем на кнопку Done («Готово»). Веб-перехватчик будет доступен в канале команды.

Для отправки сообщения через входящий веб-перехватчик на URL-адрес веб-перехватчика отправляется полезная нагрузка JSON. Этот же JSON используется и для создания карточек, содержащих средства ввода с расширенной функциональностью. Например, ввод текста, возможность выбрать из нескольких вариантов или выбор даты и времени. Код, который генерирует карточку и отправляет на URL-адрес веб-перехватчика, выполняется на любом размещённом на сервере сервисе. Эти карточки определяются как часть сообщений с действиями и совместимы с карточками, используемыми в ботах Teams и расширениях для сообщений.

Отправка сообщения в веб-перехватчик с помощью cURL или Postman

Из командной строки вводим следующую cURL-команду:
curl -H ‘Content-Type: application/json’ -d ‘{“text”: “Welcome to the world of Microsoft Teams Notification !”}’ ‘<YOUR WEBHOOK URL>

Простое текстовое сообщение

Если отправка запроса POST завершится успешно, служебная программа командной строки curl вернёт простой результат/ответ 1.

Проверьте Microsoft Teams: на канале должно появиться приведённое выше сообщение.

И наконец, полезная нагрузка JSON для форматирования сообщения с несколько лучшим представлением, чем простое текстовое сообщение:

{
 "@type": "MessageCard",
 "@context": "http: //schema.org/extensions",
 "themeColor": "0584 ED",
 "summary": "Incoming Webhook Notification Demo",
 "sections": [{
  "activityTitle": " ** Birthday of John Doe ** ",
  "activitySubtitle": "May this special day be as incredible as you are.May this birthday be the start of a joyous and astonishing life ahead.Happy Birthday!",
  "activityImage": "https: //pngimg.com/uploads/happy_birthday/happy_birthday_PNG7.png",
  "markdown": true
 }]
}
Сообщение, содержащее форматированный текст

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

Ограничение скорости для соединителей

Ограничения скорости приложения регулируют трафик, генерируемый на канале соединителем или входящим веб-перехватчиком. Teams отслеживает запросы с помощью окна фиксированной скорости и инкрементного счётчика, ведущего измерения в секундах. При слишком большом количестве запросов клиентское подключение будет ограничено до обновления окна, т. е. пока не пройдено окно фиксированной скорости.

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

Удаление входящего веб-перехватчика из канала Microsoft Teams

  • Переходим к каналу, к которому был добавлен веб-перехватчик и выбираем (•••) More Options («Дополнительные параметры») на панели быстрого доступа.
  • В раскрывающемся меню выбираем Connectors («Соединители»).
  • Слева в разделе Manage («Управление») выбираем Configured («Настроено»).
  • Выбираем номер, настроенный для просмотра списка текущих соединителей.
  • Выбираем Manage («Управление») рядом с тем соединителем, который надо удалить.
  • Нажимаем на кнопку Remove («Удалить»), после чего появится диалоговое окно Remove Configuration («Удалить конфигурацию»).
  • При необходимости заполняем поля и расставляем галочки в диалоговом окне, а после нажимаем на кнопку Remove («Удалить»). Веб-перехватчик будет удалён из канала команды.

Читайте также:

Читайте нас в Telegram, VK и Яндекс.Дзен


Перевод статьи Nataraj Srikantaiah: Incoming Webhook in MS Teams

Предыдущая статьяКак ИИ меняет сферу финансов
Следующая статьяБиблиотеки Python для машинного обучения