Создание вашего приложение
Шаги, упомянутые далее в этой статье, по сути, яляются копией шагов упомянутых в документации. Таким образом, вы можете выполнить эти действия из любого ресурса.
Если вы уже создали своё приложение для бота, вы можете пропустить эту статью и перейти к начальным файлам .
Создание аккаунта бота
Чтобы работать с библиотекой и Discord API в целом, мы должны сначала создать аккаунт бота в Discord.
Создание аккаунта бота — довольно простой процесс.
- Убедитесь, что вы авторизированы в Discord.
- Перейдите на страницу приложений.
- Нажмите на кнопку New Application .

- Дайте приложению имя и нажмите Create .

- Создайте аккаунт бота, перейдя на вкладку Bot и нажав Add Bot .
- Нажмите Yes, do it! для продолжения.

- Вы также должны убедиться, что флажок Require OAuth2 Code Grant снят, если только вы не разрабатываете службу, которая в этом нуждается. Если вы не уверены, то оставьте его снятым.

- Это не Client Secret на странице общей информации.
И это всё. Теперь у вас есть аккаунт бота, и вы можете войти с помощью этого токена.
Что касается токена бота
Этот раздел важный, поэтому обратите на него пристальное внимание. В нём объясняется, что такое токен вашего бота, а тажке его аспекты безопасности.
Что такое токен?
Следует отметить, что токен по сути, является паролем вашего бота. Вы никогда не должны делиться им с кем-то другим. При этом кто-то может войти в вашего бота и совершать вредоносные действия, например, покидать сервера, банить всех участников на серверах или намеренно упоминать всех.
Токены выглядят следующим образом: OTA4MjgxMjk4NTU1MTA5Mzk2.YYzc4A.TB7Ng6DOnVDlpMS4idjGptsreFg (не беспокойтесь, мы сбросили этот токен!) Если он будет немного короче и больше похож на этот: CR8UbizwLgyES9LuHK7eIrXHbRTuqoEs , значит вместо токена вы скопировали свой Client Secret. Обязательно скопируйте токен, если вы хотите, чтобы ваш бот работал!
Сценарий утечки токена
Давайте представим, что у вас есть бот, находящийся на более чем 1000 серверах, и потребовалось много-много месяцев написания и терпения, чтобы получить его на этом количестве серверов. Ваш токен куда-то утёк, и теперь он у кого-то другого. Этот человек может:
- Спамить на каждом сервере, на которых находится ваш бот;
- Рассылать спам в личные сообщения большому количеству пользователей;
- Удалять большое количество каналов;
- Выгонять или банить большое количество участников на серверах;
- Заставить вашего бота покинуть все серверы, к которым он присоединился;
- Доступ и повреждение вашего сервера.
Всё это и многое, многое другое. Звучит довольно ужасно, не так ли? Поэтому убедитесь, что ваш токен находится в максимальной безопасности! На странице начальных файлов мы рассмотрим, как безопасно хранить ваш токен в файле конфигурации.
Если вы случайно «слили» свой токен, нажмите на кнопку Regenerate как можно скорее. Это уничтожит ваш старый токен и создаст новый. Теперь вам нужно использовать новый токен для входа.
Системные сообщения Discord
Системные сообщения — это официальные сообщения, которые Discord отправляет, чтобы предупредить вас о проблеме с вашим аккаунтом. Эти сообщения могут варьироваться от различных проблем с оплатой, обновлений обращений в службу поддержки и предупреждений о нарушении ToS. Вы также можете ожидать системного сообщения, если ваш токен бота был опубликован в интернете публично и был найден Discord.
Такое сообщение будет выглядеть следующим образом:

Поскольку мы не знаем, в какой степени Discord ищет токены бота или сколько времени требуется для информирования пользователя о том, где был найден бот, мы рекомендуем не полностью полагаться на эту функцию. Но в случае, если ваш токен бота будет найден в интернете публично (скажем, в репозитории GitHub), вы можете ожидать, что Discord отправит системное сообщение на аккаунт, к которому привязан бот.
Обратите внимание, что Discord никогда не будет запрашивать ваш пароль или токен учетной записи, а системное сообщение никогда не будет запрашивать то же самое. Системные сообщения из Discord будут иметь проверенный тег СИСТЕМА , а в строке внизу личных сообщений будет сказано — «В данной ветке отображаются уведомления Discord».

Вы можете прочитать больше о подлинности этих сообщений в этой статье.
Приглашение вашего бота
Итак, вы создали учетную запись бота, но на самом деле его нет ни на одном сервере. Если вы хотите пригласить своего бота, вы должны создать для него приглашение.
- Убедитесь, что вы авторизированы в Discord.
- Перейдите на страницу приложений.
- Нажмите на страницу вашего бота.
- Перейдите на вкладку OAuth2 .

- Поставьте галочку возле bot в поле scopes .
- Если вы хотите использовать слеш команды и другие взаимодействия в вашем боте, обязательно поставьте галочку возле applications.commands в поле scopes .

- Пожалуйста, помните про последствия требования права Administrator (Администратор).
- Владельцы ботов должны иметь включённый 2FA для определённых действий и прав при добавлении на серверах, на которых включён общесерверный 2FA. Прочтите страницу поддержки по 2FA для дополнительной информации.

Для этого человеку, добавляющему бота, необходимо право «Управление сервером».
Если вы хотите сгенерировать динамическое приглашение во время выполнения команды, используйте интерфейс Permissions и utils.oauth_url .
Бот Discord: как создать и добавить на сервер
Чтобы подключить бота Discord в ваше приложение, вам понадобятся токен бота (для настройки модуля) и ID канала, в который вы будете отправлять сообщения (для формы отправки).
Расскажем, как создать сервер, канал и бота Discord, а после добавить созданного бота на ваш сервер. О том, как настроить отправку сообщений на платформе AppMaster.io, можно прочитать в этой статье.
Создать сервер и канал, скопировать ID канала
Для начала вам нужно создать новый сервер в Discord (или получить права администратора на уже существующем). Откройте страницу вашей учетной записи Discord в браузере — так будет удобнее перемещаться между страницами настроек.
1.Нажмите на «+» на левой панели.
2.Выберите шаблон сервера в зависимости от вашей сферы или создайте собственный.
3.Укажите, для каких целей хотите его использовать.
4.Выберите изображение будущего сервера и укажите его название (1), затем нажмите Create. (2).
5.Сервер создан. По умолчанию в него уже добавлены два канала — текстовый и голосовой (1). Чтобы изменить настройки канала, нажмите значок шестеренки (2). Добавить новый канал можно, нажав на «+» рядом с названием раздела. Мы не будем создавать новый канал и для подключения нашего бота используем уже существующий канал general.
6.Теперь нужно получить ID выбранного канала. Для этого нужно сначала включить режим разработчика в настройках вашего профиля. Нажмите на значок шестеренки рядом с вашим никнеймом и фотографией.
7.Перейдите в раздел APP SETTINGS, на вкладку Advanced (1) и переместите селектор Developer mode — режим разработчика активируется (2).
8.Вернитесь из меню настроек и кликните по нужному каналу правой клавишей мыши (1), во всплывающем меню выберите Copy ID — идентификатор вашего канала будет скопирован (2). Сохраните его в любом текстовом документе, чтобы не возвращаться к этому шагу.
Создать бота и добавить его на сервер, скопировать токен бота
Чтобы создать бота, перейдите на специальную страницу Discord для разработчиков: https://discord.com/developers/. Откройте ее в соседней вкладке браузера, не выходя из вашей учетной записи Discord.
Сначала вам нужно создать приложение, затем в этом приложении создать бота и настроить для него разрешения, и только после этого — добавлять бота на сервер.
1.На вкладке Applications выберите New Application.
2.Введите название будущего приложения (1) и нажмите Create (2).
3.Приложение создано. Перейдите не вкладку Bot (1) и нажмите Add Bot, чтобы добавить нового бота.
4.Согласитесь добавить бота в ваше приложение.
5.Бот создан. На вкладке Bot отобразится вся информация о нем. Тут можно изменить его имя, добавить изображение и скопировать токен бота (1). Этот токен понадобится вам для настройки модуля Discord на платформе Appmaster.i. Каждый раз при внесении изменений портал разработчика будет предлагать вам сохранить их (2).
Сохраните токен бота, чтобы при последующей настройке не возвращаться к этому шагу.
6.Теперь перейдите на вкладку OAuth2 (1) — тут можно настроить разрешения и получить ссылку на вашего бота. В разделе SCOPES выберите bot(2), в BOT PERMISSIONS отметьте разрешения, которые хотите ему предоставить, в нашем случае — только отправка сообщений, поэтому выберите Send Message(3). После скопируйте автоматически сгенерированную Discord ссылку(4).
7.Вставьте скопированную ссылку в адресную строку браузера и перейдите по ней — откроется окошко вашего приложения. Выберите ваш сервер в раскрывающемся списке (1) и нажмите Continue (2).
8.Убедитесь, что приложению (а значит, и созданному в нем боту) даны только необходимые разрешения, после чего добавьте его на ваш сервер.
9.Теперь вернитесь на ваш сервер. Бот оставил приветственное сообщение — значит, что он успешно добавлен и функционирует.
Через AppMaster.io Studio подключить бота в приложение
Итак, все готово. Вы получили токен бота для модуля Discord и ID канала для формы отправки сообщения. Теперь перейдите в AppMaster.io Studio и настройте отправку сообщений из вашего приложения, следуя инструкции Модуль Discord: подключение бота и отправка сообщений.
Следите за нашим блогом и присоединяйтесь к чату комьюнити, чтобы узнавать о новостях платформы и новых статьях.
Подробнее о том, что такое модули и как их настраивать — в обучающем видеокурсе AppMaster.io 101.
Создаем бота для Discord (NodeJS + Docker)

В этом ознакомительном HOWTO я расскажу, как можно немного занять себя на время карантина и сделать бота для своего Discord-сервера. Мы развернем NodeJS в Docker под Ubuntu 18.04 и запустим в нем бота с парочкой простых команд. В конце я оставлю ссылки на полезные источники информации, чтобы вы могли дальше развивать бота, наделяя его полезными функциями.
Программное обеспечение сервера, используемое в этом уроке:
- Ubuntu 18.04
- Docker 19.03.6
- npm 6.14.5
В этой статье подразумевается, что вы обладаете навыками работы в командной строке Linux.
Первые шаги
Первым шагом станет создание приложения на официальном сайте Discord (убедитесь, что вы зарегистрированы). Для этого потребуется пройти по ссылке и нажать на кнопку “New application”.

В появившемся окне нужно придумать имя своему приложению (будущему боту):

После указания имени и создания приложения мы можем перейти к созданию бота. Для этого в левом меню выберите пункт “Bot” и нажмите на кнопку “Add Bot”.

Последним шагом здесь будет копирование token по кнопке “Copy”. Держите в секрете ваш token и сохраните его куда-нибудь — он понадобится позже.

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подготовка сервера
В качестве площадки для размещения бота я использую VDS под управлением операционной системы Ubuntu 18.04. Вы можете разместить бота и на других дистрибутивах, убедившись в том, что в них установлены нужные пакеты.
Команды для установки в Ubuntu 18.04:
sudo apt update sudo apt install docker npm
Если вы используете другой дистрибутив, то установка необходимых пакетов может отличаться. Вы можете найти инструкцию для конкретного дистрибутива в документации или в поисковике.
Читайте также
![]()
![]()
Создание основных файлов
Как я указал в начале статьи, мы будем использовать NodeJS для запуска бота. Дополнительно нам потребуются две библиотеки:
- discord.js (основная библиотека для работы бота);
- dotenv (будет использоваться для конфигурационного файла).
Создадим рабочую директорию проекта и файл package.json. В моем случае рабочая директория располагается в директории /home, но вы можете выбрать любую другую на свое усмотрение.
mkdir /home/my-discord-bot cd /home/my-discord-bot touch package.json
Примерный вид файла:
< "name": "my-discord-bot", "version": "1.0.0", "description": "My discord bot", "author": "Me ", "main": "app.js", "keywords": [ "nodejs" ], "dependencies": < "discord.js": "^12.1.1", "dotenv": "^8.2.0" >>
В нем мы указали имя будущего пакета (name), версию (version), описание (description), автора (author), основной файл (app.js) и список зависимостей (dependencies).
Запустим npm install и убедимся, что создался файл package-lock.json, который потом также будет скопирован в контейнер.
Теперь создадим файл самого бота app.js и запишем в него следующий код:
// Загрузка библиотек и конфигурационного файла require('dotenv').config(); const Discord = require('discord.js'); const bot = new Discord.Client(); const token = process.env.token; const prefix = process.env.prefix; bot.login(token); // Запуск бота bot.on('ready', () => < console.info(`Logged in as $!`); console.info(`Current prefix: $`); >); // Команда для приветственного сообщения bot.on('message', message => < if (message.content === `$hello`) < console.log(message.content, message.author); message.channel.send('hello!'); >>); // Команда для вывода количества участников сервера bot.on('message', message => < if (message.content === `$server`) < console.log(message.content, message.author); message.channel.send(`Сообщество: $\nУчастников: $`); > >);
Учитывая, что здесь используется конфигурационный файл, создадим в рабочей директории .env и запишем в него:
token=tokenbot prefix="!"
Вместо “tokenbot” подставляется token бота, который был сохранен в начале статьи, а в качестве prefix указывается символ, после которого будут вводиться команды. Я выбрал в качестве префикса “!”, но вы можете выбрать другой удобный символ, если только он не используется самим Discord, как например “@” или “/”.
Создание Docker-контейнера
Теперь в рабочей директории нам нужно создать Dockerfile, который будет содержать инструкции для сборки образа, на основе которого будет запущен контейнер. В него мы запишем:
FROM node:14 WORKDIR /home/my-discord-bot COPY package*.json ./ RUN npm install COPY . . EXPOSE 8080 CMD ["node", "app.js"]
Создадим файл .dockerignore и запишем туда несколько локальных файлов, которые будут игнорироваться:
node_modules npm-debug.log
Соберем образ и запустим на его основе контейнер:
docker build -t authorname/my-discrod-bot docker run -p 42150:8080 -d authorname/my-discrod-bot
Вместо “authorname” можно ввести имя пользователя, от которого создается бот, и через “/” указать имя бота.
Проверим, что контейнер запустился, специальной командой:
docker ps 9fbaf1176c7a authorname/my-discrod-bot "docker-entrypoint.s…" 6 seconds ago Up 4 seconds 0.0.0.0:42150->8080/tcp pensive_carson
Добавление бота на сервер
Бот запущен и работает в контейнере. Осталось только пригласить его на сервер и проверить его работу.
Для приглашения необходимо:
- Вернуться обратно по ссылке.
- Выбрать созданное приложение.
- Перейти во вкладку “OAuth2”.
- В списке “Scopes” выбрать “bot”.
- Скопировать ссылку и перейти по ней в браузере.
- Выбрать сервер, на который будет добавлен бот.

Теперь мы можем проверить работу двух команд, созданных ранее:

Заключение
В этой ознакомительной статье мы зарегистрировали новое приложение, создали бота, написали несколько простых команд, запустили контейнер и пригласили бота на сервер.
Далее бота можно развивать, наполняя его другими более сложными и полезными функциями. Для этого вам пригодятся знания JavaScript и следующие ссылки:
- документация библиотеки discordjs;
- справочная информация по JavaScript;
- ознакомительный курс по Docker.
Надеюсь, этот материал будет полезен для всех, кто давно хочет создать собственного бота в Discord, но не знает, с чего начать.
Вопросы и пожелания можно оставлять в комментариях. Спасибо за внимание!
Гайд Как создавать Discord бота
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.
riverya4life
Известный
Автор темы
Доброго времени форумчане БластХак!
Сегодня я расскажу и покажу, как создать своего первого бота в Discord!
Данный гайд посвящается всем, кто знает базу Python (кто не знает — иди учи питон)
Первый этап — Создание приложения.
Для начала вы должны создать приложение бота, для этого выполните все действия по порядку:
- Перейдите на страницу https://discord.com/developers/applications
- Нажмите на New Application.

- Введите название приложения, прочитайте Developer Terms of Service (https://discord.com/developers/docs/policies-and-agreements/developer-terms-of-service) и Developer Policy (https://discord.com/developers/docs/policies-and-agreements/developer-policy) и также, я советую вам ознакомиться с https://discord.com/tos, после всего этого нажмите на кнопку Create.

Примечание: Вы можете изменить название приложения, описание, теги, также вы можете получить айди бота и его Public Key. Ниже вы можете увидеть ещё 4 галочки, но там вы и сами все поймете.

- Перейдите во вкладку Bot.

- Нажмите Add Bot и подтвердите это действие.

! Если у вас включена двухфакторная аутентификация, вы должны ввести 6-значный код. Поздравляю! Ваше приложение создано абсолютно успешно.

Второй этап — Запуск нашего бота.
Для того чтобы получить токен бота, нажмите на кнопку View Token.
Далее, напишем первый код!
Для удобства буду использовать библиотеку disnake (discord.py fork), но перед написанием кода мы должны создать файл с расширением .py!
Если создали файл — поздравляю, можем приступать к написанию кода!
# Импорт библиотеки disnake. import disnake from disnake.ext import commands bot = commands.Bot(command_prefix="!") # Создание экземляра класса commands.Bot, в документации вы можете найти какие аргументы принимает этот класс. # С помощью command_prefix задаём префикс нашему боту, к примеру здесь будет префикс ! # Когда бот запущен, то будет вызван ивент. @bot.event async def on_ready(): print("Ваш бот готов!") # Запуск дискорд бота, как найти токен написано в гайде. bot.run("YOUR_DISCORD_BOT_TOKEN")
Дальше запускаем нашего бота. Можно запускать как через cmd, так и через созданный bat файл.
Готово!
Так-же приведу пример команды !ping, которая будет нам отвечать «Понг!»
Здесь мы используем уже декоратор @bot.command()
@bot.command() принимает в себя аргументы, а именно — name (имя команды, можно сделать команду на русском языке), description (описание команды, больше подходит для команд косой черты) и usage (пример использования команды).
@bot.command(name = "ping", description = "Тест команда", usage = "ping") # в name задаём навзание команды async def ping(ctx): # передаём аргумент ctx (контекст) await ctx.reply("Понг!") # отвечаем пользователю вызвавшему команду.
Теперь по команде !ping бот будет отвечать вам Понг!
UPD 30.04. Сейчас покажу как создавать слеш команды (команды косой черты)!
Для этого нам нужно использовать декоратор @bot.slash_command()
Он принимает все те же аргументы, что и текстовые команды.
Пример команды !ping, но уже на слешах:
@bot.slash_command(name = "ping", description = "Тест команда", usage = "ping") async def ping(inter): # теперь мы передаём в аргументе не ctx, а inter | interaction (интеракция) await inter.response.send_message("Понг!") # отправляем сообщение
Небольшое пояснение про Interaction (кратко inter)
Что вообще такое ваш Interaction и с чем его едят?
Interaction в переводе с английского означает взаимодействие.
Это, по сути, вебхуки под капотом (и для ответа на взаимодействие не требуется токен бота). Таким образом, у вас может быть приложение, предназначенное только для взаимодействия, к которому могут получить доступ пользователи, не имея пользователя-бота в гильдии.
Бот должен быть добавлен с разрешением applications.commands, чтобы создавать слэш команды на сервере. Это рекомендуется к добавлению этого разрешение к приглашениям вашего бота.
Итоговый код нашего бота:
# Импорт библиотеки disnake. import disnake from disnake.ext import commands bot = commands.Bot(command_prefix="!") # Создание экземляра класса commands.Bot, в документации вы можете найти какие аргументы принимает этот класс. # С помощью command_prefix задаём префикс нашему боту, к примеру здесь будет префикс ! # Когда бот запущен, то будет вызван ивент. @bot.event async def on_ready(): print("Ваш бот готов!") # Наша первая команда @bot.command(name = "ping", description = "Тест команда", usage = "ping") # в name задаём навзание команды async def ping(ctx): # передаём аргумент ctx (контекст) await ctx.reply("Понг!") # отвечаем пользователю вызвавшему команду. # Наша слеш команда @bot.slash_command(name = "ping", description = "Тест команда", usage = "ping") async def ping(inter): # теперь мы передаём в аргументе не ctx, а inter | interaction (интеракция) await inter.response.send_message("Понг!") # отправляем сообщение # Запуск дискорд бота, как найти токен написано в гайде. bot.run("YOUR_DISCORD_BOT_TOKEN")