HansaChat

Documentation

Входящи webhooks

Създайте webhook URL адреси и публикувайте JSON съобщения, съвместими със Slack, в каналите.

Входящите webhooks позволяват на външни инструменти да публикуват автоматични съобщения в канал на HansaChat. Използвайте ги за обновявания при внедряване, известия за мониторинг, известия за билети, изпращания на форми и други събития, които трябва да се появяват в чата на екипа.

Само администраторите на работното пространство могат да създават и управляват входящи webhooks.

Отваряне на Webhooks от Настройки

Създаване на webhook

  1. Отворете Настройки от страничната лента в долния ляв ъгъл.
  2. Изберете Webhooks.
  3. Изберете Създаване на webhook.
  4. Въведете ясно име на webhook, например CI Deployments.
  5. Изберете канала, в който трябва да се публикуват съобщенията.
  6. По желание въведете URL адрес на икона.
  7. Изберете Създаване на webhook.

Празна страница с webhooks

Форма за създаване на webhook

Копиране на URL адреса на webhook

След създаването HansaChat показва URL адреса на webhook само веднъж. Копирайте го и го съхранете сигурно във външния инструмент, който ще изпраща събития.

URL адресът на webhook, показан веднъж

Ако затворите този екран, без да запазите URL адреса, сменете URL адреса, за да генерирате нов тайн ключ. Предишният URL адрес спира да работи веднага след смяната.

Управление на webhooks

От страницата Webhooks администраторите могат да:

  • Редактират името на webhook, канала, URL адреса на иконата или състоянието „активен".
  • Изключват webhook, така че той да отхвърля нови съобщения, без да бъде изтрит.
  • Сменят URL адреса, за да обезсилат стария тайн ключ и да генерират нов URL адрес.
  • Изтриват webhook. Съществуващите съобщения в чата не се премахват.

Техническа справка

Изпратете POST заявка към URL адреса на webhook:

https://{workspace-domain}/api/webhooks/{publicID}/{secret}

URL адресът съдържа данните за удостоверяване на webhook. Не е необходим допълнителен заглавен ред за удостоверяване. Дръжте пълния URL адрес в тайна.

Минимална заявка

curl -X POST 'https://{workspace-domain}/api/webhooks/{publicID}/{secret}' \
  -H 'Content-Type: application/json' \
  -d '{"text":"Deployment completed successfully"}'

След като HansaChat върне ok, съобщението се появява в избрания канал.

Тестово съобщение от webhook в канал

Payload, съвместим със Slack

Крайната точка приема JSON payload-и, съвместими със Slack, с text, blocks и attachments.

{
  "text": "Deployment completed successfully",
  "blocks": [
    {
      "type": "header",
      "text": {
        "type": "plain_text",
        "text": "Deployment completed"
      }
    },
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "Branch `main` is now live."
      }
    }
  ]
}

Поне едно от text, blocks или attachments трябва да съдържа четим текст.

Поддържани полета

Поле Задължително Бележки
text Не Съдържание на съобщението като чист текст.
blocks Не Блокове в стил Slack Block Kit. До 50 блока. Поддържани типове блокове: section, header, context, image.
attachments Не Прикачени файлове в стил Slack. До 100 прикачени файла.

Максималният размер на payload е 1 MB.

Лимити на заявките

Приемането на входящи webhooks е ограничено по честота за всеки URL адрес на webhook.

Всеки webhook може да приема до 10 удостоверени заявки в минута и до 100 удостоверени заявки на час. Когато някой от лимитите бъде достигнат, HansaChat връща 429 resource_exhausted.

Свържете се с нас, ако искате да увеличите лимита на заявките.

Лимитите за payload се налагат поотделно: максималният размер на тялото е 1 MB, blocks приема до 50 елемента, attachments приема до 100 елемента, а payload трябва да съдържа четим текст.

Идемпотентност

Добавете заглавния ред Idempotency-Key, когато системата ви може да повтори едно и също събитие:

curl -X POST 'https://{workspace-domain}/api/webhooks/{publicID}/{secret}' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: deploy-1247' \
  -d '{"text":"Deployment #1247 completed"}'

Ако HansaChat получи отново същия ключ за идемпотентност за същия webhook, той връща 200 ok, без да създава дублиращо съобщение.

Отговори

Успешните заявки връщат:

ok

Чести грешки:

Статус Тяло Значение
400 invalid_payload JSON тялото не можа да бъде анализирано.
400 invalid_blocks Заявката съдържа повече от 50 блока.
400 too_many_attachments Заявката съдържа повече от 100 прикачени файла.
400 no_text Payload няма четим текст.
429 resource_exhausted Webhook-ът е надхвърлил 10 заявки в минута или 100 заявки на час.
404 no_active_hooks Работното пространство, webhook-ът, тайният ключ или активното състояние са невалидни.
410 channel_is_archived Целевият канал е архивиран.
503 temporarily_unavailable HansaChat не може да обработи съобщението в момента. Опитайте отново по-късно със същия Idempotency-Key.

Съвети за сигурност

  • Отнасяйте се към URL адресите на webhooks като към пароли.
  • Съхранявайте URL адресите в мениджъра на тайни на външния си инструмент.
  • Сменете URL адреса, ако той е бил разкрит или изгубен.
  • Изключвайте неизползваните webhooks.
  • Използвайте отделен webhook за всяка външна система, за да може достъпът да бъде отнет чисто.