Перейти к основному содержимому
Версия: 4.5.X

Webhook

Теперь есть новый вид транспорта - webhook, который позволяет делать HTTP-запросы в качестве уведомления. Этому виду соответствует новый блок для транспорта в конфиге - webhook, в элементах которого можно указывать следующие параметры:

  • url - URL, по которому делается запрос
  • method - HTTP-метод запроса
  • content-type - значение заголовка Content-Type
  • body-template - шаблон тела запроса (аналогично шаблону в smtp транспорте)

Пример для уведомлений по телеграм

Задаем конфигурацию для транспорта (по идее, она уже должна быть в конфиге сгенерирована):

webhook:
name: telegram
url: https://api.telegram.org/bot[INSERT_TOKEN]/sendMessage
disable: true
method: POST
content-type: application/json
cel-filter: ""
body-template: "{\"chat_id\":\"insert user id\",\"text\":\"Зарегистрирован инцидент №{{ incident.ID }} по директиве \\\"{{ directive }}\\\" (ID={{ incident.DirectiveID }}).\"}"
client:
tls:
TrustedCA: /var/lib/echelon/komrad/certs/ca.pem
Cert: /var/lib/echelon/komrad/certs/client.pem
CertKey: /var/lib/echelon/komrad/certs/client-key.pem
ServerName: ""
disable: true
system-pool: true
timeout: 30s

Далее необходимо создать бота в телеграм через BotFather

Полученный токен подставляем в URL вместо INSERT_TOKEN (и получаем сообщение

После нужно завести диалог с созданным ботом.

Последним шагом будет получение собственного ID в телеграм - для этого можно использовать ботов типа getmyid_bot. Полученный id вставляем в шаблон в поле chat_id, чтобы получить шаблон вида:

body-template: |

{

"chat_id": 1960753620,

"text": "Зарегистрирован инцидент №{{ incident.ID }} по директиве \"{{ directive }}\" (ID={{ incident.DirectiveID }})."

}

Теперь при инцидентах в телеграм должны приходить сообщения от бота