- Введіть
/вебхук управлінняна нашому 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 (Екстрені Виклики)