Создание Discord-бота на Python. Часть 1
Версия Python: 3.8.2
Версия discord.py: 1.3.3
Приветствую, хабровчане и другие пользователи интернета. Сегодня я начну цикл статей, посвящённых созданию Discord-бота с помощью библиотеки discord.py. Мы рассмотрим создание как и примитивного бота, как и «продвинутого» бота с модулями. В этой статье мы сделаем стандартную команду и ещё одну небольшую команду. Начнём!
Создание бота и получение токена
Для того, чтобы добавить бота на сервер нужно создать свое приложение и во вкладке General Information скопировать Client ID.
Здесь заменяем CLID на ранее скопированный Client ID.
Во вкладке Bot создаём бота и копируем токен.
Написание кода
Устанавливаем саму библиотеку.
Создаём файл config.py (так удобнее), и создаём там словарь.
Создаём main-файл, название может быть любое.
Импортируем библиотеки и наш файл конфига:
Создаём «тело» бота, название может быть любое:
Начинаем писать основной код.
В конце запускаем бота с помощью:
Должно получится так:
Бонусный туториал!
Сделаем вывод случайных картинок с лисами
Для этого импортируем еще пару библиотек:
Приступим к написанию команды.
Должно получится так:
Конец
На этом 1 часть закончена. Скоро будет опубликована 2 часть.
Как создать 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
Как создать реплику и установить disocrd.py
Создайте новый Repl и выберите «Python» в качестве языка.
Если вы предпочитаете кодировать бота локально, вы можете использовать эту команду в MacOS для установки discord.py:
Если вы используете Windows, вы должны вместо этого использовать следующую строку:
Как настроить события Discord для вашего бота
Сделаем бота, который отвечает на конкретное сообщение. Этот простой код бота вместе с объяснением кода взят из документации discord.py. Позже мы добавим в бота дополнительные функции.
Добавьте этот код в main.py. (Вы можете назвать файл как-нибудь иначе, только не discord.py.) Я вскоре объясню, что делает весь этот код.
Внутри файла добавьте следующую строку, включая ваш фактический токен, который вы скопировали ранее:
Теперь давайте рассмотрим, что делает каждая строка в коде вашего бота Discord.
У нас есть код для бота, поэтому теперь нам просто нужно его запустить.
Как запустить бота
Теперь нажмите кнопку запуска вверху, чтобы запустить своего бота в repl.it.
Если вы пишете бота локально, вы можете использовать эти команды в терминале для запуска бота:
Теперь перейдите в свою комнату в Discord и введите «$hello». Ваш бот должен ответить «Hello!».
Как улучшить бота
Теперь, когда у нас есть базовый бот, мы его улучшим. Не зря он называется «Encourage Bot».
Этот бот будет отвечать сообщением ‘Hello!’ всякий раз, когда кто-то отправляет сообщение, содержащее грустное или удручающее слово.
Любой желающий сможет добавить ободряющие сообщения для использования бота, а отправленные пользователем сообщения будут храниться в базе данных Repl.it.
Бот также вернет случайную вдохновляющую цитату из API, когда кто-то наберет в чате сообщение «$inspire».
Мы начнем с добавления функции «$inspire».
Как добавить в бота вдохновляющие цитаты
Мы будем получать вдохновляющие цитаты из API под названием zenquotes.io. Нам нужно импортировать еще пару модулей Python, добавить функцию get_quote() и обновить код нашего бота, чтобы вызвать функцию.
Вот обновленный код. После кода я объясню новые части.
Функция get_quote() очень проста. Во-первых, она использует модуль запросов для запроса данных из URL-адреса API. API возвращает случайную вдохновляющую цитату. Эту функцию можно легко переписать для получения котировок из другого API, если текущий перестанет работать.
Затем внутри функции мы используем json.loads() для преобразования ответа API в JSON. Методом проб и ошибок я понял, как перевести цитату из JSON в нужный строковый формат. Цитата возвращается из функции в виде строки.
Последняя часть кода обновляется ближе к концу. Ранее он искал сообщение, которое начиналось с «$hello». Теперь он ищет «$inspire». Вместо того, чтобы возвращать «Hello!», Он получает цитату quote = get_quote() и возвращает цитату.
На этом этапе вы можете запустить свой код и попробовать его.
Как добавить в бота обнадеживающие сообщения
Теперь мы реализуем функцию, при которой бот отвечает обнадеживающими сообщениями, когда пользователь отправляет сообщение с грустным словом.
Как добавить грустные слова в бота
Для начала нам нужно создать список Python, содержащий грустные слова, на которые будет отвечать бот.
Добавьте следующую строку после создания переменной client :
Не стесняйтесь добавлять в список больше слов.
Как добавить в бота обнадеживающие сообщения
Теперь мы добавим список ободряющих сообщений, которыми бот ответит.
Добавьте следующий список после созданного вами списка sad_words :
Как и раньше, не стесняйтесь добавлять в список другие фразы по вашему выбору. Сейчас я использую всего три элемента, потому что позже мы добавим возможность пользователям добавлять больше ободряющих фраз для использования ботом.
Как отвечать на сообщения
Вот обновленный код:
Это хорошее время для тестирования бота. Теперь вы знаете достаточно, чтобы создать собственного бота.
Discord бот на Python
В данной статье мы создадим Discord бот, используя при этом только Python.
Краткая информация о Discord для тех, кто еще о нем не знает
Discord — это, фактически, универсальная платформа голосового и текстового общения для геймеров.
Игроки, стримеры, студенты и разработчики используют Discord, чтобы обсуждать игры, отвечать на вопросы, общаться в чате во время игры в хорошем качестве, в том числе с членами своей команды. В нем даже есть игровой магазин с критическими отзывами и возможностью подписки. По сути, это центр игровых сообществ.
Хотя есть много вещей, которые вы можете создать с помощью API Discord, в этом руководстве мы остановимся на создании бота на Python.
Необходимые приготовления
Чтобы создать Discord бот, вам понадобится:
Что такое боты?
Бот (сокращение от «робот») — это программа, которая выполняет автоматические, повторяющиеся и заранее определенные задачи. Боты обычно имитируют человеческое поведение или подменяют его. Поскольку все их действия автоматизированы, они работают намного быстрее, чем обычные пользователи.
Боты очень часто используются для ответов на типовые вопросы, возникающие в различных сообществах. Они действуют как своего рода представители человека для выполнения различных функций. Основной особенностью такого бота является то, что он устраняет необходимость вручную отвечать каждому участнику и полностью автоматизирует данный процесс.
Для чего нужны чат-боты
Автоматизация ответов на основные вопросы
В любой области деятельности всегда есть вопросы, которые пользователи задают чаще всего. И на эти вопросы каждый раз надо давать одни и те же ответы. Лучшее решение в таком случае — чат-бот.
Ускорение рабочих процессов
Чат-боты, в отличии от людей, никогда не устают. Все люди могут работать только ограниченный период времени, в то время как у ботов таких ограничений нет. Использование чат-ботов в бизнесе хорошо дополняет работу людей, повышает производительность труда и сокращает человеческий труд.
Экономия денег и времени
При правильном использовании дружелюбного чат-бота привлечение клиентов происходит с минимальными затратами и максимальной эффективностью.
Марк Лутц «Изучаем Python»
Скачивайте книгу у нас в телеграм
Пишем код для чат-бота
Сперва убедитесь, что на вашем компьютере установлен Python. Если его еще нет, то загрузите его с официального сайта.
Среду программирования можно использовать любую, какая вам больше нравится. Например, PyCharm, VS Code или Sublime.
Теперь выберите опцию New application (новое приложение) в правом верхнем углу страницы и дайте вашему новому приложению имя. Как видите, можно даже добавить изображение к аватару вашего бота. Мы можем сделать это позже. Сейчас пойдем в раздел Bot (на странице слева) и выберем опцию Add bot (добавить бота).
Затем откройте ссылку под секцией scope в новом окне и выберите сервер, на котором вы желаете видеть ваш бот.
Для этого введем следующую команду:
Основная задача нашего тестового бота будет состоять в том, чтобы давать ответ всем пользователям на их сообщение «Hello». Но вы, конечно, можете его настроить в соответствии с вашими потребностями.
Для начала импортируем необходимые библиотеки:
Создадим переменную Client :
Напишем следующий код для определения статуса бота:
Это сообщение будет отображаться всякий раз, когда вы размещаете своего бота в сети. Вы также можете проверить статус бота из самого Discord.
Это сообщение подтверждает, что наш бот готов к использованию на сервере.
Теперь, когда бот готов к работе, мы можем ответить пользователям на их приветствие hello :
Для запуска бота нам понадобится токен. Он находится в разделе Bot на сайте Discord. Мы заходили туда при создании бота.
Теперь настало время запустить нашего бота!
Откройте CMD и наберите следующую команду:
Если так не выходит, то наберите вот это:
Точно таким же образом пишем бот для приветствия новых участников:
Возможные проблемы при создании бота
Все может быть не так просто, как это кажется на первый взгляд. Вы обязательно должны помнить о проблемах, с которыми можете столкнуться при создании бота. Некоторые из них мы перечислили ниже:
Заключение
Мы рассмотрели, как создать Discord бот на Python. Разумеется, это был простейший бот. Но вы, конечно же, можете написать свой собственный код и добавить множество различных функций, например OCR.
Создание Discord бота на Python
Всем кукуськи, хотелось бы сделать руководство о том как создать бота выдающего роли в Discord на языке python. Все консольные команды, код, конфиг будут в конце поста. Поэтому данного бота может создать любой желающий и не понимающий в программировании человек. Начнем с того что установим сам Python, сделаем мы это в Microsoft store:
Теперь перейдем к Discord’у:
1. Создадим сам сервер:
2. Создадим текстовый канал «получение ролей» (название значения не имеет):
3. Добавим сами роли для выбора:
Я в данном случае создал две роли исключительно для примера:
A: используйте блокнот:
создаете новый файл, вставляете код, в левом верхнем углу: файл >> сохранить как
5. Не закрывая файлы переходим на сайт ( https://discordapp.com/developers ), регаемся, переходим во вкладку «Applications» и создаем новое приложение:
Далее называем его по любому, со всем соглашаемся.
Переходим во вкладку «Bot»,
далее его можно как-либо назвать и поменять аватарку. После макияжа переходим во вкладку «OAuth2»:
Пролистываем немного ниже:
В окне «SCOPES» выбираем «bot», во втором выбираем «Administrator», далее копируем и впоследствии переходим по ссылке, там все подтверждаем.
После авторизации переходим во вкладку «Bot» и копируем токен.
Далее открываем файл » config.py » созданный ранее и вместо надписи «тут токен» вставляем реальный токен. Хочется отметить то что токен меняется при смене имени бота и аватарки, если у вас появятся проблемы, стоит обратить внимание на токен.
Далее переходим в Discord и создаем пост на подобии этого, предварительно подготовив эмодзи, найти их можно тут: https://getemoji.com/ :
Добавить реакции можно нажав пкм:
Далее копируем ID поста, кликнув пкм:
вставляем его в » config.py » слева от надписи «#тут id поста»:
Перейдем к самим ролям, для этого копируем эмодзи из реакций (если вы из брали с ссайта который я оставлял выше то копируйте от туда, если вы их выбирали в ds то скопируйте их в ds и вставте на сайт и скопируйте оттуда) и вставляем в config в ординарных апострофах с двух сторон и через двоеточие указываем id роли, в конце строк (кроме последней) ставим запятые
Взять id можно кликнув пкм по названию роли.
В итоге должно получиться так:
в значении переменной «MAX_ROLES_PER_USER» указываем кол-во ролей которые может получить 1 юзер, значение «EXCROLES» оставляем пустым.
сохраняем config и code в одну папку в которой нет ничего кроме этих файлов и она названа по английски:
Далее в консоли прописываем: «cd «
вот так вот. Осталось поставить роль бота выше ролей которые вы будите выдавать. Иначе появится ошибка (Forbidden(‘403 Forbidden (error code: 50013): Missing Permissions’)). Проверка прошла успешно!
Спасибо за внимание!
Программирование на python
225 постов 7.6K подписчиков
Правила сообщества
Публиковать могут пользователи с любым рейтингом. Однако!
• уважение к читателям и авторам
• простота и информативность повествования
• тег python2 или python3, если актуально
• код публиковать в виде цитаты, либо ссылкой на специализированный сайт
• допускать оскорбления и провокации
• распространять вредоносное ПО
• просить решить вашу полноценную задачу за вас
Я редко конечно ставлю минусы но ставить питон из ms store. это дико, даже для меня
еще один конкурент «9 вите иташки»?
Правильно пишется «наподобие».
Traceback (most recent call last):
NameError: name ‘python’ is not defined
у меня выдаёт ошибку
File «C:\Users\HP-PC\AppData\Local\Programs\Python\Python39\lib\site-packages\aiohttp\ connector.py «, line 938, in _wrap_create_connection
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host discord.com:443 ssl:True [SSLCertVerificationError: (1, ‘[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1122)’)]
Хочешь нарисовать свою карту для D&D? Тебе к нам!
Добрый вечер постояльцам таверны и активны пользователям Пикабу!
В недавнем опросе в вконтакте, постояльцы отметили что у них есть желание научиться рисовать карты для их приключений! Очень рад этому 🙂
Поэтому я решил не останавливаться и завлечь как можно людей в данную атмосферу рисования.
Может быть это масштабный континент? Забытая пещера? Решай сам!
Самый популярный запрос будет нарисован и разобран для обучения.
Что нужно для этого?
В группе Вконтакте не написано какие «инструменты» должны быть у художника (это будет в отдельном посте), но так как мы на Пикабу, то стоит все же рассказать.
Инструменты:
Листы Бумаги А4 или СкетчБук
Простой карандаш
Карандаш H
Карандаш HB
Карандаш 3B
Ластик
Стружилка
— Как и где можно будет посмотреть туториал?
— Сам туториал будет проходить по Discord. Дата и время проведения будет в группе Вконтакте.
Также в группе будет выложена статья с этим же туториалом и на пикабу тоже 🙂
— Зачем показывать туториал и там и там? Почему не сразу создать статью?
— Первое. Появился вопрос или проблема? Спроси у картографа и получи решение!
Второе. Атмосфера. Вместе с вами такие энтузиасты как вы!
В нашем канале Discord, где вы сможете найти игроков для своей игры или мастеров, провести время в комфортной обстановке и нарисовать свою первую карту!?
По старой доброй традиции не забывайте заглядывать в нашу таверну «Благородный лис» где найдёте ещё больше полезной информации для ваших игр и не забудьте поблагодарить художника трактирщика, подписавшись на группу: https://vk.com/noble_fox
| В этой группе вы найдёте:
| Авторские приключения и перевод приключений для D&D 5e.
| Карты и Токены для ваших игр.
| Бесплатные 3D миниатюрки.
| Новости с мира настольных и настольно-ролевых игр.
| И океан полезной информации для улучшения своих игр.
Как сделать бота на python. Туториал, часть 1
Всем привет! Это мой первый пост на Хабре, и в нём я попытаюсь научить делать вас ботов для Discord на языке Python. Итак, приступим.
Первое, что нам нужно сделать, это установить нужные библиотеки и сам питон.
Шаг 1.
После успешно установки нажимаем сочетание клавиш «win» + «r», в открывшемся окошке вводим cmd
В открывшемся окне пишем «pip install discord», ждём когда всё установится, затем прописываем «pip install discord.py».
Шаг 2. Создаём аккаунт нашему боту
Переходим во вкладку «Bot», там нажимаем кнопку «Add bot»
В разделе Privileged Gateway Intents включаем SERVER MEMBERS INTENT и PRESENCE INTENT
Возле аватара нашего бота ищем надпись Token, под ней нажимаем кнопку copy.
Шаг 3. Теперь мы можем перейти к написанию кода
Создаём где нибудь на диске папку.
Теперь можно написать первые строчки кода.
После этого открываем файл с помощью Python’а и ваш бот должен появиться в сети.
Надеюсь, что у вас всё получилось без труда, и вы не просто всё скопировали, а пытались понять, что да как
Удачи вам, с вами был klikis(polyhedron).
Если я что-то забыл написать, или вам что-то не понятно, то пишите в комментарии. Увидимся в следующей части!
P.S. Не бейте за оформление)
О песочнице
Это «Песочница» — раздел, в который попадают дебютные посты пользователей, желающих стать полноправными участниками сообщества.
Если у вас есть приглашение, отправьте его автору понравившейся публикации — тогда её смогут прочитать и обсудить все остальные пользователи Хабра.
Чтобы исключить предвзятость при оценке, все публикации анонимны, псевдонимы показываются случайным образом.
О модерации
Не надо пропускать: