Создание discord-ботов на Python
В этой статье мы создаем своего дискорд-бота на боксе с нуля.
Подготовка
Предварительные действия на боксе такие же, как и в нашей статье про Telegram:
- выбираем бокс
- создаем пользователя
- настраиваем окружение
Регистрация бота
Создание бота происходит в два этапа на сайте мессенджера. Сначала создаем приложение: «Разработчикам»(в футере) → «Applications», нажимаем кнопку «New Application» в правой верхней части страницы:
Выбираем имя приложения (выбирайте мудро, хоть его и можно изменить позже):

Готово. Здесь можно переименовать приложение, дать описание, загрузить аватарку:

Теперь добавим к нему бота. В меню слева вкладка «Bot» → «Add Bot» → «Yes, do it!».
Токен бота можно получить по кнопке Copy:

Если вдруг токен попал не только в ваши руки, его всегда можно заменить кнопкой Regenerate.
Добавление бота на сервер
Переходим на вкладку «OAuth2» и создаем для него свой URL для приглашения:

Чуть ниже выбираем права для бота. Если это бот для администрирования сервера, то можно, конечно, выбрать «Administrator», но нужно быть осторожными с этим.
Выдаем права, действительно нужные боту для администрирования сервера:

Теперь бота можно добавить на сервер. Копируем ссылку и открываем её в браузере. В диалоговом окне выбираем сервер:

Проверяем его привилегии:

Всё, бот на сервере:

Код бота
Активируем виртуальное окружение и ставим нужную библиотеку:
bot@box-48639:~$ source python/bin/activate (python) bot@box-48639:~$ pip install discord
Добавляем директорию для бота, не выходя виртуального окружения:
(python) bot@box-48639:~$ mkdir discobot
Создаем конфиг бота:
(python) bot@box-48639:~$ vim discobot/config.py
Наполняем его содержимым
settings =
- token — токен бота
- bot — имя бота
- id — application ID: он находится под описанием приложения, в разделе «General Information»
- prefix — если сообщение на сервере начинается с этого символа, бот воспримет его как свою команду.
Дальше код бота. Создаем bot.py и сразу редактируем его vim’ом:
(python) bot@box-48639:~$ vim discobot/bot.py
Первыми строками активируем виртуальное окружение и импортируем нужные модули:
import os, sys activate_this = '/home/bot/python/bin/activate_this.py' with open(activate_this) as f: exec(f.read(), ) import discord from discord.ext import commands from config import settings
Обозначаем боту, с какого символа начинаются его команды:
bot = commands.Bot(command_prefix = settings['prefix'])
И создаем первую команду — бот будет отправлять реплай с текстом “I’M ALIVE!” на сообщение “!status”:
@bot.command() async def status(ctx): await ctx.reply('I\’M ALIVE!')
Добавляем в код функцию запуска:
bot.run(settings['token'])
Закрываем редактор и запускаем бота:
(python) bot@box-48639:~$ python discobot/bot.py
Отправим сообщение в Discord:

Код бота целиком:
import os, sys activate_this = '/home/bot/python/bin/activate_this.py' with open(activate_this) as f: exec(f.read(), ) import discord from discord.ext import commands from config import settings bot = commands.Bot(command_prefix = settings['prefix']) @bot.command() async def status(ctx): author = ctx.message.author await ctx.reply('I\'M ALIVE!') bot.run(settings['token'])
Запуск бота
Создаем Linux-демона — он будет следить, что бот работает. Открываем файл (mlg, если нужно, меняем на своё имя сервиса):
root@box-48639:~# vim /etc/systemd/system/mlg.service
Добавляем в него строки:
[Unit] Description=Noscope Bot After=syslog.target After=network.target [Service] Type=simple User=bot WorkingDirectory=/home/bot/discobot ExecStart=/usr/bin/python3 /home/bot/discobot/bot.py Restart=always [Install] WantedBy=multi-user.target
И запускаем демона:
root@box-48639:~# systemctl daemon-reload root@box-48639:~# systemctl enable mlg root@box-48639:~# systemctl start mlg
Проверить, что всё работает, можно так:
root@box-48639:~# systemctl status mlg
● mlg.service - Noscope Bot Loaded: loaded (/etc/systemd/system/mlg.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-05-05 16:34:46 MSK; 7s ago Main PID: 307021 (python3) Tasks: 3 (limit: 2344) Memory: 21.4M CGroup: /system.slice/mlg.service └─307021 /usr/bin/python3 /home/bot/discobot/bot.py
Дополнение кода бота
Бот улучшается в два этапа:
- добавляем код в файл бота
- перезапускаем бота
Для примера добавим в бота какое-нибудь рандомное API. Открываем файл бота:
bot@box-48639:~$ vim ~/discobot/bot.py
И добавляем в него пару библиотек и ещё одну функцию обработки команд:
import json import requests @bot.command() async def meme(ctx): response = requests.get('https://some-random-api.ml/meme') json_data = response.json() embed = discord.Embed(title = json_data['caption']) embed.set_image(url = json_data ['image']) await ctx.send(embed = embed)
Закрываем файл и перезапускаем демона, чтобы изменения вступили в силу:
root@box-48639:~# systemctl restart mlg
Результатом будет рандомный мем:

Готово! Боты в Discord умеют многое, и мы можем и дальше расширять его возможности, изучая документацию.
Полезные ссылки
- Официальная документация Discord
- Документация discord.py
- GitHub разработчиков модуля
Создание вашего приложение
Шаги, упомянутые далее в этой статье, по сути, яляются копией шагов упомянутых в документации. Таким образом, вы можете выполнить эти действия из любого ресурса.
Если вы уже создали своё приложение для бота, вы можете пропустить эту статью и перейти к начальным файлам .
Создание аккаунта бота
Чтобы работать с библиотекой и 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 – бота на .NET Core с деплоем на VPS-сервер

Сегодня вы ознакомитесь со статьей, в которой будет рассказано, как создать бота, используя C# на .NET Core, и о том, как его завести на удаленном сервере.
Статья будет состоять из предыстории, подготовительного этапа, написания логики и переноса бота на удаленный сервер.
Надеюсь, данная статья поможет многим начинающим.
Предыстория
Все началось в одну бессонную осеннюю ночь, которую я проводил на Discord – сервере. Так как я относительно недавно к нему присоединился, я стал его изучать вдоль и поперёк. Обнаружив текстовый канал «Вакансии», я заинтересовался, открыл его, и отыскал среди не интересующих меня предложений, это:
«Программист (разработчик бота)
Требования:
- знание языков программирования;
- способность к самообучению.
- умение разбираться в чужом коде;
- знание функционала DISCORD.
- разработка бота;
- поддержка и сопровождение работы бота.
Ваша выгода:
- Возможность поддержать и повлиять на приглянувшийся проект;
- Приобретение опыта работы в команде;
- Возможность продемонстрировать и улучшить имеющиеся навыки.»
Это мгновенно меня заинтересовало. Да, за данную работу не платили, но от тебя никаких обязательств не требовали, да и в портфолио лишним не будет. Поэтому я написал админу сервера, и он попросил написать бота, который будет показывать статистику игрока в World of Tanks.
Подготовительный этап

Discrod
Прежде, чем приступить к написанию нашего бота, его необходимо создать для Discord. Вам необходимо:
- Войти в Discord аккаунт по ссылке
- Во вкладе “Applications” нажать на кнопку “New Application” и назвать бота
- Получить токен бота, войдя в вашего бота и найдя в списке “Settings” вкладку “Bot”
- Сохранить где-нибудь токен
Также, необходимо создать приложение в Wargaming, чтобы получить доступ к API Wargaming. Тут тоже все просто:
- Заходим в аккаунт Wargaming по данной ссылке
- Заходим в «Мои приложения» и нажимаем на кнопку «Добавить новое приложение», дав имя приложения и выбрав его тип
- Сохраняем ID приложения
Тут уже имеется свобода выбора. Кто-то использует Visual Studio, кто-то Rider, кто-то вообще мощный, и пишет код в Vim (все же настоящие программисты используют только клавиатуру, верно?). Однако, чтобы не реализовывать Discord API, можно использовать неофициальную библиотеку для C# “DSharpPlus”. Его можно установить либо из NuGet, либо самому собрав исходники с репозитория.
Для тех, кто не знает, или забыл, как устанавливать приложения из NuGet.Инструкция для Visual Studio
- Переходим во вкладку Проект – Управление пакетами NuGet;
- Нажимаем на обзор и в поле поиска вводим “DSharpPlus”;
- Выбираем и устанавливаем framework;
- PROFIT!
Подготовительный этап окончен, можно переходить к написанию бота.
Написание логики

Всю логику приложения рассматривать не будем, я лишь покажу, как работать с перехватом сообщений ботом, и как работать с Wargaming API.
Работа с Discord бот происходит через функцию static async Task MainTask(string[] args);
Чтобы вызвать данную функцию, в Main необходимо прописать
MainTask(args).ConfigureAwait(false).GetAwaiter().GetResult();
Далее, вам необходимо инициализировать своего бота:
discord = new DiscordClient(new DiscordConfiguration < Token = token, TokenType = TokenType.Bot, UseInternalLogHandler = true, LogLevel = LogLevel.Debug >);
Где token – токен вашего бота.
Потом, через лямбду, прописываем необходимые команды, которые должен выполнять бот:
discord.MessageCreated += async e => < string message = e.Message.Content; if (message.StartsWith("&")) < await e.Message.RespondAsync(“Hello, ” + e.Author.Username); >>;
Где e.Author.Username – получение никнейма пользователя.
Таким образом, когда вы отправите любое сообщение, которое начинается с &, бот будет приветствовать вас.
В конце данной функции, необходимо прописать await discord.ConnectAsync(); и await Task.Delay(-1);
Это позволит выполнять команды на фоне, не занимая основной поток.
Теперь необходимо разобраться с Wargaming API. Тут все просто – пишете CURL-запросы, получаете ответ в виде JSON – строки, вытягиваете оттуда необходимые данные и делаете над ними манипуляции.
Пример работы с WargamingAPI
public Player FindPlayer(string searchNickname) < //https://api.worldoftanks.ru/wot/account/list/?application_id=y0ur_a@@_id_h3r3search=nickname urlRequest = resourceMan.GetString("url_find_player") + appID + "&search=" + searchNickname; Player player = null; string resultResponse = GetResponse(urlRequest); dynamic parsed = JsonConvert.DeserializeObject(resultResponse); string status = parsed.status; if (status == "ok") < int count = parsed.meta.count; if (count >0) < player = new Player < Nickname = parsed.data[0].nickname, >; > else < throw new PlayerNotFound("Игрок не найден"); >> else < string error = parsed.error.message; if (error == "NOT_ENOUGH_SEARCH_LENGTH") < throw new PlayerNotFound("Минимум три символа требуется"); >else if (error == "INVALID_SEARCH") < throw new PlayerNotFound("Неверный поиск"); >else if (error == "SEARCH_NOT_SPECIFIED") < throw new PlayerNotFound("Пустой никнейм"); >else < throw new Exception("Something went wrong."); >> return player; >
Внимание! Все токены и ID приложений хранить в открытом виде строго не рекомендуется! Как минимум – Discord банит такие токены, когда они попадают во всемирную сеть, как максимум – бот начинает пользоваться злоумышленниками.
Деплой на VPS – сервер

После того, как вы закончили с ботом, его необходимо разместить на сервере, который постоянно работает 24/7. Это связанно с тем, что когда работает ваше приложение, то работает и бот. Как только вы выключаете приложение, засыпает и ваш бот.
Много VPS серверов существует на этом свете, как на Windows, так и на Linux, однако в большинстве случаев, на Linux в разы дешевле размещать.
На Discord – сервере мне посоветовали vscale.io, и я тут же создал на нем виртуальный сервер на Ubuntu и залил бота. Я не буду описывать, как работает данный сайт, а сразу перейду к настройки бота.
Первым делом, вам необходимо установить необходимый софт, который будет запускать нашего бота, написанного на .NET Core. Как это сделать, описано здесь .
Далее, вам необходимо залить бота на Git – сервис, вроде GitHub и ему подобные и склонировать на VPS — сервер, или, другими путями скачать вашего бота. Учтите, что у вас будет только консоль, GUI не будет. Совсем.
После того, как вы скачали вашего бота, вам необходимо его запустить. Для этого, вам необходимо:
- Восстановить все зависимости: dotnet restore
- Построить приложение: dotnet build name_project.sln -c Release
- Перейти к построенной DLL;
- dotnet name_of_file.dll
Поздравляю! Ваш бот запущен. Однако, бот, к несчастью, занимает консоль, и выйти из VPS – сервера так просто не выйдет. Также, в случае перезагрузки сервера, придется по новому запускать бота. Тут есть пару выходов из ситуации. Все они связаны с запуском при старте сервера:
- Добавить запуск скрипта в /etc/init.d
- Создать сервис, который будет запускаться при старте.
Подробно останавливаться на них не вижу смысла, достаточно подробно все описано в интернете.
Выводы
Я рад, что я взялся за это задание. Это был мой первый опыт разработки бота, и рад, что получил новые знания по C#, и работе с Linux.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Как написать бота на Python в дискорде: подробный гайд
Важное преимущество платформы Discord — возможность добавлять готовых ботов или создавать своих виртуальных помощников для решения самых разных задач: модерации чатов, настройки уведомлений, создания голосований, включения музыки и др.
В этой статье расскажем, как написать бота для дискорда, каким образом этот инструмент облегчает рабочие и повседневные дела и где учиться, чтобы создавать ботов на профессиональном уровне.
Содержание статьи скрыть
Какие бывают боты в дискорде и зачем они нужны
Виртуальные помощники или боты помогают упрощать и автоматизировать рутинные процессы и решать однотипные задачи по определённому алгоритму. Бот может напомнить о важном событии, включить музыку или ответить на стандартные вопросы новых пользователей рабочих чатов. В этой статье подробно остановимся на том, как создать написать бота специально под мессенджер Discord.
Короткая справка: что такое Discord
Discord, или дискорд — это популярный мессенджер с множеством разных функций для комфортного общения. Дискордом с удовольствием пользуются почти все геймеры в мире.
Также платформа популярна среди компании самых разных сфер и направлений, ведь возможности дискорда позволяют эффективно выстраивать удалённую работу: проводить видеоконференции и голосовые созвоны, общаться в общих и личных чатах, закреплять важные сообщения, настраивать уведомления и др.
Среди преимуществ дискорда — высокая скорость, бесплатные сервера, функция шумоподавления, возможность форматирования текста и др.
В дискорде уже есть много готовых ботов, которые можно купить и запустить. Они наделены разными возможностями и выполняет конкретный перечень действий.
Вот какие основные виды готовых ботов для дискорда можно выделить:
- музыкальные боты — необходимы для проигрывания музыки, могут воспроизводить треки в определённой последовательности, регулировать громкость или делать паузы между треками;
- боты администраторы — помогают модерировать рабочие чаты, могут поприветствовать новичков, очистить спам или напомнить о дне рождении одного из участников команды;
- боты для сбора мнений — такой помощник поможет быстро опросить участников чата и собрать результаты в небольшой отчёт;
- ролевые боты — необходимы, чтобы распределять роли в команде и наделять конкретных людей определёнными полномочиями;
- боты переводчики — помогут перевести сообщения в чатах, если переписка ведётся на нескольких языках;
- боты для определения рейтинга — такие помощники отмечают тех пользователей, которые наиболее активны;
- многофункциональные боты — такие помощники могут выполнять сразу несколько разных задач, всё чаще пользователи обращаются именно к таким ботам, чтобы упростить работу в дискорде и не тратить время на несколько разных программ.
Боты в дискороде: опыт Checkroi
Команда Checkroi тоже использует дискорд для построения рабочих процессов и общения. Создатель нашего блога, интернет-маркетолог и предприниматель Иван Буявец рассказал о возможностях использования готового виртуального помощника, которого он выбрал для упрощения работы нашей команды.
Мы пользуемся ботом mee6 — в нём есть ряд функций, которые влияют на вовлечение всех участников в общение. Бот помогает считать активность людей в чатах, позволяет получать внутреннюю валюту за активности и напоминает о днях рождения. Люди, видя свой рейтинг, чаще включаются в общение.
Ещё одна из фишек бота — воспроизведение музыки. По пятницам мы устраиваем радиоэфиры: включаем музыку, делимся тем, что любим и общаемся. Отличное чувство, когда ты на целый час делишься своим сокровенным — музыкой — и всем это нравится!
Помимо этого, мы используем дополнительные надстройки, которые делал наш программист: уведомление о трафике и лидах, оповещение о публикации новых статей и уведомление о новом отклике. Это позволяет всем быть в курсе, что происходит, видеть динамику по статьям и осознавать себя частью большего! Конечно, есть ещё куча других идей по ботам — и я уверен, мы их скоро реализуем
Если возможностей готовых ботов вам не хватает, создайте своего виртуального помощника самостоятельно, воспользовавшись языком программирования Python. Как это сделать — расскажем далее.
Ежедневные советы от диджитал-наставника Checkroi прямо в твоем телеграме!
Подписывайся на канал
Подписаться
Как создать бота в дискорде: пошаговая инструкция
На первый взгляд, создать бота — сложная задача. Отчасти это так — для реализации сложных ботов на языке Python, конечно, необходимо понимание основ программирования. Но запустить своего простого бота, который сможет выполнять элементарные функции, под силу любому. И мы вам сегодня это докажем.
Даже если вы обычный пользователь дискорда и никогда не программировали на питоне, просто следуйте нашей инструкции и у вас появится собственный бот. При этом вам не нужно ничего дополнительно устанавливать на свой компьютер или куда-то переводить деньги, чтобы бот заработал.
Шаг 1. Создаём учётную запись
Для создания бота вам потребуется библиотека Python и API Discord. Чтобы свободно работать с этими инструментами, необходимо создать учётную запись Discord Bot. Для этого войдите в Discord и откройте страницу приложения.
В правом верхнему углу нажмите на кнопку «New Application»:
Придумайте имя приложению и нажмите кнопку «Create», чтобы создать новую учётную запись:
Шаг 2. Создаём бота
После того как запись создана, можете приступать к созданию бота. Для этого откройте вкладку «Bot» и нажмите кнопку «Add Bot», чтобы добавить нового бота. После этого откроется окно, которое запросит подтверждения действий, поэтому кликните на «Yes, do it!»:
Поздравляем, вы создали бота, теперь вам нужно скопировать его токен — это своеобразный пароль, которым никто не должен завладеть. Нажмите на кнопку «Rest Token»:
Скопируйте полученную информацию, нажав на кнопку «Copy». Сохраните токен, он вам потребуется чуть позже:
Шаг 3. Настраиваем бота
Далее вам нужно настроить вашего бота, для этого перейдите во вкладку «OAuth2». Выберите из выпадающего списка «URL Generator» и поставьте галочку рядом с «bot»:
Выберите те функции, который должен выполнять ваш бот и скопируйте полученную ссылку, нажав кнопку «Copy»:
Шаг 4. Добавляем бота на сервер
Чтобы добавить бота, вам нужно иметь разрешение на управление сервером. Сервера в дискорде — это своеобразные сообщества, которые позволяют общаться сразу нескольким пользователям друг с другом. Вступить на новый сервер можно либо создав его, либо приняв от кого-то приглашение.
Вставьте URL-адрес в браузерную строку и выберите сервер, на который нужно добавить бота:
Как написать код на Python для бота в дискорде
Теперь вы знаете, как создать бота в дискорде, но это лишь первый этап. Дальше нам нужно научиться этим ботом управлять и наделять его дополнительными функциями — в этом нам поможет программный код.
Для написания кода нам понадобится специальный инструмент, благодаря которому одна компьютерная программа может взаимодействовать с другой. На языке программирования это называется оболочка API — оболочки бывают разные, нам нужна discord.py.
Для начала откройте любой редактор кода. Мы будем использовать Repl.it, регистрация в нём занимает две минуты. После того как авторизуетесь, нажмите на кнопку «Create», выберите язык Python и кликнете на «Create Repl»:
Затем свяжите редактор кода с библиотекой discord.py, записав в вверху main.py простую строчку «import discord». После того как введёте в поле «import discord», нажмите кнопку «Run»
Теперь сделаем так, чтобы наш бот научился отвечать на сообщения: для этого скопируем стандартный код из документации discord.py и вставим его в mai.py. Или скопируйте его отсюда:
async def on_ready ():
print(‘ We have logged in as ‘.format(client))
async def on_message( message):
if message.author == client.user:
if message.content.startswith(‘ $hello’ ):
await message.channel.send(‘ Hello! ‘)
client.run(‘ your token here ‘)
В последней строчке замените фразу «your token here» на ваш токен, который вы скопировали, когда создавали бота и кликните по кнопке «Run»:
Если вы всё сделали верно, переписка с ботом будет выглядеть примерно так:
Теперь давайте разберёмся, из чего состоит наш код и какие команды мы задали боту.
async def on_ready():
print(‘We have logged in as ’.format(client))
Используем декоратор Client.event() для регистрации события.
Мы работаем с асинхронной библиотекой, поэтому все действия выполняем по принципу «обратного вызова». В программировании «обратный вызов» — это реакция на событие: что-то произошло, значит должна включиться определённая функция.
В нашем примере событие on_ready() происходит, когда бот завершает вход в систему и настройку, а событие on_message() случается, когда бот получил сообщение
async def on_message(message):
if message.author == client.user:
Используем декоратор Client.event() для уточнения события.
Триггер событий срабатываем каждый раз при получении сообщения on_message(). Но боту не нужно отвечать, если мы сами написали сообщение. Поэтому, если бот видит Message.author он понимает, что это сообщение от Client.user и совершает возврат действия
Если бот получил в сообщении «привет», он ответит той же фразой
Не забудьте заменить «your token here» на ваш токен
Мы привели лишь самый простой пример того, как написать бота для дискорда на Python. Прописывая в коде новые функции, вы сможете улучшать виртуального помощника. Если хотите ускорить работу по созданию и усовершенствованию ботов и начать делать это на профессиональном уровне, рекомендуем пройти один из онлайн-курсов.
Лучшие курсы для профессионального создания ботов на Python
Python — один из наиболее популярных на сегодняшний день языков программирования. Его ценят за широкие возможности и простую точку входа: написать базовый код на питоне сможет каждый. Изучить этот язык на более профессиональном уровне самостоятельно тоже возможно. Однако для этого потребуется время, дисциплина и усидчивость, к тому же вы должны быть готовы самостоятельно разбирать свои ошибки.
Ускорить процесс освоения питона позволят дистанционные программы обучения, где вы не только получите необходимые знания, но и отработаете их на онлайн-тренажёрах и практических заданиях под руководством опытных экспертов-программистов. В сети представлено большое количество онлайн-курсов по Python, мы расскажем про три лучших на наш взгляд.
Лучший курс по программированию на Python с гарантией трудоустройства
Курс от Skillbox для начинающих разработчиков. Вы поймёте, как устроены популярные фреймворки, библиотеки, базы данных и другие инструменты для разработки. Вы научитесь создавать программы разной сложности: от консольных скриптов до чат-ботов, упаковывать проекты, публиковать рабочую версию продукта на сервере и работать в команде.
Длительность. 12 месяцев
Какой получите результат. 3 проекта в портфолио, диплом об окончании курса, трудоустройства
Какие будут бонусы. Индивидуальные и групповые практические задания, бесплатный доступ к среде разработки IDE, бонусные курсы и рассрочка
Лучший курс для освоения профессии Python-разработчик
Курс от Яндекс.Практикум подойдёт даже тем, кто никогда не программировал. Вы научитесь писать чистый код, разрабатывать сайты, программы и веб-приложения и настраивать серверы для размещения проектов. Вы освоите самые популярные инструменты разработчика и узнаете, как создаются информационные продукты в командах.
Длительность. 9 месяцев
Какой получите результат. Дипломный проект, 6 проектов в портфолио и дипломы о профессиональной переподготовке на русском и английском языке
Какие будут бонусы. Отработка полученных знаний на онлайн-тренажёрах и много практических заданий. Также вам вернут деньги, если вы передумаете учиться, а в случае необходимости оформят академический отпуск
Лучший курс для знакомства с Python
Курс от Skypro поможет вам с нуля освоить популярный язык программирования. Вы поймёте, как устроен синтаксис Python и принципы объектно-ориентированного программирования. Вы узнаете, как пользоваться библиотеками Python и писать стабильный код. Вы научитесь разрабатывать архитектуру сервисов различной сложности и писать серверы для интернет-магазинов, приложений и игр.
Длительность. 10 месяцев
Какой получите результат. Диплом и помощь с трудоустройством
Какие будут бонусы. Много практических заданий в реальной среде разработки, онлайн-встречи с преподавателями и возврат денег, если передумаете учиться
Лучший курс для практикующих разработчиков
Для тех, кто уже знает основы программирования на Python, но хочет повысить свой уровень и создана учебная программа образовательной платформы Otus. Вы углубитесь в «промышленную» разработку на питоне, выполните большое количество практических задач и реализуете собственный проект на любую тему. Вы не только овладеете новыми инструментами программирования, но и сформируете прагматичный подход к решению задач.
Длительность. 5 месяцев
Какой получите результат. Сильное портфолио и сертификат об окончании курса
Какие будут бонусы. Домашние работы, дополнительные материалы для углублённого изучения, пожизненный доступ к записям всех вебинаров
Заключение
Популярность Python растёт: всё больше тех, кто хочет освоить этот язык программирования. Но не все знают, где практиковаться. Один из простых способов понять, насколько вам интересно программировать на питоне и «пощупать» этот язык — создать бота в дискорде. У этой платформы масса возможностей, поэтому разработчикам ботов есть где развернуться.
Умение создавать таких виртуальных помощников, упростит использование популярной платформы и автоматизирует рутинные задачи, к тому же это прямой путь в престижную профессию.
Если вы всерьёз заинтересовались разработкой на питоне, но пока не выбрали оптимальный вариант обучения, рекомендуем ознакомиться с ещё одной нашей статьёй. В материале «Как грамотно выстроить обучение Python» рассказываем про курсы, видеоуроки и профессиональные сообщества
