Перейти к содержимому

Боты

Бот в Floodilka — это особый тип пользовательского аккаунта, принадлежащий приложению. Боты аутентифицируются бот-токеном, добавляются в гильдии через OAuth2 и в остальном ведут себя как обычные пользователи — с несколькими намеренными ограничениями.

ВозможностьПользовательБот
Вход по email и паролюДаНет — только бот-токен
Отправка/приём запросов в друзьяДаНет
Присоединение к гильдии по инвайтуДаНет — только через OAuth2 со скоупом bot
Владение гильдиейДаНет — владение нельзя передать боту
Официальный клиентДаНет
REST APIДаДа
Gateway (WebSocket)ДаДа

За каждым ботом стоит приложение. Создание приложения автоматически создаёт и бот-пользователя, и бот-токен.

  1. Откройте Настройки → Приложения и боты.

  2. Нажмите Новое приложение, введите имя и подтвердите. Floodilka создаст и приложение, и привязанного к нему бота.

  3. Откройте приложение, перейдите на вкладку Бот, нажмите Сбросить токен и скопируйте появившийся токен. Ещё раз его увидеть не получится.

  4. На той же вкладке настройте имя, аватар и описание бота — это то, что увидят пользователи, когда бот пишет сообщения.

Токен имеет форму:

<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": "Привет от бота!"}'

Для всего реактивного (отвечать на сообщения, отслеживать присоединения участников, работать с голосом) подключайтесь к Gateway. Идентифицируйтесь бот-токеном — события приходят автоматически, а ненужные категории можно отключить параметром ignored_events в IDENTIFY.

На вкладке Общие приложения можно включать:

  • Публичный бот — кто угодно может использовать OAuth2-ссылку, чтобы добавить бота. Отключите, если бот только для одного сервера.
  • Требовать OAuth2 code grant — запрашивать полный authorization code flow перед добавлением бота. Полезно для верификации, обычно выключено.
  • Один бот-пользователь на приложение.
  • Имя бота должно соответствовать [A-Za-z0-9_]{2,32}.
  • Бот не может быть владельцем гильдии.
  • Массовая отправка ЛС пользователям, с которыми у бота не было взаимодействия, приведёт к флагу приложения.