Боты
Бот в Floodilka — это особый тип пользовательского аккаунта, принадлежащий приложению. Боты аутентифицируются бот-токеном, добавляются в гильдии через OAuth2 и в остальном ведут себя как обычные пользователи — с несколькими намеренными ограничениями.
Чем бот отличается от пользователя
Заголовок раздела «Чем бот отличается от пользователя»| Возможность | Пользователь | Бот |
|---|---|---|
| Вход по email и паролю | Да | Нет — только бот-токен |
| Отправка/приём запросов в друзья | Да | Нет |
| Присоединение к гильдии по инвайту | Да | Нет — только через OAuth2 со скоупом bot |
| Владение гильдией | Да | Нет — владение нельзя передать боту |
| Официальный клиент | Да | Нет |
| REST API | Да | Да |
| Gateway (WebSocket) | Да | Да |
Создание бота
Заголовок раздела «Создание бота»За каждым ботом стоит приложение. Создание приложения автоматически создаёт и бот-пользователя, и бот-токен.
-
Откройте Настройки → Приложения и боты.
-
Нажмите Новое приложение, введите имя и подтвердите. Floodilka создаст и приложение, и привязанного к нему бота.
-
Откройте приложение, перейдите на вкладку Бот, нажмите Сбросить токен и скопируйте появившийся токен. Ещё раз его увидеть не получится.
-
На той же вкладке настройте имя, аватар и описание бота — это то, что увидят пользователи, когда бот пишет сообщения.
Бот-токен
Заголовок раздела «Бот-токен»Токен имеет форму:
<application_id>.<secret>Обе части нужны. Передавайте его в заголовке Authorization: Bot <токен> в каждом запросе.
Сброс токена
Заголовок раздела «Сброс токена»Если токен утёк — немедленно сбросьте его на вкладке Бот → Сбросить токен. Старый перестаёт работать в момент выдачи нового. Обновите все запущенные процессы новым значением.
Добавление бота в гильдию
Заголовок раздела «Добавление бота в гильдию»Боты не принимают обычные инвайты. Вместо этого пользователь с правом Управлять сервером авторизует бота через OAuth2, и Floodilka сама добавляет его на выбранный сервер.
Ссылка-приглашение
Заголовок раздела «Ссылка-приглашение»https://floodilka.com/oauth2/authorize ?client_id=ID_ПРИЛОЖЕНИЯ &scope=bot &permissions=МАСКА_ПРАВ &guild_id=ID_ГИЛЬДИИ_ОПЦИОНАЛЬНО &disable_guild_select=true| Параметр | Обязателен | Описание |
|---|---|---|
client_id | Да | ID приложения, не токен. |
scope | Да | Должен содержать bot. Можно добавить другие скоупы (через пробел), если боту нужен ещё и Bearer-доступ. |
permissions | Нет | Десятичная битовая маска прав. Если не указать — бот присоединится без дополнительных прав. |
guild_id | Нет | Пред-выбирает конкретную гильдию на странице авторизации. |
disable_guild_select | Нет | true, чтобы зафиксировать guild_id и скрыть выбор. |
Битовая маска прав
Заголовок раздела «Битовая маска прав»Складывайте значения через побитовое ИЛИ. Например, модерационный бот может запрашивать:
const permissions = (1 << 13) | // MANAGE_MESSAGES (1 << 1) | // KICK_MEMBERS (1 << 2); // BAN_MEMBERS// → 8198Полная таблица — в разделе Права доступа.
Аутентификация от имени бота
Заголовок раздела «Аутентификация от имени бота»Когда бот в гильдии, используйте его токен на любых эндпоинтах:
curl https://floodilka.com/api/v1/channels/ID_КАНАЛА/messages \ -X POST \ -H "Authorization: Bot ВАШ_БОТ_ТОКЕН" \ -H "Content-Type: application/json" \ -d '{"content": "Привет от бота!"}'curl https://floodilka.com/api/v1/guilds/ID_ГИЛЬДИИ/members?limit=100 \ -H "Authorization: Bot ВАШ_БОТ_ТОКЕН"socket.send(JSON.stringify({ op: 3, d: { status: 'online', activities: [{name: 'с API', type: 0}], since: null, afk: false, },}));Приём событий в реальном времени
Заголовок раздела «Приём событий в реальном времени»Для всего реактивного (отвечать на сообщения, отслеживать присоединения участников, работать с голосом) подключайтесь к Gateway. Идентифицируйтесь бот-токеном — события приходят автоматически, а ненужные категории можно отключить параметром ignored_events в IDENTIFY.
Публичные и приватные боты
Заголовок раздела «Публичные и приватные боты»На вкладке Общие приложения можно включать:
- Публичный бот — кто угодно может использовать OAuth2-ссылку, чтобы добавить бота. Отключите, если бот только для одного сервера.
- Требовать OAuth2 code grant — запрашивать полный authorization code flow перед добавлением бота. Полезно для верификации, обычно выключено.
Лимиты и политика
Заголовок раздела «Лимиты и политика»- Один бот-пользователь на приложение.
- Имя бота должно соответствовать
[A-Za-z0-9_]{2,32}. - Бот не может быть владельцем гильдии.
- Массовая отправка ЛС пользователям, с которыми у бота не было взаимодействия, приведёт к флагу приложения.