Агрегатор онлайн-курсов Checkroi.ru Блог Python-разработка Как написать бота на Python в дискорде: подробный гайд

Как написать бота на Python в дискорде: подробный гайд

от Саша Берлизева
244 просмотров Время прочтения: 17 минут

Важное преимущество платформы Discord — возможность добавлять готовых ботов или создавать своих виртуальных помощников для решения самых разных задач: модерации чатов, настройки уведомлений, создания голосований, включения музыки и др.

В этой статье расскажем, как написать бота для дискорда, каким образом этот инструмент облегчает рабочие и повседневные дела и где учиться, чтобы создавать ботов на профессиональном уровне.

Какие бывают боты в дискорде и зачем они нужны

Виртуальные помощники или боты помогают упрощать и автоматизировать рутинные процессы и решать однотипные задачи по определённому алгоритму. Бот может напомнить о важном событии, включить музыку или ответить на стандартные вопросы новых пользователей рабочих чатов. В этой статье подробно остановимся на том, как создать написать бота специально под мессенджер Discord.

Короткая справка: что такое Discord

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

Также платформа популярна среди компании самых разных сфер и направлений, ведь возможности дискорда позволяют эффективно выстраивать удалённую работу: проводить видеоконференции и голосовые созвоны, общаться в общих и личных чатах, закреплять важные сообщения, настраивать уведомления и др.

Среди преимуществ дискорда — высокая скорость, бесплатные сервера, функция шумоподавления, возможность форматирования текста и др.

В дискорде уже есть много готовых ботов, которые можно купить и запустить. Они наделены разными возможностями и выполняет конкретный перечень действий.

Вот какие основные виды готовых ботов для дискорда можно выделить:

  • музыкальные боты — необходимы для проигрывания музыки, могут воспроизводить треки в определённой последовательности, регулировать громкость или делать паузы между треками;
  • боты администраторы — помогают модерировать рабочие чаты, могут поприветствовать новичков, очистить спам или напомнить о дне рождении одного из участников команды;
  • боты для сбора мнений — такой помощник поможет быстро опросить участников чата и собрать результаты в небольшой отчёт;
  • ролевые боты — необходимы, чтобы распределять роли в команде и наделять конкретных людей определёнными полномочиями;
  • боты переводчики — помогут перевести сообщения в чатах, если переписка ведётся на нескольких языках;
  • боты для определения рейтинга — такие помощники отмечают тех пользователей, которые наиболее активны;
  • многофункциональные боты — такие помощники могут выполнять сразу несколько разных задач, всё чаще пользователи обращаются именно к таким ботам, чтобы упростить работу в дискорде и не тратить время на несколько разных программ.

Боты в дискороде: опыт Checkroi

Команда Checkroi тоже использует дискорд для построения рабочих процессов и общения. Создатель нашего блога, интернет-маркетолог и предприниматель Иван Буявец рассказал о возможностях использования готового виртуального помощника, которого он выбрал для упрощения работы нашей команды.

Мы пользуемся ботом mee6 — в нём есть ряд функций, которые влияют на вовлечение всех участников в общение. Бот помогает считать активность людей в чатах, позволяет получать внутреннюю валюту за активности и напоминает о днях рождения. Люди, видя свой рейтинг, чаще включаются в общение.

Ещё одна из фишек бота — воспроизведение музыки. По пятницам мы устраиваем радиоэфиры: включаем музыку, делимся тем, что любим и общаемся. Отличное чувство, когда ты на целый час делишься своим сокровенным — музыкой — и всем это нравится!

Помимо этого, мы используем дополнительные надстройки, которые делал наш программист: уведомление о трафике и лидах, оповещение о публикации новых статей и уведомление о новом отклике. Это позволяет всем быть в курсе, что происходит, видеть динамику по статьям и осознавать себя частью большего! Конечно, есть ещё куча других идей по ботам — и я уверен, мы их скоро реализуем

Если возможностей готовых ботов вам не хватает, создайте своего виртуального помощника самостоятельно, воспользовавшись языком программирования Python. Как это сделать — расскажем далее.

Ежедневные советы от диджитал-наставника Checkroi прямо в твоем телеграме!
Подписывайся на канал
Подписаться

Как создать бота в дискорде: пошаговая инструкция

На первый взгляд, создать бота — сложная задача. Отчасти это так — для реализации сложных ботов на языке Python, конечно, необходимо понимание основ программирования. Но запустить своего простого бота, который сможет выполнять элементарные функции, под силу любому. И мы вам сегодня это докажем.

Даже если вы обычный пользователь дискорда и никогда не программировали на питоне, просто следуйте нашей инструкции и у вас появится собственный бот. При этом вам не нужно ничего дополнительно устанавливать на свой компьютер или куда-то переводить деньги, чтобы бот заработал.

Шаг 1. Создаём учётную запись

Для создания бота вам потребуется библиотека Python и API Discord. Чтобы свободно работать с этими инструментами, необходимо создать учётную запись Discord Bot. Для этого войдите в Discord и откройте страницу приложения.

В правом верхнему углу нажмите на кнопку «New Application»:

В правом верхнему углу нажмите на кнопку «New Application»Придумайте имя приложению и нажмите кнопку «Create», чтобы создать новую учётную запись:

Придумайте имя приложению и нажмите кнопку «Create», чтобы создать новую учётную записьШаг 2. Создаём бота

После того как запись создана, можете приступать к созданию бота. Для этого откройте вкладку «Bot» и нажмите кнопку «Add Bot», чтобы добавить нового бота. После этого откроется окно, которое запросит подтверждения действий, поэтому кликните на «Yes, do it!»: После этого откроется окно, которое запросит подтверждения действий, поэтому кликните на «Yes, do it!»

Поздравляем, вы создали бота, теперь вам нужно скопировать его токен — это своеобразный пароль, которым никто не должен завладеть. Нажмите на кнопку «Rest Token»:

Нажмите на кнопку «Rest Token»Скопируйте полученную информацию, нажав на кнопку «Copy». Сохраните токен, он вам потребуется чуть позже:

Скопируйте полученную информацию, нажав на кнопку «Copy»Шаг 3. Настраиваем бота

Далее вам нужно настроить вашего бота, для этого перейдите во вкладку «OAuth2». Выберите из выпадающего списка «URL Generator» и поставьте галочку рядом с «bot»:

Выберите из выпадающего списка «URL Generator» и поставьте галочку рядом с «bot»Выберите те функции, который должен выполнять ваш бот и скопируйте полученную ссылку, нажав кнопку «Copy»:

Выберите те функции, который должен выполнять ваш бот и скопируйте полученную ссылку, нажав кнопку «Copy»Шаг 4. Добавляем бота на сервер

Чтобы добавить бота, вам нужно иметь разрешение на управление сервером. Сервера в дискорде — это своеобразные сообщества, которые позволяют общаться сразу нескольким пользователям друг с другом. Вступить на новый сервер можно либо создав его, либо приняв от кого-то приглашение.

Вставьте URL-адрес в браузерную строку и выберите сервер, на который нужно добавить бота:

Вставьте URL-адрес в браузерную строку и выберите сервер, на который нужно добавить ботаКак написать код на Python для бота в дискорде

Теперь вы знаете, как создать бота в дискорде, но это лишь первый этап. Дальше нам нужно научиться этим ботом управлять и наделять его дополнительными функциями — в этом нам поможет программный код.

Для написания кода нам понадобится специальный инструмент, благодаря которому одна компьютерная программа может взаимодействовать с другой. На языке программирования это называется оболочка API — оболочки бывают разные, нам нужна discord.py.

Для начала откройте любой редактор кода. Мы будем использовать  Repl.it, регистрация в нём занимает две минуты. После того как авторизуетесь, нажмите на кнопку «Create», выберите язык Python и кликнете на «Create Repl»: После того как авторизуетесь, нажмите на кнопку «Create», выберите язык Python и кликнете на «Create Repl»

Затем свяжите редактор кода с библиотекой discord.py, записав в вверху main.py простую строчку «import discord». После того как введёте в поле «import discord», нажмите кнопку «Run»

После того как введёте в поле «import discord», нажмите кнопку «Run» 

Теперь сделаем так, чтобы наш бот научился отвечать на сообщения: для этого скопируем стандартный код из документации discord.py и вставим его в mai.py. Или скопируйте его отсюда:

import discord

client = discord.Client()

@client.event

async def on_ready():

print(‘We have logged in as {0.user}‘.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(‘your token here‘)

В последней строчке замените фразу «your token here» на ваш токен, который вы скопировали, когда создавали бота и кликните по кнопке «Run»:

В последней строчке замените фразу «your token here» на ваш токен, который вы скопировали, когда создавали бота и кликните по кнопке «Run»Если вы всё сделали верно, переписка с ботом будет выглядеть примерно так:

Если вы всё сделали верно, переписка с ботом будет выглядеть примерно такТеперь давайте разберёмся, из чего состоит наш код и какие команды мы задали боту.

Строка кода Значение
import discord Импорт библиотеки discord.py
client = discord.Client() Создание экземпляра клиента. Клиент — это наша связь с дискордом
@client.event

async def on_ready():

print(‘We have logged in as {0.user}’.format(client))

Используем декоратор Client.event() для регистрации события.

Мы работаем с асинхронной библиотекой, поэтому все действия выполняем по принципу «обратного вызова». В программировании «обратный вызов» — это реакция на событие: что-то произошло, значит должна включиться определённая функция.

В нашем примере событие on_ready() происходит, когда бот завершает вход в систему и настройку, а событие on_message() случается, когда бот получил сообщение

@client.event

async def on_message(message):

    if message.author == client.user:

        return

Используем декоратор Client.event() для уточнения события.

Триггер событий срабатываем каждый раз при получении сообщения on_message(). Но боту не нужно отвечать, если мы сами написали сообщение. Поэтому, если бот видит Message.author он понимает, что это сообщение от Client.user и совершает возврат действия

if message.content.startswith(‘$hello’):

        await message.channel.send(‘Hello!’)

Учим бота отвечать на сообщение. 

Если бот получил в сообщении «привет», он ответит той же фразой

client.run(‘your token here’) Запускаем нашего бота. 

Не забудьте заменить «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» рассказываем про курсы, видеоуроки и профессиональные сообщества

2 Коментария
1

Почитаем еще?

Оставьте комментарий

2 комментария

Автор: иии
иии 31.07.2022 - 16:59

Хм… Всё это просто замечательно, но где именно будет запускаться python-код бота в реальности? Как будет отличаться настройка бота при его запуске на локальном компьютере, подключенном к сети, от показанной в статье?

Ответить
Автор: Иван Буявец
Иван Буявец 01.08.2022 - 13:55

Спасибо за вопрос!
На самом деле код бота можно запускать и на локальном компьютере, но его нужно всегда держать включенным, чтобы он мог обрабатывать запросы и выдавать ответы.
Оптимальный вариант — завести VPS/VDS-сервер, который всегда в сети. При получении запроса, он его у себя обрабатывает и выдаёт результат.

Ответить

Мы иногда используем cookie-файлы, чтобы получше узнать вас и персонализировать контент :) Замечательно!