UnicoreCMS

Вебхуки

Отправка новостей в Discord и на произвольный URL

Утилиты → Вебхуки. Вебхук дёргает указанный адрес, когда на сайте что-то произошло. Сейчас событий два, оба про новости.

СобытиеКогда срабатывает
Новость созданаНа сайте опубликована новая новость
Новость из ВКLongPoll принёс новый пост из сообщества

События разделены намеренно. Обычно из ВК новости уже уходят в Discord руками, и дублировать их не хочется. Бывает и наоборот, когда в Discord нужны только посты из ВК, а сайтовые анонсы туда не идут.

Формат

Адрес выдаёт сам Discord: Настройки канала → Интеграции → Вебхуки → Создать. Скопируйте ссылку вида https://discord.com/api/webhooks/... и вставьте её в поле «URL».

Сообщение приходит эмбедом: заголовок, текст, картинка новости, ссылка на страницу.

Обычный POST с телом новости в JSON на любой ваш адрес. Пригодится, чтобы дублировать новости в Telegram, в свой бот или в очередь.

Таймаут пять секунд, повторов нет. Если ваш сервис не ответил, сообщение потеряется, так что отвечайте сразу, а разбирайте новость уже потом.

Не любой адрес пройдёт

Перед отправкой сервер проверяет адрес и отклоняет всё, что ведёт в локальную сеть или на служебные адреса облаков. Это защита от SSRF: без неё через вебхук можно дотянуться до внутренних сервисов вашей же сети.

Несколько вебхуков на одно событие

Ограничений нет. Чаще всего вешают сразу три: эмбед в канал анонсов Discord, JSON в свой Telegram-бот и JSON в тестовый канал, чтобы видеть, что уходит.

Упавший вебхук сервер записывает в лог вместе с его ID и адресом. Остальные при этом отработают, одна сломанная интеграция не блокирует другие.

Содержание