Вебхуки
Отправка новостей в Discord и на произвольный URL
Утилиты → Вебхуки. Вебхук дёргает указанный адрес, когда на сайте что-то произошло. Сейчас событий два, оба про новости.
| Событие | Когда срабатывает |
|---|---|
| Новость создана | На сайте опубликована новая новость |
| Новость из ВК | LongPoll принёс новый пост из сообщества |
События разделены намеренно. Обычно из ВК новости уже уходят в Discord руками, и дублировать их не хочется. Бывает и наоборот, когда в Discord нужны только посты из ВК, а сайтовые анонсы туда не идут.
Формат
Адрес выдаёт сам Discord: Настройки канала → Интеграции → Вебхуки → Создать. Скопируйте ссылку вида https://discord.com/api/webhooks/... и вставьте её в поле «URL».
Сообщение приходит эмбедом: заголовок, текст, картинка новости, ссылка на страницу.
Обычный POST с телом новости в JSON на любой ваш адрес. Пригодится, чтобы дублировать новости в Telegram, в свой бот или в очередь.
Таймаут пять секунд, повторов нет. Если ваш сервис не ответил, сообщение потеряется, так что отвечайте сразу, а разбирайте новость уже потом.
Не любой адрес пройдёт
Перед отправкой сервер проверяет адрес и отклоняет всё, что ведёт в локальную сеть или на служебные адреса облаков. Это защита от SSRF: без неё через вебхук можно дотянуться до внутренних сервисов вашей же сети.
Несколько вебхуков на одно событие
Ограничений нет. Чаще всего вешают сразу три: эмбед в канал анонсов Discord, JSON в свой Telegram-бот и JSON в тестовый канал, чтобы видеть, что уходит.
Упавший вебхук сервер записывает в лог вместе с его ID и адресом. Остальные при этом отработают, одна сломанная интеграция не блокирует другие.