Подключение
1
Откройте страницу вебхуков
Войдите на сайт и откройте erlcrussia.com/my/tokens/webhooks. Доступ выдаётся по тикету, см. Как получить ключ.
2
Добавьте URL
Укажите адрес своего обработчика и нажмите «Проверить». API отправит два тестовых запроса: с верной подписью и с поддельной.
3
Пройдите проверку
URL сохраняется, только если обработчик ответил 2xx на запрос с верной подписью и 4xx на поддельный.
Требования к обработчику
- Принимать
POSTс JSON-телом. - Читать заголовки
X-Signature-Timestamp(Unix-время строкой) иX-Signature-Ed25519(подпись в hex). - Проверять подпись сообщения
timestamp + сырое тело: байты timestamp в UTF-8, сразу за ними байты тела без изменений. - Отвечать 2xx только при верной подписи, иначе — 4xx.
Публичный ключ
Ed25519, base64, формат SPKI:Пример на Node.js
- проверять подпись по распарсенному и заново сериализованному JSON вместо сырых байтов;
- добавлять пробел или разделитель между timestamp и телом;
- декодировать подпись как base64 вместо hex;
- фреймворк читает тело раньше, чем вы успеваете получить сырые байты.
Какие события приходят
- сообщения в игре, начинающиеся с
;— для своих внутриигровых команд; - экстренные вызовы.