- Введите
/вебхук управлениена нашем Discord-сервере. - В появившемся меню укажите URL вашего кастомного вебхука.
- Прежде чем нажимать кнопку «Добавить», обязательно нажмите кнопку «Проверить».
- Система отправит тестовое сообщение. Если оно пришло — значит, всё настроено верно и вебхук можно смело пускать в работу.
- После успешной проверки нажмите кнопку «Добавить», чтобы активировать получение данных.
Мы НЕ поддерживаем прямые вебхуки Discord. Система работает исключительно с кастомными вебхуками (вашими собственными обработчиками).
Требования
Ваш эндпоинт должен принимать
POSTзапросы с JSON телом.- Эти заголовки на каждом подписанном запросе:
X-Signature-Ed25519(hex-кодированная Ed25519 подпись).X-Signature-Timestamp(строка Unix timestamp).
Ваш Эндпоинт Должен:
- Прочитать сырые байты тела запроса точно в том виде, в котором они получены (не сериализуйте JSON заново).
-
Прочитать
X-Signature-Timestamp. -
Прочитать
X-Signature-Ed25519. -
Проверить подпись для:
message = timestamp + raw_bodyГдеtimestamp— это значение заголовка в виде строки, объединённое напрямую с сырыми байтами тела. -
Вернуть:
- 2xx только если подпись верна.
- 4xx если заголовки отсутствуют, неверны или проверка подписи не удалась.
Публичный Ключ
Используйте этот Ed25519 публичный ключ (base64, SubjectPublicKeyInfo / SPKI):Детали Реализации
Входные Данные
timestamp: точная строка изX-Signature-Timestamp.sigHex: точная строка изX-Signature-Ed25519(hex).rawBody: сырые байты тела запроса.
Шаги
- Декодируйте
sigHexиз hex в байты. - Постройте
messageкак:- Байты
timestampв UTF-8 - Сразу следом
rawBody
- Байты
- Проверьте Ed25519 подпись с помощью публичного ключа выше.
Распространённые Ошибки
- Не используйте распарсенный JSON объект для проверки. Используйте только сырые байты тела.
- Не добавляйте разделители или пробелы между timestamp и телом.
- Обрабатывайте подпись как hex, а не base64.
- Убедитесь, что ваш фреймворк не поглощает тело до того, как вы его захватите.
Какие события отправляются?
В настоящее время игра отправляет вебхуки для:- Сообщений, начинающихся с ;
- Это позволяет создавать собственные внутриигровые команды!
- Emergency Calls (Экстренные Вызовы)