бот дискорд питон код

Пишем Discord бота на Python используя фреймворк discord.ext

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

Подготовка к работе

Для начала посещаем портал разработчиков и жмём кнопку «New Application» («Создать приложение»), вводим название нашего будущего бота и жмём «Create» («Создать»).

Диалоговое окно

бот дискорд питон код. image loader. бот дискорд питон код фото. бот дискорд питон код-image loader. картинка бот дискорд питон код. картинка image loader. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Теперь нам нужно создать аккаунт для бота — переходим в категорию «Bot» и жмём «Add Bot» («Добавить бота»), в появляющемся диалоговом окне подтвердим это — «Yes, do it!».

Настройки бота

бот дискорд питон код. image loader. бот дискорд питон код фото. бот дискорд питон код-image loader. картинка бот дискорд питон код. картинка image loader. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Копируем токен используя соответсвующую кнопку.

Интересный факт: Токен разделён на 3 части с помощью точек. Первая часть — зашифрованый с помощью base64 ID бота, вторая — время создания токена, третья — секретный ключ.

А сейчас нам нужно установить библиотеку discord.py. Для этого нужно использовать утилиту pip.

«Костяк» программной части бота. Эвенты, команды

После установки библиотеки можем приступать к написанию кода.

Почему она должна быть асинхронна? Потому что возьмём для примера команду которую исполняют одновременно 2 раза разные пользователи. def может заставить бота повиснуть изза того что она не может быть исполнена вместе с другими процессами, но async def занимает только один поток вместо того что бы не давать другим процессам программы исполняться.

Этот аргумент хранит информацию про сообщение, автора сообщения, гильдию, канал и т.п. и быть он всегда должен первым аргументом.

И что же мы делаем в ответ на команду? Мы запускаем асинхронную функцию ctx.send что бы отправить сообщение в тот канал в котором была отправлена команда

Тестируем наш костяк

Для начала нам нужно пригласить бота на сервер — и мы возвращаемся на портал разработки, переходим в категорию OAuth2 и в поле «Scopes» отмечаем только галочку на bot и получаем приглашение.

Запускаем бота, и тестируем работает ли команда

бот дискорд питон код. image loader. бот дискорд питон код фото. бот дискорд питон код-image loader. картинка бот дискорд питон код. картинка image loader. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Заключение

Возможно в следующих туториалах:

Работа с эмбедами
Разбитие бота на коги

Источник

Создание простого Discord бота с помощью библиотеки discord.py

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

бот дискорд питон код. image loader. бот дискорд питон код фото. бот дискорд питон код-image loader. картинка бот дискорд питон код. картинка image loader. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

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

бот дискорд питон код. image loader. бот дискорд питон код фото. бот дискорд питон код-image loader. картинка бот дискорд питон код. картинка image loader. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

бот дискорд питон код. image loader. бот дискорд питон код фото. бот дискорд питон код-image loader. картинка бот дискорд питон код. картинка image loader. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

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

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

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

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

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

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

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

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

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

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

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

бот дискорд питон код. image loader. бот дискорд питон код фото. бот дискорд питон код-image loader. картинка бот дискорд питон код. картинка image loader. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

И наконец-то попробовать отправить команду:

бот дискорд питон код. image loader. бот дискорд питон код фото. бот дискорд питон код-image loader. картинка бот дискорд питон код. картинка image loader. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Заключение

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

Источник

Создание discord-ботов на Python

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

Подготовка

Предварительные действия на боксе такие же, как и в нашей статье про Telegram:

Регистрация бота

Создание бота происходит в два этапа на сайте мессенджера. Сначала создаем приложение: «Разработчикам»(в футере) → «Applications», нажимаем кнопку «New Application» в правой верхней части страницы:

бот дискорд питон код. 1621952170813 60ad06ab2e331. бот дискорд питон код фото. бот дискорд питон код-1621952170813 60ad06ab2e331. картинка бот дискорд питон код. картинка 1621952170813 60ad06ab2e331. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Выбираем имя приложения (выбирайте мудро, хоть его и можно изменить позже):

бот дискорд питон код. 1621952207775 60ad06d01f99e. бот дискорд питон код фото. бот дискорд питон код-1621952207775 60ad06d01f99e. картинка бот дискорд питон код. картинка 1621952207775 60ad06d01f99e. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

бот дискорд питон код. 1621952226627 60ad06e30b5b1. бот дискорд питон код фото. бот дискорд питон код-1621952226627 60ad06e30b5b1. картинка бот дискорд питон код. картинка 1621952226627 60ad06e30b5b1. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

Токен бота можно получить по кнопке Copy:

бот дискорд питон код. 1621952247675 60ad06f808ec2. бот дискорд питон код фото. бот дискорд питон код-1621952247675 60ad06f808ec2. картинка бот дискорд питон код. картинка 1621952247675 60ad06f808ec2. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Если вдруг токен попал не только в ваши руки, его всегда можно заменить кнопкой Regenerate.

Добавление бота на сервер

Переходим на вкладку «OAuth2» и создаем для него свой URL для приглашения:

бот дискорд питон код. 1621952326600 60ad074750095. бот дискорд питон код фото. бот дискорд питон код-1621952326600 60ad074750095. картинка бот дискорд питон код. картинка 1621952326600 60ad074750095. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

Выдаем права, действительно нужные боту для администрирования сервера:

бот дискорд питон код. 1621952344255 60ad0758e0591. бот дискорд питон код фото. бот дискорд питон код-1621952344255 60ad0758e0591. картинка бот дискорд питон код. картинка 1621952344255 60ad0758e0591. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

бот дискорд питон код. 1621952379650 60ad077c1d37d. бот дискорд питон код фото. бот дискорд питон код-1621952379650 60ad077c1d37d. картинка бот дискорд питон код. картинка 1621952379650 60ad077c1d37d. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

бот дискорд питон код. 1621952404626 60ad07950167a. бот дискорд питон код фото. бот дискорд питон код-1621952404626 60ad07950167a. картинка бот дискорд питон код. картинка 1621952404626 60ad07950167a. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

бот дискорд питон код. 1621952419674 60ad07a40e4da. бот дискорд питон код фото. бот дискорд питон код-1621952419674 60ad07a40e4da. картинка бот дискорд питон код. картинка 1621952419674 60ad07a40e4da. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Код бота

Активируем виртуальное окружение и ставим нужную библиотеку:

Добавляем директорию для бота, не выходя виртуального окружения:

Создаем конфиг бота:

Наполняем его содержимым

Дальше код бота. Создаем bot.py и сразу редактируем его vim’ом:

Первыми строками активируем виртуальное окружение и импортируем нужные модули:

Обозначаем боту, с какого символа начинаются его команды:

И создаем первую команду — бот будет отправлять реплай с текстом “I’M ALIVE!” на сообщение “!status”:

Добавляем в код функцию запуска:

Закрываем редактор и запускаем бота:

Отправим сообщение в Discord:

бот дискорд питон код. 1621952551300 60ad0827a2003. бот дискорд питон код фото. бот дискорд питон код-1621952551300 60ad0827a2003. картинка бот дискорд питон код. картинка 1621952551300 60ad0827a2003. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Запуск бота

Создаем Linux-демона — он будет следить, что бот работает. Открываем файл (mlg, если нужно, меняем на своё имя сервиса):

Добавляем в него строки:

И запускаем демона:

Проверить, что всё работает, можно так:

Дополнение кода бота

Бот улучшается в два этапа:

Для примера добавим в бота какое-нибудь рандомное API. Открываем файл бота:

И добавляем в него пару библиотек и ещё одну функцию обработки команд:

Закрываем файл и перезапускаем демона, чтобы изменения вступили в силу:

Результатом будет рандомный мем:

бот дискорд питон код. 1621952943571 60ad09afe6987. бот дискорд питон код фото. бот дискорд питон код-1621952943571 60ad09afe6987. картинка бот дискорд питон код. картинка 1621952943571 60ad09afe6987. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Готово! Боты в Discord умеют многое, и мы можем и дальше расширять его возможности, изучая документацию.

Источник

Как сделать Discord Bot в Python

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

бот дискорд питон код. discord. бот дискорд питон код фото. бот дискорд питон код-discord. картинка бот дискорд питон код. картинка discord. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

К концу этой статьи вы узнаете:

Вы начнете с изучения, что такое Discord и почему это ценно.

Что такое Discord?

Discord – это голосовая и текстовая коммуникационная платформа для геймеров.

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

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

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

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

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

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

С ботом можно автоматически реагировать на присоединение нового члена вашей гильдии. Вы даже можете настроить его поведение в зависимости от контекста и контролировать его взаимодействие с каждым новым пользователем.

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

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

Есть два ключевых шага при создании бота:

Как сделать Discord Bot на портале для разработчиков

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

Вы узнаете больше о каждой части в следующих разделах.

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

Создание учетной записи Discord

Первое, что вы увидите, это целевая страница, на которой вам нужно будет либо авторизоваться, если у вас уже есть аккаунт, либо создать новый аккаунт:

бот дискорд питон код. discord bot register user.41a9c2bc4db9. бот дискорд питон код фото. бот дискорд питон код-discord bot register user.41a9c2bc4db9. картинка бот дискорд питон код. картинка discord bot register user.41a9c2bc4db9. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

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

Когда вы закончите, вы будете перенаправлены на домашнюю страницу портала разработчика, где вы создадите свое приложение.

Создание приложения

Чтобы создать новое приложение, выберите « Новое приложение» :

бот дискорд питон код. discord bot new app.40b4a51bb57d. бот дискорд питон код фото. бот дискорд питон код-discord bot new app.40b4a51bb57d. картинка бот дискорд питон код. картинка discord bot new app.40b4a51bb57d. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Далее вам будет предложено назвать ваше приложение. Выберите имя и нажмите « Создать» :

бот дискорд питон код. discord bot name application.8ccfc8a69cb5. бот дискорд питон код фото. бот дискорд питон код-discord bot name application.8ccfc8a69cb5. картинка бот дискорд питон код. картинка discord bot name application.8ccfc8a69cb5. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Поздравляем! Вы сделали заявку Discord. На появившемся экране вы можете увидеть информацию о вашем приложении:

бот дискорд питон код. discord bot app info.146a24d590a6. бот дискорд питон код фото. бот дискорд питон код-discord bot app info.146a24d590a6. картинка бот дискорд питон код. картинка discord bot app info.146a24d590a6. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

Однако, поскольку в этом руководстве рассказывается, как создать бот Discord, перейдите на вкладку Bot в левом списке навигации.

Создание бота

Как вы узнали из предыдущих разделов, пользователь бота – тот, кто слушает и автоматически реагирует на определенные события и команды в Discord.

Чтобы ваш код действительно отображался в Discord, вам нужно создать пользователя бота. Для этого выберите Добавить бота :

бот дискорд питон код. discord bot add bot.4735c88ff16b. бот дискорд питон код фото. бот дискорд питон код-discord bot add bot.4735c88ff16b. картинка бот дискорд питон код. картинка discord bot add bot.4735c88ff16b. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Как только вы подтвердите, что хотите добавить бота в свое приложение, вы увидите нового пользователя бота на портале:

бот дискорд питон код. discord bot created.fbdf4a021810. бот дискорд питон код фото. бот дискорд питон код-discord bot created.fbdf4a021810. картинка бот дискорд питон код. картинка discord bot created.fbdf4a021810. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

бот дискорд питон код. discord bot rename bot.008fd6ed6354. бот дискорд питон код фото. бот дискорд питон код-discord bot rename bot.008fd6ed6354. картинка бот дискорд питон код. картинка discord bot rename bot.008fd6ed6354. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Теперь бот готов и готов к работе, но куда?

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

Создание гильдии

Примечание. Хотя гильдия и сервер взаимозаменяемы, в данной статье термин « гильдия» будет использоваться главным образом потому, что API придерживаются одного и того же термина. Термин сервер будет использоваться только при обращении к гильдии в графическом интерфейсе.

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

Создав свою гильдию, вы пригласите других пользователей заполнить ее.

Итак, чтобы создать гильдию, зайдите на домашнюю страницу Discord :

бот дискорд питон код. discord bot homepage.f533b989cedd. бот дискорд питон код фото. бот дискорд питон код-discord bot homepage.f533b989cedd. картинка бот дискорд питон код. картинка discord bot homepage.f533b989cedd. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

бот дискорд питон код. discord bot add server.bd5a5a58c50c. бот дискорд питон код фото. бот дискорд питон код-discord bot add server.bd5a5a58c50c. картинка бот дискорд питон код. картинка discord bot add server.bd5a5a58c50c. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

бот дискорд питон код. discord bot create server.922dba753792. бот дискорд питон код фото. бот дискорд питон код-discord bot create server.922dba753792. картинка бот дискорд питон код. картинка discord bot create server.922dba753792. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Когда вы закончите создание своей гильдии, вы сможете увидеть пользователей справа и каналы слева:

бот дискорд питон код. discord bot server.cba61f3781cf. бот дискорд питон код фото. бот дискорд питон код-discord bot server.cba61f3781cf. картинка бот дискорд питон код. картинка discord bot server.cba61f3781cf. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Последний шаг на Discord – регистрация вашего бота в вашей новой гильдии.

Добавление бота в гильдию

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

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

Для этого вернитесь на портал разработчика и выберите страницу OAuth2 на левой навигационной панели:

бот дискорд питон код. discord bot oauth2.7c000bfe571b. бот дискорд питон код фото. бот дискорд питон код-discord bot oauth2.7c000bfe571b. картинка бот дискорд питон код. картинка discord bot oauth2.7c000bfe571b. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

В этом окне вы увидите Генератор URL OAuth2.

Этот инструмент генерирует URL-адрес авторизации, который обращается к API-интерфейсу Discord OAuth2 и авторизует доступ к API с использованием учетных данных вашего приложения.

В этом случае вы захотите предоставить пользователю бота вашего приложения доступ к API Discord с использованием учетных данных OAuth2 вашего приложения.

бот дискорд питон код. discord bot scopes.ee333b7a5987. бот дискорд питон код фото. бот дискорд питон код-discord bot scopes.ee333b7a5987. картинка бот дискорд питон код. картинка discord bot scopes.ee333b7a5987. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Теперь Discord сгенерировал URL авторизации вашего приложения с выбранной областью и разрешениями.

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

Выберите « Копировать» рядом с URL-адресом, который был сгенерирован для вас, вставьте его в браузер и выберите свою гильдию в раскрывающемся списке:

бот дискорд питон код. discord bot select server.3cd1af626256. бот дискорд питон код фото. бот дискорд питон код-discord bot select server.3cd1af626256. картинка бот дискорд питон код. картинка discord bot select server.3cd1af626256. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

Если вы вернетесь в свою гильдию, то увидите, что бот был добавлен:

бот дискорд питон код. discord bot added to guild.4a6b4477bc1e. бот дискорд питон код фото. бот дискорд питон код-discord bot added to guild.4a6b4477bc1e. картинка бот дискорд питон код. картинка discord bot added to guild.4a6b4477bc1e. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

В итоге вы создали:

Теперь вы знаете, как создать бот Discord с помощью портала разработчика. Далее идут забавные вещи: реализация вашего бота на Python!

Как сделать Discord Bot в Python

Начните с установки discord.py с pip :

Создание Discord Connection

Первым шагом в реализации вашего бота является создание подключения к Discord. С помощью discord.py этого вы создаете экземпляр Client :

A Client – это объект, представляющий связь с Discord. A Client обрабатывает события, отслеживает состояние и обычно взаимодействует с API-интерфейсами Discord.

Здесь вы создали Client и реализовали его on_ready() обработчик событий, который обрабатывает событие, когда Client он установил соединение с Discord и завершил подготовку данных, отправленных Discord, таких как состояние входа в систему, данные гильдии и канала и т. Д.

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

Когда вы работаете с такими секретами, как токен Discord, рекомендуется записать его в свою программу из переменной среды. Использование переменных среды помогает вам:

Вам нужно заменить с ботами маркером, который вы можете получить, перейдя обратно на Bot страницу на Developer Portal и нажав Copy под TOKEN раздела:

бот дискорд питон код. discord bot copy token.1228e6cb6cba. бот дискорд питон код фото. бот дискорд питон код-discord bot copy token.1228e6cb6cba. картинка бот дискорд питон код. картинка discord bot copy token.1228e6cb6cba. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Установить dotenv с помощью pip :

Наконец, client.run() запускается ваш Client токен вашего бота.

Взаимодействие с API Discord

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

Сначала вам нужно добавить новую переменную среды:

Не забывайте, что вам нужно заменить два заполнителя фактическими значениями:

Примечание. Несмотря на то, что в этом уроке вы можете быть уверены, что ваш бот подключен только к одной гильдии (так client.guilds[0] будет проще), важно понимать, что пользователь бота может быть подключен ко многим гильдиям.

Следовательно, более надежное решение состоит в том, чтобы просмотреть client.guilds то, что вы ищете.

Запустите программу, чтобы увидеть результаты:

Большой! Вы можете увидеть имя вашего бота, имя вашего сервера и идентификационный номер сервера.

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

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

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

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

Использование служебных функций

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

discord.utils.find() это одна утилита, которая может улучшить простоту и удобочитаемость этого кода, заменив for цикл на интуитивно понятную абстрактную функцию:

В этом случае вы пытаетесь найти гильдию с тем же именем, которое вы сохранили в DISCORD_GUILD переменной среды. Найдя find() элемент в итерируемом объекте, который удовлетворяет предикату, он вернет элемент. Это по сути эквивалентно break утверждению в предыдущем примере, но чище.

discord.py даже абстрагировал эту концепцию на один шаг вперед с помощью get() утилиты :

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

В этом примере вы указали name=GUILD атрибут, который должен быть удовлетворен.

Отвечая на события

Но что такое событие?

Используя пример, который вы уже видели, on_ready() обработчик событий обрабатывает событие, Client которое установило соединение с Discord и подготовило его данные ответа.

Есть два способа discord.py реализовать обработчик событий:

Вы уже видели реализацию с использованием декоратора. Далее рассмотрим, как создать подкласс Client :

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

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

Приветствуя новых людей

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

Как и раньше, вы обрабатывали on_ready() событие, печатая имя пользователя бота в отформатированной строке. Новым, однако, является реализация on_member_join() обработчика событий.

await приостанавливает выполнение окружающей сопрограммы до тех пор, пока не завершится выполнение каждой сопрограммы.

Теперь давайте проверим новое поведение вашего бота.

Сначала запустите новую версию bot.py и подождите, пока on_ready() событие не сработает, записав ваше сообщение по адресу stdout :

бот дискорд питон код. discord bot navigate to server.dfef0364630f. бот дискорд питон код фото. бот дискорд питон код-discord bot navigate to server.dfef0364630f. картинка бот дискорд питон код. картинка discord bot navigate to server.dfef0364630f. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

бот дискорд питон код. discord bot copy invite.0dd6b229c819. бот дискорд питон код фото. бот дискорд питон код-discord bot copy invite.0dd6b229c819. картинка бот дискорд питон код. картинка discord bot copy invite.0dd6b229c819. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Теперь, скопировав ссылку приглашения, создайте новую учетную запись и присоединитесь к гильдии, используя ссылку приглашения:

бот дискорд питон код. discord bot accept invite.4b33a1ba7062. бот дискорд питон код фото. бот дискорд питон код-discord bot accept invite.4b33a1ba7062. картинка бот дискорд питон код. картинка discord bot accept invite.4b33a1ba7062. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

бот дискорд питон код. discord bot direct message notification.95e423f72678. бот дискорд питон код фото. бот дискорд питон код-discord bot direct message notification.95e423f72678. картинка бот дискорд питон код. картинка discord bot direct message notification.95e423f72678. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Когда вы выберете его, вы увидите личное сообщение от вашего пользователя бота:

бот дискорд питон код. discord bot direct message.7f49832b7bb7. бот дискорд питон код фото. бот дискорд питон код-discord bot direct message.7f49832b7bb7. картинка бот дискорд питон код. картинка discord bot direct message.7f49832b7bb7. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

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

Отвечая на сообщения

Давайте добавим к предыдущей функциональности вашего бота, обработав on_message() событие.

on_message() происходит, когда сообщение публикуется на канале, к которому у вашего бота есть доступ. В этом примере вы ответите на сообщение ’99!’ одной строчкой из телешоу « Бруклинские девять-девять» :

Другая часть важна:

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

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

Итак, если один человек на канале скажет другому «С Днем Рождения», тогда бот тоже включится… снова… и снова… и снова:

бот дискорд питон код. discord bot happy birthday repetition.864acfe23979. бот дискорд питон код фото. бот дискорд питон код-discord bot happy birthday repetition.864acfe23979. картинка бот дискорд питон код. картинка discord bot happy birthday repetition.864acfe23979. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Вот почему важно сравнивать message.author их с client.user (пользователем вашего бота) и игнорировать любые его собственные сообщения.

Итак, давайте исправим bot.py :

Наконец, отправляйтесь в Discord, чтобы проверить это:

бот дискорд питон код. discord bot brooklyn 99 quotes.e934592e025e. бот дискорд питон код фото. бот дискорд питон код-discord bot brooklyn 99 quotes.e934592e025e. картинка бот дискорд питон код. картинка discord bot brooklyn 99 quotes.e934592e025e. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

Обработка исключений

Новый raise-exception обработчик сообщений позволяет вам вызывать DiscordException команду включения.

Запустите программу и введите raise-exception в канал Discord:

бот дискорд питон код. discord bot raise. бот дискорд питон код фото. бот дискорд питон код-discord bot raise. картинка бот дискорд питон код. картинка discord bot raise. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Теперь вы должны увидеть, Exception что поднял ваш on_message() обработчик в консоли:

Итак, поскольку он on_message() принимает один аргумент, message мы ожидаем, args[0] что он будет message отправлен пользователем в канале Discord:

Запустите bot.py и отправьте raise-exception сообщение еще раз, чтобы просмотреть вывод в err.log :

Подключение бота

A Bot является подклассом, Client который добавляет немного дополнительной функциональности, которая полезна при создании пользователей ботов. Например, объект Bot может обрабатывать события и команды, вызывать проверки правильности и многое другое.

Как видите, Bot можете обрабатывать события так же, как это Client делают. Однако обратите внимание на различия между Client и Bot :

Использование Bot команд

В общем, команда – это порядок, который пользователь дает боту, чтобы он что-то делал. Команды отличаются от событий, потому что они:

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

Есть несколько важных характеристик, которые следует понимать при использовании Command :

A Context содержит данные, такие как канал и гильдия, которые пользователь вызвал Command из.

Теперь, когда ваш бот запущен, вы можете отправиться в Discord, чтобы опробовать новую команду:

бот дискорд питон код. discord bot brooklyn 99 command.f01b21540756. бот дискорд питон код фото. бот дискорд питон код-discord bot brooklyn 99 command.f01b21540756. картинка бот дискорд питон код. картинка discord bot brooklyn 99 command.f01b21540756. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

С точки зрения пользователя, практическое отличие состоит в том, что префикс помогает формализовать команду, а не просто реагирует на конкретное on_message() событие.

Это дает и другие большие преимущества. Например, вы можете вызвать help команду, чтобы увидеть все команды, которые вы Bot обрабатываете:

бот дискорд питон код. discord bot help command.a2ec772cc910. бот дискорд питон код фото. бот дискорд питон код-discord bot help command.a2ec772cc910. картинка бот дискорд питон код. картинка discord bot help command.a2ec772cc910. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Теперь, когда пользователь вызывает help команду, ваш бот представит описание вашей команды:

бот дискорд питон код. discord bot help description.7f710c984c66. бот дискорд питон код фото. бот дискорд питон код-discord bot help description.7f710c984c66. картинка бот дискорд питон код. картинка discord bot help description.7f710c984c66. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Имейте в виду, что все эти функции существуют только для Bot подкласса, но не для Client суперкласса.

Command имеет еще одну полезную функциональность: возможность использовать Converter для изменения типов своих аргументов.

Автоматическое преобразование параметров

Еще одним преимуществом использования команд является возможность преобразования параметров.

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

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

Вы решили roll принять два параметра:

бот дискорд питон код. discord bot roll dice.0255e76f078e. бот дискорд питон код фото. бот дискорд питон код-discord bot roll dice.0255e76f078e. картинка бот дискорд питон код. картинка discord bot roll dice.0255e76f078e. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Далее вы узнаете об Check объекте и о том, как он может улучшить ваши команды.

Проверка предикатов команд

A Check – это предикат, который оценивается перед выполнением a, Command чтобы гарантировать, что Context окружение Command вызова допустимо.

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

commands Расширение предоставляет более чистое и более удобный механизм для выполнения такой проверки, а именно с использованием Check объектов.

Во-первых, вам нужно создать новую роль члена в администраторе. Зайдите в гильдию Discord и выберите меню <Имя сервера>→ Настройки сервера :

бот дискорд питон код. discord bot server settings.1eb7e71e881b. бот дискорд питон код фото. бот дискорд питон код-discord bot server settings.1eb7e71e881b. картинка бот дискорд питон код. картинка discord bot server settings.1eb7e71e881b. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Затем выберите Роли из списка навигации слева:

бот дискорд питон код. discord bot roles.bdc21374afa9. бот дискорд питон код фото. бот дискорд питон код-discord bot roles.bdc21374afa9. картинка бот дискорд питон код. картинка discord bot roles.bdc21374afa9. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Наконец, выберите знак + рядом с ROLES, введите имя admin и выберите Сохранить изменения :

бот дискорд питон код. discord bot new role.7e8d95291d0d. бот дискорд питон код фото. бот дискорд питон код-discord bot new role.7e8d95291d0d. картинка бот дискорд питон код. картинка discord bot new role.7e8d95291d0d. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Теперь вы создали admin роль, которую вы можете назначить конкретным пользователям. Далее вы обновитесь bot.py до Check роли пользователя, прежде чем позволить ему инициировать команду:

Вы также используете, discord.utils.get() чтобы не создавать канал с тем же именем, что и существующий канал.

Попробуйте все это снова, и вы должны увидеть ошибку в канале Discord:

бот дискорд питон код. discord bot role error message.adfe85fe76a9. бот дискорд питон код фото. бот дискорд питон код-discord bot role error message.adfe85fe76a9. картинка бот дискорд питон код. картинка discord bot role error message.adfe85fe76a9. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

Большой! Теперь, чтобы решить проблему, вам нужно дать себе роль администратора :

бот дискорд питон код. discord bot role granted.081c0c317834. бот дискорд питон код фото. бот дискорд питон код-discord bot role granted.081c0c317834. картинка бот дискорд питон код. картинка discord bot role granted.081c0c317834. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

С ролью администратора ваш пользователь передаст Check и сможет создавать каналы с помощью команды.

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

бот дискорд питон код. discord bot new channel.43cd2889446c. бот дискорд питон код фото. бот дискорд питон код-discord bot new channel.43cd2889446c. картинка бот дискорд питон код. картинка discord bot new channel.43cd2889446c. Сегодня мы создадим Discord бота на Python, для этого не надо прикладывать каких то фантастических усилий.

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

Вывод

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *