Аутентификация
Каждый запрос бота к Флудилке (REST и Gateway) должен содержать заголовок Authorization с бот-токеном.
Формат токена
Заголовок раздела «Формат токена»Токен имеет форму:
<application_id>.<secret>application_id— несекретный ID приложения (тот же что в инвайт-ссылке)secret— секретная часть, выдаётся один раз при сбросе токена
Вместе они дают полный доступ к бот-аккаунту. Ни одна половина сама по себе не работает.
Передача в REST-запросах
Заголовок раздела «Передача в REST-запросах»Префикс обязательный — это Bot:
GET /api/v1/users/@me HTTP/1.1Host: floodilka.comAuthorization: Bot 1496956937664585746.ZjBkYjE5ODI3NjQ4MGY4MTc1NzFjMjY1В коде:
await fetch('https://floodilka.com/api/v1/users/@me', { headers: {Authorization: `Bot ${process.env.FLOODILKA_BOT_TOKEN}`},});Передача в Gateway
Заголовок раздела «Передача в Gateway»В IDENTIFY передаётся тот же токен, без префикса Bot:
{ "op": 2, "d": { "token": "1496956937664585746.ZjBkYjE5ODI3NjQ4MGY4MTc1NzFjMjY1", "properties": {"os": "linux", "browser": "mybot", "device": "mybot"} }}Обратите внимание — в gateway токен без Bot в отличие от REST. Если IDENTIFY включает префикс — сервер закроет соединение 4004 AUTHENTICATION_FAILED.
Хранение токена
Заголовок раздела «Хранение токена»Никогда не:
- Не коммитьте токен в git
- Не вставляйте в клиентские приложения (extension, mobile app)
- Не показывайте в скриншотах
- Не отправляйте в чаты/поддержку
Правильно:
.envфайл, добавленный в.gitignore- Секрет-менеджер хостинга (Railway Variables, Fly.io secrets, Docker secrets)
- Переменная окружения на VPS через
systemd EnvironmentFile
Ротация
Заголовок раздела «Ротация»Если токен утёк — немедленно сбросьте его в Настройки → Приложения и боты → вкладка Бот → Сбросить токен. Старый токен инвалидируется в момент выдачи нового; все работающие процессы со старым токеном получат 401 Unauthorized на REST или 4004 AUTHENTICATION_FAILED на Gateway.
Ошибки аутентификации
Заголовок раздела «Ошибки аутентификации»| Статус | Когда | Что делать |
|---|---|---|
401 Unauthorized | Токен не передан, обрезан или сброшен | Проверить .env, пересбросить если надо |
403 Forbidden | Токен валиден, но действия недоступны (нет прав, бот не в гильдии) | Проверить инвайт-ссылку, посмотреть Права доступа |
Gateway
Заголовок раздела «Gateway»| Close code | Когда | Что делать |
|---|---|---|
4004 AUTHENTICATION_FAILED | Токен невалиден | Не реконнектиться. Сбросить и обновить токен |
4003 NOT_AUTHENTICATED | Клиент отправил payload до IDENTIFY | Реконнект с правильным порядком HELLO → IDENTIFY |
Подробнее — Коды закрытия.
Что дальше
Заголовок раздела «Что дальше»- Быстрый старт — пример curl-запроса с токеном
- Обзор бота — жизненный цикл бот-аккаунта
- Gateway: Жизненный цикл соединения — IDENTIFY детально