Добавление бота на сервер Discord¶
Добавление бота на сервер Discord — процесс авторизации стороннего программного обеспечения (бота) в мессенджере Discord путём перехода по OAuth2-ссылке приглашения с указанием целевого сервера и набора запрашиваемых разрешений. Боты используются для модерации, автоматизации, воспроизведения аудио, интеграции с внешними сервисами и иных задач.
¶Предварительные требования
Для добавления бота на сервер требуется выполнение ряда условий:
- учётная запись Discord с правами «Управление сервером» (Manage Server) на целевом сервере;
- сам бот должен быть заранее зарегистрирован разработчиком через Discord Developer Portal;
- для серверов, где включена проверка уровня, уровень аккаунта должен быть достаточным для вступления.
Регистрация бота выполняется на сайте discord.com/developers/applications. Создаётся приложение, в разделе Bot генерируется токен (Token), который используется для аутентификации бота при подключении к API Discord. Токен является секретным и не подлежит публикации.
¶Получение ссылки приглашения
После создания бота в разделе OAuth2 → URL Generator разработчик формирует ссылку приглашения. Порядок действий:
- В блоке Scopes выбирается область
bot(для классического бота) илиapplications.commands(для бота, регистрирующего slash-команды). Часто выбираются обе. - В блоке Bot Permissions отмечаются разрешения, которые бот получит на сервере: управление сообщениями, управление каналами, отправка сообщений, подключение к голосовым каналам и другие.
- Сформированная ссылка вида
https://discord.com/oauth2/authorize?client_id=...&scope=bot%20applications.commands&permissions=...` копируется и передаётся администратору сервера.
Альтернативный вариант — использование ссылки, которую размещают каталоги ботов (например, Discord Top GG или аналогичные российские и зарубежные каталоги). Принципиально это та же OAuth2-ссылка.
¶Процесс добавления
После перехода по ссылке приглашения откроется страница авторизации Discord:
- Пользователь логинится (если ещё не авторизован) и выбирает сервер, куда бот будет добавлен. В списке отображаются только серверы, где пользователь имеет право «Управление сервером».
- На странице отображается перечень запрашиваемых разрешений. Рекомендуется проверять список и не выдавать боту избыточные права.
- Нажимается кнопка «Авторизовать» (Authorize). При включённой на сервере проверке уровня может потребоваться решение капчи.
- После завершения бот появляется в списке участников сервера, обычно в офлайн-статусе до момента запуска его процесса разработчиком.
¶Управление разрешениями после добавления
Разрешения бота можно изменять в любой момент. На сервере открывается Настройки сервера → Роли, находится роль бота (обычно называется по имени бота), и вкладка Разрешения позволяет включать или отключать отдельные права. Рекомендуется выдавать боту отдельную роль с минимально необходимым набором прав и располагать эту роль выше модерируемых ролей, но ниже администраторов.
Для ограничения действия бота в конкретных каналах используются настройки прав канала: в свойствах канала на вкладке Роли и участники можно явно запретить или разрешить боту определённые действия.
¶Самостоятельная разработка бота
Для создания собственного бота используется Discord API и одна из библиотек:
| Язык | Библиотеки |
|---|---|
| Python | discord.py, nextcord, disnake |
| JavaScript / TypeScript | discord.js, oceanic.js |
| C# | DSharpPlus, Discord.Net |
| Go | discordgo |
Типовой минимальный пример на discord.py:
```python import discord
intents = discord.Intents.default() intents.message_content = True client = discord.Client(intents=intents)
@client.event async def on_ready(): print(f"Бот запущен: {client.user}")
client.run("ТОКЕН") ```
После запуска скрипта бот подключается к Discord и начинает обрабатывать события. Slash-команды регистрируются через @client.tree.command() и синхронизируются с API.
¶Типичные проблемы при добавлении
- Ссылка не работает или выдаёт ошибку «Invalid OAuth2 redirect URI» — проверяется корректность client_id и параметров в ссылке.
- Бот добавлен, но не отвечает — процесс бота не запущен либо не хватает разрешений.
- Бот не видит сообщения — в Developer Portal для бота должна быть включена привилегированная интент-опция Message Content Intent.
- Нет кнопки «Авторизовать» — аккаунт не имеет прав управления выбранным сервером или уровень аккаунта недостаточен.
¶Безопасность
Токен бота даёт полный контроль над учётной записью бота. Его не следует публиковать в открытом доступе, загружать в публичные репозитории или передавать третьим лицам. При компрометации токена его необходимо сбросить через Developer Portal. Также не рекомендуется выдавать боту разрешение «Администратор» без крайней необходимости — это расширяет потенциальный ущерб при уязвимости бота.
Источники:
- Discord Developer Portal — документация по OAuth2 и ботам
- discord.py — официальная документация библиотеки
- discord.js — официальная документация библиотеки
