Создание 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 бота с помощью Python
Из этого туториала Вы узнаете, как полностью создать собственного бота Discord в облаке.
Вам не нужно ничего устанавливать на свой компьютер, и вам не нужно ничего платить за размещение своего бота.
Мы будем использовать целый ряд инструментов, в том числе Discord API, библиотеки Python, и платформы облачных вычислений под названием Repl.it.
Как создать учетную запись Discord Bot
Чтобы работать с библиотекой Python и API Discord, мы должны сначала создать учетную запись Discord Bot.
Вот шаг к созданию учетной записи Discord Bot.
1. Убедитесь, что вы вошли на сайт Discord.
3. Щелкните кнопку «Новое приложение».
4. Дайте приложению имя и нажмите «Создать».
5. Перейдите на вкладку «Бот» и нажмите «Добавить бота». Вам нужно будет подтвердить действие, нажав «Yes, do it!»
Оставьте настройки по умолчанию для Public Bot и Require OAuth2 Code Grant.
Ваш бот создан. Следующим шагом будет копирование токена.
Этот токен является паролем вашего бота, поэтому не сообщайте его никому. Это может позволить кому-то войти в ваш бот и делать разные плохие вещи.
Вы можете регенерировать токен, если он случайно станет доступен.
Как пригласить вашего бота присоединиться к серверу
Теперь вам нужно подключить своего пользователя-бота к серверу. Для этого вы должны создать для него URL-адрес приглашения.
Перейдите на вкладку «OAuth2». Затем выберите «бот» в разделе «scopes».
Теперь выберите нужные разрешения для бота. Наш бот будет в основном использовать текстовые сообщения, поэтому нам не нужно много разрешений. Вам может потребоваться больше, в зависимости от того, что вы хотите, чтобы ваш бот делал. Будьте осторожны с разрешением «Администратор».
После выбора соответствующих разрешений нажмите кнопку «Copy» над разрешениями. Это скопирует URL-адрес, который можно использовать для добавления бота на сервер.
Вставьте URL-адрес в свой браузер, выберите сервер, на который будет приглашен бот, и нажмите «Авторизовать».
Чтобы добавить бота, вашей учетной записи необходимы разрешения «Управление сервером».
Теперь, когда вы создали пользователя-бота, мы начнем писать код Python для бота.
Как написать код для базового бота Discord с помощью библиотеки discord.py
Мы будем использовать библиотеку Python discord.py, чтобы написать код для бота. discord.py — это оболочка API для Discord, которая упрощает создание бота Discord на Python.
Как создать реплику и установить disocrd.py
Вы можете разработать бота на своем локальном компьютере с помощью любого редактора кода. Однако в этом уроке мы будем использовать Repl.it, потому что это упростит всем пользователям следовать его указаниям. Repl.it — это онлайн-среда IDE, которую вы можете использовать в своем веб-браузере.
Создайте новый Repl и выберите «Python» в качестве языка.
Чтобы использовать библиотеку discord.py, просто напишите import discord вверху main.py . Repl.it автоматически установит эту зависимость, когда вы нажмете кнопку «Run».
Если вы предпочитаете кодировать бота локально, вы можете использовать эту команду в MacOS для установки discord.py:
python3 -m pip install -U discord.py
Возможно, вам придется использовать pip3 вместо pip .
Если вы используете Windows, вы должны вместо этого использовать следующую строку:
py -3 -m pip install -U discord.py
Как настроить события Discord для вашего бота
discord.py вращается вокруг концепции событий. Событие — это то, что вы слушаете, а затем реагируете. Например, когда происходит сообщение, вы получаете событие об этом, на которое можете ответить.
Сделаем бота, который отвечает на конкретное сообщение. Этот простой код бота вместе с объяснением кода взят из документации discord.py. Позже мы добавим в бота дополнительные функции.
Добавьте этот код в main.py. (Вы можете назвать файл как-нибудь иначе, только не discord.py.) Я вскоре объясню, что делает весь этот код.
import discord import os client = discord.Client() @client.event async def on_ready(): print('We have logged in as '.format(client)) @client.event async def on_message(message): if message.author == client.user: return if message.content.startswith('$hello'): await message.channel.send('Hello!') client.run(os.getenv('TOKEN'))
Когда вы создали своего пользователя-бота в Discord, вы скопировали токен. Теперь мы собираемся создать файл .env для хранения токена. Если вы запускаете свой код локально, вам не нужен файл .env . Просто замените os.getenv(‘TOKEN’) токеном.
.env файлы используются для объявления переменных среды. На Repl.it большинство создаваемых вами файлов видны всем, но .env файлы видны только вам. Другие люди, просматривающие публичный ответ, не смогут увидеть содержимое файла .env .
Поэтому, если вы разрабатываете на Repl.it, включайте в файл .env только личную информацию, такую как токены или ключи.
Нажмите кнопку «Добавить файл» и создайте файл с именем .env .
Внутри файла добавьте следующую строку, включая ваш фактический токен, который вы скопировали ранее:
TOKEN=[paste token here]
Теперь давайте рассмотрим, что делает каждая строка в коде вашего бота Discord.
- Первая строка импортирует библиотеку discord.py.
- Вторая строка импортирует библиотеку os, но она используется только для получения переменной TOKEN из файла .env . Если вы не используете .env файл, эта строка вам не нужна.
- Затем мы создаем экземпляр Client . Это связь с Discord.
- Декоратор @client.event() используется для регистрации события. Это асинхронная библиотека, поэтому все делается с помощью обратных вызовов. Обратный вызов — это функция, которая вызывается, когда происходит что-то еще. В этом коде событие on_ready() вызывается, когда бот готов к использованию. Затем, когда бот получает сообщение, вызывается событие on_message() .
- Триггер событий каждый раз вызывает on_message() , когда принимается сообщение, но мы не хотим, что-то делать, если сообщение от самих себя. Поэтому, если Message.author это то же самое, что и Client.user , просто делаем return.
- Затем мы проверяем Message.content , начинается ли с ‘$hello’ . Если да, то бот отвечает ‘Hello!’ в канал, в котором он использовался.
- Теперь, когда бот настроен, последняя строка запускает бот с токеном входа. Он получает токен из файла .env .
У нас есть код для бота, поэтому теперь нам просто нужно его запустить.
Как запустить бота
Теперь нажмите кнопку запуска вверху, чтобы запустить своего бота в repl.it.
Если вы пишете бота локально, вы можете использовать эти команды в терминале для запуска бота:
py -3 main.py
В других системах:
python3 main.py
Теперь перейдите в свою комнату в Discord и введите «$hello». Ваш бот должен ответить «Hello!».
Как улучшить бота
Теперь, когда у нас есть базовый бот, мы его улучшим. Не зря он называется «Encourage Bot».
Этот бот будет отвечать сообщением ‘Hello!’ всякий раз, когда кто-то отправляет сообщение, содержащее грустное или удручающее слово.
Любой желающий сможет добавить ободряющие сообщения для использования бота, а отправленные пользователем сообщения будут храниться в базе данных Repl.it.
Бот также вернет случайную вдохновляющую цитату из API, когда кто-то наберет в чате сообщение «$inspire».
Мы начнем с добавления функции «$inspire».
Как добавить в бота вдохновляющие цитаты
Мы будем получать вдохновляющие цитаты из API под названием zenquotes.io. Нам нужно импортировать еще пару модулей Python, добавить функцию get_quote() и обновить код нашего бота, чтобы вызвать функцию.
Вот обновленный код. После кода я объясню новые части.
import discord import os import requests import json client = discord.Client() def get_quote(): response = requests.get("https://zenquotes.io/api/random") json_data = json.loads(response.text) quote = json_data[0]['q'] + " -" + json_data[0]['a'] return(quote) @client.event async def on_ready(): print('We have logged in as '.format(client)) @client.event async def on_message(message): if message.author == client.user: return if message.content.startswith('$inspire'): quote = get_quote() await message.channel.send(quote) client.run(os.getenv('TOKEN'))
Теперь нам нужно импортировать модуль requests . Этот модуль позволяет нашему коду делать HTTP-запрос для получения данных из API. API возвращает JSON, и модуль json упрощает работу с возвращенными данными.
Функция get_quote() очень проста. Во-первых, она использует модуль запросов для запроса данных из URL-адреса API. API возвращает случайную вдохновляющую цитату. Эту функцию можно легко переписать для получения котировок из другого API, если текущий перестанет работать.
Затем внутри функции мы используем json.loads() для преобразования ответа API в JSON. Методом проб и ошибок я понял, как перевести цитату из JSON в нужный строковый формат. Цитата возвращается из функции в виде строки.
Последняя часть кода обновляется ближе к концу. Ранее он искал сообщение, которое начиналось с «$hello». Теперь он ищет «$inspire». Вместо того, чтобы возвращать «Hello!», Он получает цитату quote = get_quote() и возвращает цитату.
На этом этапе вы можете запустить свой код и попробовать его.
Как добавить в бота обнадеживающие сообщения
Теперь мы реализуем функцию, при которой бот отвечает обнадеживающими сообщениями, когда пользователь отправляет сообщение с грустным словом.
Как добавить грустные слова в бота
Для начала нам нужно создать список Python, содержащий грустные слова, на которые будет отвечать бот.
Добавьте следующую строку после создания переменной client :
sad_words = ["sad", "depressed", "unhappy", "angry", "miserable"]
Не стесняйтесь добавлять в список больше слов.
Как добавить в бота обнадеживающие сообщения
Теперь мы добавим список ободряющих сообщений, которыми бот ответит.
Добавьте следующий список после созданного вами списка sad_words :
starter_encouragements = [ "Cheer up!", "Hang in there.", "You are a great person / bot!" ]
Как и раньше, не стесняйтесь добавлять в список другие фразы по вашему выбору. Сейчас я использую всего три элемента, потому что позже мы добавим возможность пользователям добавлять больше ободряющих фраз для использования ботом.
Как отвечать на сообщения
Теперь нам нужно обновить нашего бота, чтобы он использовал два созданных нами списка. Во-первых, импортируйте модуль random , потому что бот будет случайным образом выбирать сообщения из списка. Добавьте следующую строку в операторы импорта в верхней части кода:
import random
Теперь мы обновим функцию on_message() , чтобы проверять все сообщения, чтобы увидеть, содержат ли они слово из списка sad_words . Если будет найдено грустное слово, бот отправит случайное сообщение из списка.
Вот обновленный код:
async def on_message(message): if message.author == client.user: return msg = message.content if msg.startswith('$inspire'): quote = get_quote() await message.channel.send(quote) if any(word in msg for word in sad_words): await message.channel.send(random.choice(starter_encouragements))
Это хорошее время для тестирования бота. Теперь вы знаете достаточно, чтобы создать собственного бота.
Discord бот на Python
В данной статье мы создадим Discord бот, используя при этом только Python.
Краткая информация о Discord для тех, кто еще о нем не знает
Discord — это, фактически, универсальная платформа голосового и текстового общения для геймеров.
Игроки, стримеры, студенты и разработчики используют Discord, чтобы обсуждать игры, отвечать на вопросы, общаться в чате во время игры в хорошем качестве, в том числе с членами своей команды. В нем даже есть игровой магазин с критическими отзывами и возможностью подписки. По сути, это центр игровых сообществ.
Хотя есть много вещей, которые вы можете создать с помощью API Discord, в этом руководстве мы остановимся на создании бота на Python.
Необходимые приготовления
Чтобы создать Discord бот, вам понадобится:
- Аккаунт в Discord и собственный сервер
- Python
- Устойчивое интернет-соединение во время всего процесса.
Что такое боты?
Бот (сокращение от «робот») — это программа, которая выполняет автоматические, повторяющиеся и заранее определенные задачи. Боты обычно имитируют человеческое поведение или подменяют его. Поскольку все их действия автоматизированы, они работают намного быстрее, чем обычные пользователи.
Боты очень часто используются для ответов на типовые вопросы, возникающие в различных сообществах. Они действуют как своего рода представители человека для выполнения различных функций. Основной особенностью такого бота является то, что он устраняет необходимость вручную отвечать каждому участнику и полностью автоматизирует данный процесс.
Для чего нужны чат-боты
Автоматизация ответов на основные вопросы
В любой области деятельности всегда есть вопросы, которые пользователи задают чаще всего. И на эти вопросы каждый раз надо давать одни и те же ответы. Лучшее решение в таком случае — чат-бот.
Ускорение рабочих процессов
Чат-боты, в отличии от людей, никогда не устают. Все люди могут работать только ограниченный период времени, в то время как у ботов таких ограничений нет. Использование чат-ботов в бизнесе хорошо дополняет работу людей, повышает производительность труда и сокращает человеческий труд.
Экономия денег и времени
При правильном использовании дружелюбного чат-бота привлечение клиентов происходит с минимальными затратами и максимальной эффективностью.
Пишем код для чат-бота
Сперва убедитесь, что на вашем компьютере установлен Python. Если его еще нет, то загрузите его с официального сайта.
Среду программирования можно использовать любую, какая вам больше нравится. Например, PyCharm, VS Code или Sublime.
Теперь выберите опцию New application (новое приложение) в правом верхнем углу страницы и дайте вашему новому приложению имя. Как видите, можно даже добавить изображение к аватару вашего бота. Мы можем сделать это позже. Сейчас пойдем в раздел Bot (на странице слева) и выберем опцию Add bot (добавить бота).
Сделав это, перейдите в категорию OAuth2 и в секции scope выберите опцию bot . Далее идите в секцию Permissions и настройте разрешения по вашему выбору.
Затем откройте ссылку под секцией scope в новом окне и выберите сервер, на котором вы желаете видеть ваш бот.
После этого установим библиотеку discord .
Для этого введем следующую команду:
pip install discord
Вот официальный сайт, где есть вся необходимая информация по данной библиотеке. Здесь же мы только заметим, что эта библиотека поддерживает API acync/await .
После установки этой библиотеки откройте ваш редактор кода и создайте файл bot.py .
Основная задача нашего тестового бота будет состоять в том, чтобы давать ответ всем пользователям на их сообщение «Hello». Но вы, конечно, можете его настроить в соответствии с вашими потребностями.
Для начала импортируем необходимые библиотеки:
import discord from discord.ext import commands
Создадим переменную Client :
client = commands.Bot( command_prefix=" / " )
Обратите внимание, что вы можете выбрать любой префикс (например « > «, « . » и тому подобное).
Также имейте ввиду, что если вы хотите вызывать своего бота, ваша вызывающая команда должна иметь префикс, сохраненный в атрибуте command_prefix .
Например, в нашем случае, чтобы вызвать бота, нужно написать /hello , а не просто hello .
Напишем следующий код для определения статуса бота:
@client.event async def on_ready( ): print("Bot is ready")
Это сообщение будет отображаться всякий раз, когда вы размещаете своего бота в сети. Вы также можете проверить статус бота из самого Discord.
Это сообщение подтверждает, что наш бот готов к использованию на сервере.
Теперь, когда бот готов к работе, мы можем ответить пользователям на их приветствие hello :
@client.event async def hello( ): await ctx.send("Hi")
Эта функция задает условие, при котором, когда пользователь набирает /hello , бот отвечает hi .
Для запуска бота нам понадобится токен. Он находится в разделе Bot на сайте Discord. Мы заходили туда при создании бота.
client.run(" Token ")
Замените слово Token на ваш код. Сам токен находится рядом с аватором бота. Если вдруг его там нет, нажмите на надпись Click to Reveal Token . Это должно сработать.
Теперь настало время запустить нашего бота!
Откройте CMD и наберите следующую команду:
bot.py
Если так не выходит, то наберите вот это:
python bot.py
Если вы правильно выполнили все предыдущие шаги, то должны увидеть сообщение Bot is ready .
Теперь перейдем на наш сервер и введем тестовый запрос, который в нашем случае был /hello . Мы увидим, что наш бот отвечает нам Hi .
Точно таким же образом пишем бот для приветствия новых участников:
import os import discord from dotenv import load_dotenv load_dotenv() TOKEN = os.getenv('DISCORD_TOKEN') client = discord.Client() @client.event async def on_ready(): print(f' has joined Discord!') @client.event async def on_member_join(member): await member.create_dm() await member.dm_channel.send( f'Hello !! Welcome to Our Discord Server!' ) client.run(TOKEN)
Возможные проблемы при создании бота
Все может быть не так просто, как это кажется на первый взгляд. Вы обязательно должны помнить о проблемах, с которыми можете столкнуться при создании бота. Некоторые из них мы перечислили ниже:
- Различные способы отправки текстовых сообщений. У всех людей есть свой стиль написания текстовых сообщений (короткие предложения, длинные предложения, несколько коротких предложений в разных сообщениях и так далее). Так что понять пользователя может быть непростой задачей.
- Пользовательские эмоции. Все мы люди, и всем нам свойственны эмоции. Наше поведение контролируется эмоциями. Мы чувствуем себя по-разному в разные моменты времени. И, кроме того, настроение постоянно меняется, и это отражается на сообщениях.
- Создание креативного и интерактивного пользовательского интерфейса (UI): Промежуток времени, за который можно привлечь внимание пользователя, очень невелик. Здесь в игру вступает диалоговый интерфейс. Его задача состоит в привлечении пользователей. То, как бот реагирует на сообщение пользователя, должно привлекать его внимание. Чем эффективнее мы это делаем, тем больше шансов, что бот снова будет востребован. Поэтому следует уделять особое внимание написанию ответов на запросы пользователей.
Заключение
Мы рассмотрели, как создать Discord бот на Python. Разумеется, это был простейший бот. Но вы, конечно же, можете написать свой собственный код и добавить множество различных функций, например OCR.
Спасибо за внимание и хорошего дня!
Как написать бота на 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» рассказываем про курсы, видеоуроки и профессиональные сообщества