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

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



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


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



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



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


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

pip install discord

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

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

import discord
from discord.ext import commands

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

TOKEN = 'Ваш токен'

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

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

bot = commands.Bot(command_prefix='!') #инициализируем бота с префиксом '!'

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


@bot.command(pass_context=True) #разрешаем передавать агрументы
async def test(ctx, arg): #создаем асинхронную фунцию бота
    await ctx.send(arg) #отправляем обратно аргумент

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

bot.run(TOKEN)

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

Код

import discord
from discord.ext import commands

TOKEN = 'Ваш токен'
bot = commands.Bot(command_prefix='!')


@bot.command(pass_context=True)  # разрешаем передавать агрументы
async def test(ctx, arg):  # создаем асинхронную фунцию бота
    await ctx.send(arg)  # отправляем обратно аргумент


bot.run(TOKEN)



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

https://discordapp.com/oauth2/authorize?&client_id={Client ID}&scope=bot&permissions={Права, например 66395456}

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

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

python bot.py

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



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



Заключение


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



Надеюсь, статья была Вам полезна, удачи!

Похожие публикации

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 9

    +2

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


    1. Когда следующий раз?
    2. А то это все просто, но часто на этом все и заканчивается, хотелось бы как раз почитать не про «простого» бота.
      Спасибо.
      0
      Здравствуйте! Изначально я хотел сделать серию статей, но очень долго ждал приглашения (только что узнал что меня пригласили). На самом деле функциональность бота ограничивается только функциональностью платформы, с которой работает бот, в данном случае Дискорд. Библиотека discord.py позволяет работать практически со всем функционалом мессенджера и с помощью нее можно создать бота с любым функционалом. Если вы не хотите ждать следующих статей, то можете ознакомится с документацией данной библиотеки. Спасибо за комментарий, следующую статью я постараюсь сделать как можно раньше!
      0
      Полностью согласен с пользователем Valsha, а так, спасибо большое за статью, на самом деле все не так страшно, как кажется.
        0

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

          0
          Здравствуйте! Я решил написать статью, так как сам не мог найти наглядного примера создания бота для Discord и решил что это поможет многим начинающим в этом деле. На тот момент было очень мало примеров и ни одной статьи на Хабре. Постараюсь сделать следующую статью более информативной и оригинальной.
            0
            Я полностью согласен с MHunterG любой изобретатель создает вещь не просто так, а если она для чего-то нужна, понятно, что в интернете таких статей весьма много, как одних и тех же лайфхаков на известном видео хостинге, просто кто-то снимит 1 лайфхак, а все остальные спешат переснять его прикрываясь #этопроверкалайфхаков, но эта статья это действительно полезная, а главное понятная вещь, и абсолютно все впихнуть в 1 статью невозможно. Я райтер (тот кто рисует граффити, именно граффити, а не непристойности) и уверяю Вас rmrf51, что я не взял талончик в руки и стал профессионалом, а все еще сейчас обучаюсь этому искусству.
          0

          Такие примитивные скрипты есть в начале README.md и в примерах каждой библиотеки для Discord, мы умеем их читать, для этого не нужна статья. Надо было писать не про запуск, а сразу про подводные камни и сложные моменты. А ещё лучше поделиться своим элегантным решением какой-нибудь типовой задачи — например, трансляция интернет-радио в голосовой канал, какое-то интересное использование вебхуков или ранговая система для сервера с генерацией красивой карточки участника с помощью ImageMagick. Это было бы интересно и полезно. Пару строк кода для создания бота можно было бы пояснить по ходу, читающие это должны быть знакомы с синтаксисом Python и всё поймут.
          Буду ждать следующих статей. Спасибо.

            0

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

              0
              Слишком простой бот, можно было бы сложнее.

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

              Самое читаемое