Как сделать дискорд бота на python

Обновлено: 30.06.2024

В данной статье мы создадим Discord бот, используя при этом только Python.

Краткая информация о Discord для тех, кто еще о нем не знает

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

Хотя есть много вещей, которые вы можете создать с помощью API Discord, в этом руководстве мы остановимся на создании бота на Python.

Необходимые приготовления

Чтобы создать Discord бот, вам понадобится:

  1. Аккаунт в Discord и собственный сервер
  2. Python
  3. Устойчивое интернет-соединение во время всего процесса.

Что такое боты?

Для чего нужны чат-боты

Ускорение рабочих процессов

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

Экономия денег и времени

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

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

Пишем код для чат-бота

Сперва убедитесь, что на вашем компьютере установлен Python. Если его еще нет, то загрузите его с официального сайта.

Среду программирования можно использовать любую, какая вам больше нравится. Например, PyCharm, VS Code или Sublime.

Теперь выберите опцию New application (новое приложение) в правом верхнем углу страницы и дайте вашему новому приложению имя. Как видите, можно даже добавить изображение к аватару вашего бота. Мы можем сделать это позже. Сейчас пойдем в раздел Bot (на странице слева) и выберем опцию Add bot (добавить бота).

Сделав это, перейдите в категорию OAuth2 и в секции scope выберите опцию bot . Далее идите в секцию Permissions и настройте разрешения по вашему выбору.

Затем откройте ссылку под секцией scope в новом окне и выберите сервер, на котором вы желаете видеть ваш бот.

После этого установим библиотеку discord .

Для этого введем следующую команду:

Вот официальный сайт, где есть вся необходимая информация по данной библиотеке. Здесь же мы только заметим, что эта библиотека поддерживает API acync/await .

После установки этой библиотеки откройте ваш редактор кода и создайте файл bot.py .

Для начала импортируем необходимые библиотеки:

Создадим переменную Client :

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

Например, в нашем случае, чтобы вызвать бота, нужно написать /hello , а не просто hello .

Напишем следующий код для определения статуса бота:

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

Эта функция задает условие, при котором, когда пользователь набирает /hello , бот отвечает hi .

Для запуска бота нам понадобится токен. Он находится в разделе Bot на сайте Discord. Мы заходили туда при создании бота.

Замените слово Token на ваш код. Сам токен находится рядом с аватором бота. Если вдруг его там нет, нажмите на надпись Click to Reveal Token . Это должно сработать.

Теперь настало время запустить нашего бота!

Откройте CMD и наберите следующую команду:

Если так не выходит, то наберите вот это:

Теперь перейдем на наш сервер и введем тестовый запрос, который в нашем случае был /hello . Мы увидим, что наш бот отвечает нам Hi .

Точно таким же образом пишем бот для приветствия новых участников:

Возможные проблемы при создании бота

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

Заключение

Мы рассмотрели, как создать Discord бот на Python. Разумеется, это был простейший бот. Но вы, конечно же, можете написать свой собственный код и добавить множество различных функций, например OCR.

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




Получение токена и Client ID для вашего бота

Для получения токена и ID бота небходимо создать свое приложение и в разделе General Information скопировать Client ID.


А в разделе настроек создать бота и скопировать его токен. Задача не сложная, думаю все с этим справятся.


Собственно пишем бота

Устанавливаем discord.py с помощью pip:


После успешной установки создаем файл bot.py, где будем писать бота.

Импортируем все необходимое:


Создаем переменную с вашим токеном, про который я писал выше:

Хотя еще рано, но если вы захотите залить вашего бота на какой-нибудь сервер, то стоить побеспокоится о безопасности вашего токена.

Создаем тело бота:


Для начала сделаем простенькую команду, аргумент которой бот будет просто пересылать:


И в конце запускаем бота с вашим токеном:


В итоге должно получится вот такое:

Теперь необходимо добавить бота на сервер. Сделать это можно с помощью ссылки:


Число необходимых прав можно получить в разделе настроек бота.

Теперь можно запускать бота:


После нескольких секунд, можно заметить его в сети:



Заключение

Вот так можно легко запустить у себя на сервере бота. Как можно заметить библиотека делает практически все за тебя и остается только добавлять свой функционал с использованием python. В следующий раз я покажу как следить за событиями, подключатся к голосовым каналам (избегая проблем с linux и Windows), использовать роли и права участников и другое.

Из этого туториала Вы узнаете, как полностью создать собственного бота 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:

Возможно, вам придется использовать pip3 вместо pip .

Если вы используете Windows, вы должны вместо этого использовать следующую строку:

Как настроить события Discord для вашего бота

Добавьте этот код в main.py. (Вы можете назвать файл как-нибудь иначе, только не discord.py.) Я вскоре объясню, что делает весь этот код.

Когда вы создали своего пользователя-бота в Discord, вы скопировали токен. Теперь мы собираемся создать файл .env для хранения токена. Если вы запускаете свой код локально, вам не нужен файл .env . Просто замените os.getenv('TOKEN') токеном.

.env файлы используются для объявления переменных среды. На Repl.it большинство создаваемых вами файлов видны всем, но .env файлы видны только вам. Другие люди, просматривающие публичный ответ, не смогут увидеть содержимое файла .env .

Поэтому, если вы разрабатываете на Repl.it, включайте в файл .env только личную информацию, такую ​​как токены или ключи.


Внутри файла добавьте следующую строку, включая ваш фактический токен, который вы скопировали ранее:

Теперь давайте рассмотрим, что делает каждая строка в коде вашего бота Discord.

У нас есть код для бота, поэтому теперь нам просто нужно его запустить.

Как запустить бота

Теперь нажмите кнопку запуска вверху, чтобы запустить своего бота в repl.it.

Если вы пишете бота локально, вы можете использовать эти команды в терминале для запуска бота:

В других системах:

Теперь перейдите в свою комнату в Discord и введите «$hello». Ваш бот должен ответить «Hello!».


Как улучшить бота

Теперь, когда у нас есть базовый бот, мы его улучшим. Не зря он называется «Encourage Bot».

Мы начнем с добавления функции «$inspire».

Как добавить в бота вдохновляющие цитаты

Мы будем получать вдохновляющие цитаты из API под названием zenquotes.io. Нам нужно импортировать еще пару модулей Python, добавить функцию get_quote() и обновить код нашего бота, чтобы вызвать функцию.

Вот обновленный код. После кода я объясню новые части.

Функция get_quote() очень проста. Во-первых, она использует модуль запросов для запроса данных из URL-адреса API. API возвращает случайную вдохновляющую цитату. Эту функцию можно легко переписать для получения котировок из другого API, если текущий перестанет работать.

Затем внутри функции мы используем json.loads() для преобразования ответа API в JSON. Методом проб и ошибок я понял, как перевести цитату из JSON в нужный строковый формат. Цитата возвращается из функции в виде строки.

На этом этапе вы можете запустить свой код и попробовать его.

Как добавить грустные слова в бота

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

Добавьте следующую строку после создания переменной client :

Не стесняйтесь добавлять в список больше слов.

Добавьте следующий список после созданного вами списка sad_words :

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

Вот обновленный код:

Это хорошее время для тестирования бота. Теперь вы знаете достаточно, чтобы создать собственного бота.

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

После установки самого python'а (проверить правильность установки можно написав в консоли: "python -V", возможно потребуется перезагрузка) установим модуль discord.py ( https://discordpy.readthedocs.io/en/latest/ -это ссыль на официальную документацию), сделать это можно прописав в консоли: " pip install discord.py ". С установкой чего-либо окончено.

Теперь перейдем к Discord'у:

1. Создадим сам сервер:

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

2. Создадим текстовый канал "получение ролей" (название значения не имеет):

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

3. Добавим сами роли для выбора:

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

Я в данном случае создал две роли исключительно для примера:

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

4. Копируем и сохраняем в расширении .py файлы:

Q: как сохранить код в расширении .py?

A: используйте блокнот:

создаете новый файл, вставляете код, в левом верхнем углу: файл >> сохранить как

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

5. Не закрывая файлы переходим на сайт ( https://discordapp.com/developers ), регаемся, переходим во вкладку "Applications" и создаем новое приложение:

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

Далее называем его по любому, со всем соглашаемся.

Переходим во вкладку "Bot",

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

далее его можно как-либо назвать и поменять аватарку. После макияжа переходим во вкладку "OAuth2":

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

Пролистываем немного ниже:

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

В окне "SCOPES" выбираем "bot", во втором выбираем "Administrator", далее копируем и впоследствии переходим по ссылке, там все подтверждаем.

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

После авторизации переходим во вкладку "Bot" и копируем токен.

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

Далее открываем файл " config.py " созданный ранее и вместо надписи "тут токен" вставляем реальный токен. Хочется отметить то что токен меняется при смене имени бота и аватарки, если у вас появятся проблемы, стоит обратить внимание на токен.

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

Добавить реакции можно нажав пкм:

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

Далее копируем ID поста, кликнув пкм:

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

Перейдем к самим ролям, для этого копируем эмодзи из реакций (если вы из брали с ссайта который я оставлял выше то копируйте от туда, если вы их выбирали в ds то скопируйте их в ds и вставте на сайт и скопируйте оттуда) и вставляем в config в ординарных апострофах с двух сторон и через двоеточие указываем id роли, в конце строк (кроме последней) ставим запятые

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

Взять id можно кликнув пкм по названию роли.

В итоге должно получиться так:

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

в значении переменной "MAX_ROLES_PER_USER" указываем кол-во ролей которые может получить 1 юзер, значение "EXCROLES" оставляем пустым.

сохраняем config и code в одну папку в которой нет ничего кроме этих файлов и она названа по английски:

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

Далее в консоли прописываем: "cd <путь к файлу>"

"<метка тома диска на котором находится папка>"

Создание Discord бота на Python Туториал, Python, Discord, Длиннопост

вот так вот. Осталось поставить роль бота выше ролей которые вы будите выдавать. Иначе появится ошибка (Forbidden('403 Forbidden (error code: 50013): Missing Permissions')). Проверка прошла успешно!

Спасибо за внимание!


Программирование на python

218 постов 7.5K подписчика

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!

Приветствуется:

• уважение к читателям и авторам

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт

Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

Я редко конечно ставлю минусы но ставить питон из ms store. это дико, даже для меня

Зачем выдавать чужой код, за свой?
автора кода - Хауди

еще один конкурент "9 вите иташки"?

Правильно пишется "наподобие".

Хочу для себя изучить питон, что посоветуете? Смотрела курсы, не подошли. Как лучше изучать? Может, книга толковая есть?

на первом этапе(python - V) выдало ошибку

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


Хочешь нарисовать свою карту для D&D? Тебе к нам!

Хочешь нарисовать свою карту для D&D? Тебе к нам! Рисование, Dungeons & Dragons, Туториал, Набор, Discord, Длиннопост

Добрый вечер постояльцам таверны и активны пользователям Пикабу!

В недавнем опросе в вконтакте, постояльцы отметили что у них есть желание научиться рисовать карты для их приключений! Очень рад этому :)

Поэтому я решил не останавливаться и завлечь как можно людей в данную атмосферу рисования.

Что это такое?

Данный пост - небольшая информация для дальнейшего рисования карт для D&D5e, ты же (Пикабушник) можешь присоединиться к нам и следить за будущими постами, а также принять участие в выборе первого туториала.

Может быть это масштабный континент? Забытая пещера? Решай сам!

Самый популярный запрос будет нарисован и разобран для обучения.

Что нужно для этого?

В группе Вконтакте не написано какие "инструменты" должны быть у художника (это будет в отдельном посте), но так как мы на Пикабу, то стоит все же рассказать.

Инструменты:
Листы Бумаги А4 или СкетчБук
Простой карандаш
Карандаш H
Карандаш HB
Карандаш 3B
Ластик
Стружилка
Программы:
Krita - покраска, добавление и создание своих токенов, эффекты и т.д.

Ответы на вопросы

- Да, это бесплатно

- Как и где можно будет посмотреть туториал?

- Сам туториал будет проходить по Discord. Дата и время проведения будет в группе Вконтакте.

Также в группе будет выложена статья с этим же туториалом и на пикабу тоже :)

- Зачем показывать туториал и там и там? Почему не сразу создать статью?

- Первое. Появился вопрос или проблема? Спроси у картографа и получи решение!

Второе. Атмосфера. Вместе с вами такие энтузиасты как вы!

Читайте также: