Как заставить бота писать на определенный канал Discord

Обновлено: 21.11.2024

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

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

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

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

Как добавить бота в Discord

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

<р>2. Нажмите кнопку с надписью «Добавить в Discord».

<р>3. Укажите свой логин Discord для аутентификации вашей учетной записи. Если всплывающее окно запрашивает разрешение на использование вашей учетной записи, нажмите «Авторизовать».

Убедитесь, что вы вошли в правильную учетную запись, и нажмите "Авторизовать". Джереми Дрейфус, Джастин Гмозер/Business Insider

<р>4. Нажмите «Настроить MEE6» рядом с именем вашего сервера.

<р>5. Выберите свой сервер во всплывающем окне и нажмите "Продолжить".

<р>6. Выберите или отмените выбор разрешений, которые вы предоставите этому боту.

<р>7. Прокрутите вниз и нажмите "Авторизовать".

Как настроить MEE6 в качестве приветствующего бота в Discord

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

<р>1. Нажмите кнопку "Добро пожаловать".

Выберите приветственную задачу для бота, например "Отправить сообщение, когда пользователь присоединится к серверу". Джереми Дрейфус, Джастин Гмозер/Business Insider

<р>3. Вы можете настроить то, что говорит ваш бот, вплоть до цвета и шрифта текста, а также канала, в котором ваш бот будет публиковать сообщения.

<р>4. Нажмите «Сохранить», когда закончите. Посетите эту страницу плагинов еще раз, если хотите внести изменения.

Как настроить MEE6 в качестве модерирующего бота в Discord

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

<р>1. Нажмите на значок "Модератор".

<р>2. Затем нажмите "Да" во всплывающем окне, чтобы включить его.

<р>3. Прокрутите вниз до «Автомодератора» и выберите правила, которые должен применять ваш бот. Варианты включают цензуру нецензурных слов, спойлеров и чрезмерных смайликов.

В разделе «Автомодерация» вы можете выбрать, какие действия вы хотите модерировать, например «Плохие слова». Джереми Дрейфус, Джастин Гмозер/Business Insider

<р>4. Выбирая, что будет модерировать ваш бот, вы можете решить, как бот будет делать замечания пользователям. Сообщение может быть автоматически удалено, пользователю, запустившему автомодерацию, может быть отправлено предупреждающее сообщение, или и то, и другое.

<р>5. Нажмите «Настройки», чтобы настроить порог запуска бота. Например, бот может начать действовать после того, как пост будет помечен определенным количеством тегов спойлера. Вы также можете выбрать каналы, которые бот будет игнорировать.

<р>6. Сохраните все изменения.

Как настроить MEE6 для оповещения пользователей о ваших трансляциях на Twitch

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

<р>1. Прокрутите и нажмите значок Twitch.

<р>2. Нажмите «Да» во всплывающем окне, чтобы включить его.

<р>3. Введите название своего канала Twitch.

<р>4. Настройте сообщение на свой сервер.

<р>5. Выберите канал, в котором бот будет публиковать сообщения.

<р>6. Выберите, хотите ли вы получать уведомление Discord, когда кто-то подписывается на канал Twitch.

<р>7. Нажмите "Сохранить".

<р>8. Теперь, когда вы выходите в эфир на Twitch, все на вашем сервере будут уведомлены об этом.

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

Сопрограммы¶

Вопросы о сопрограммах и асинхронности относятся сюда.

Что такое сопрограмма?¶

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

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

Где я могу использовать await?¶

Вы можете использовать await только внутри функций асинхронного определения и нигде больше.

Что означает «блокировка»?¶

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

Если ведение журнала включено, эта библиотека попытается предупредить вас о блокировке сообщением: Heartbeat заблокирован более чем на N секунд. Дополнительные сведения о включении ведения журнала см. в разделе Настройка ведения журнала.

Распространенным источником слишком долгой блокировки является что-то вроде time.sleep() . Не делай этого. Вместо этого используйте asyncio.sleep(). Аналогично этому примеру:

Рассмотрите следующий пример:

Общие¶

Общие вопросы, касающиеся использования библиотеки, относятся сюда.

Где найти примеры использования?¶

Пример кода можно найти в папке примеров в репозитории.

Как установить статус «В игре»?¶

Существует высокая вероятность отключения, если присутствие изменяется сразу после подключения.

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

Соединяя обе эти части информации, вы получаете следующее:

Как отправить сообщение на определенный канал?¶

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

Как отправить личное сообщение?¶

Получите объект User или Member и вызовите abc.Messageable.send() . Например:

Если вы отвечаете на событие, такое как on_message() , у вас уже есть объект User через Message.author :

Как получить идентификатор отправленного сообщения?¶

abc.Messageable.send() возвращает отправленное сообщение. Доступ к идентификатору сообщения можно получить через Message.id :

Как загрузить изображение?¶

Чтобы загрузить что-либо в Discord, вы должны использовать объект File.

Файл принимает два параметра: файлоподобный объект (или путь к файлу) и имя файла, которое передается в Discord при загрузке.

Если вы хотите загрузить изображение, это так же просто, как:

Если у вас есть файлоподобный объект, вы можете сделать следующее:

Чтобы загрузить несколько файлов, вы можете использовать аргумент ключевого слова files вместо файла:

Как я могу добавить реакцию на сообщение?¶

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

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

Для пользовательских эмодзи необходимо передать экземпляр эмодзи . Вы также можете передать строку '', но если вы можете использовать указанный смайлик, вы должны иметь возможность использовать Client.get_emoji() для получения смайлика через идентификатор или использовать utils.find() / utils.get() на клиенте. коллекции emojis или Guild.emojis.

Название и идентификатор пользовательского смайлика можно найти в клиенте, добавив перед :custom_emoji: обратную косую черту. Например, отправка сообщения \:python3: клиенту приведет к .

Как передать сопрограмму в функцию «после» игрока?¶

Музыкальный проигрыватель библиотеки запускается в отдельном потоке, поэтому он не выполняется внутри сопрограммы. Это не означает, что нельзя вызвать сопрограмму в параметре after. Для этого вы должны передать вызываемый объект, который оборачивает пару аспектов.

Однако эта функция возвращает Future, и чтобы ее вызвать, нам нужно получить ее результат. Собрав все это вместе, мы можем сделать следующее:

Как запустить что-то в фоновом режиме?¶

Как получить конкретную модель?¶

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

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

Содержание

Что такое Discord-бот только для записи?

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

Одна из замечательных особенностей Discord заключается в том, что вы можете писать код для выполнения различных функций за вас. Мы называем эти программы ботами, и их можно использовать практически для чего угодно. Например, я использовал бота для отправки сообщений в The Renegade Coder Discord всякий раз, когда выпускался релиз в одном из наших репозиториев GitHub. В последнее время я использую ботов, чтобы информировать людей всякий раз, когда публикую статью, а также управлять такими задачами, как предоставление доступа к чатам.

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

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

К счастью, есть чрезвычайно удобная альтернатива: боты только для записи. И вы можете написать его самостоятельно менее чем за 5 строк кода. Не верите мне? Продолжайте читать!

Настройка Discord-бота только для записи

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

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

Оттуда вы можете выбрать опцию «Интеграции» на левой боковой панели:

Там вы должны увидеть несколько вариантов. Вариант, который вам нужен, — «Веб-перехватчики»:

Скорее всего, вы впервые создаете веб-перехватчик. Хорошо! Идем дальше и нажимаем «Создать вебхук». Он должен создать его для вас следующим образом:

И готово! На этом этапе вы можете переименовать веб-хук и предоставить изображение профиля. Они будут отображаться как имя вашего бота и изображение профиля.

В противном случае, если вам этого достаточно, смело нажимайте «Копировать URL-адрес веб-перехватчика» и переходите к кодированию.

Как создать бота только для записи

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

Возможно, на этом этапе ваш код не запустится. Причина этого в том, что библиотека разногласий является сторонней. Не волнуйтесь! Убедитесь, что вы запустили команду for of pip, чтобы установить его (например, pip install discord ).

С учетом этого мы создали нашего первого бота. Осталось только заставить бота отправлять сообщения на канал. Мы можем сделать это с помощью метода send():

И все! Ваш бот только что отправил «Hello, World!» на канал, на который вы настроили веб-перехватчик. Теперь представьте себе возможности.

Представьте возможности

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

В этом примере объект Reddit — это аутентифицированный экземпляр Reddit, который я извлек случайным сообщением из сабреддита Randum. Затем я отправляю URL-адрес для этого сообщения напрямую, который обрабатывается Discord. Ради забавы я запланировал запуск подобного скрипта каждый час, просто чтобы проверить новый случайный контент Reddit.

Тем не менее, зачем останавливаться на Reddit? Я уверен, что существуют API для всех видов сервисов, таких как YouTube и Twitter, где вы можете регулярно получать контент. Или вы даже можете написать свой собственный парсер! Например, вы можете создать список RSS-каналов и регулярно публиковать их содержимое в Discord.

Что бы вы ни решили сделать со своим ботом Discord, предназначенным только для записи, не стесняйтесь, дайте мне знать, что из этого выйдет! Я уверен, что вы могли бы сделать несколько действительно забавных ботов (или вы можете сделать что-нибудь полезное…).

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

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

Включите общение между пользователями и приложениями в Slack, создав ботов.

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

Бот – это тип приложения Slack, предназначенный для взаимодействия с пользователями посредством беседы.

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

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

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

Боты — это не кибернетические агенты по внедрению, и вряд ли им снятся электрические овцы, хотя мы не можем этого исключать. 🤖

Начало работы

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

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

Прежде чем начать, вам понадобится приложение Slack. Если у вас его еще нет, нажмите следующую кнопку, чтобы создать его:

После этого вы готовы организовать архитектуру этого автомата.

1. Создание пользователя-бота

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

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

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

  • Отображаемое имя — имя, которое отображается для других пользователей, когда бот публикует сообщения, просматривает профиль бота и т. д.
  • Имя пользователя по умолчанию — строка, которая используется при упоминании бота в сообщении. Это имя пользователя может немного измениться по сравнению со значением по умолчанию, если оно установлено в рабочей области, где это имя пользователя уже зарезервировано. Эта модификация представляет собой увеличивающееся число, добавленное к имени пользователя, поэтому @username может стать @username2.
  • Всегда показывать, что мой бот подключен к сети. Мы рекомендуем вам включить эту функцию, чтобы ваш бот всегда был готов к приему данных (вероятно, так оно и будет). Если этот параметр отключен, вам придется программно установить его присутствие в Интернете.

Заполнив эти поля, нажмите кнопку Добавить пользователя-бота, а затем Сохранить изменения.

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

2. Настройка API событий

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

Предоставить боту доступ к Events API очень просто:

Хорошие новости! Ваш бот выглядит все более и более реалистичным, и теперь он готов найти себе дом.

3. Установка бота в рабочую область

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

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

  • Снова на странице настроек приложения нажмите элемент настроек Установить приложение в меню навигации.
  • На этой странице нажмите кнопку с пометкой Установить приложение в рабочую область. Если вы уже установили приложение, кнопка, которую нужно нажать, будет помечена как Переустановить приложение.
  • Вы увидите страницу авторизации разрешений, на которой нужно нажать Авторизовать. Теперь ваше приложение установлено в этой рабочей области, но вам все еще нужно пригласить его в отдельные каналы.
  • Вы также должны пригласить бота на общедоступный канал где-нибудь в своей рабочей области.

После установки вы сгенерируете токен бота, который нужно сохранить для использования в дальнейшем. Его можно найти в настройках приложения в разделе Установить приложение > Токен доступа OAuth пользователя бота< /эм>.

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

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

4. Обработка событий

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

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

В этом диалоге инициировано 4 события: первое — это событие app_mention из первого сообщения, в котором упоминается бот; следующие три — это события сообщения для каждого из сообщений, опубликованных Джонни.

Наш бот должен уметь интерпретировать каждое событие и реагировать соответствующим образом.

До сих пор мы не показывали вам какой-либо конкретный код, но в следующих шагах мы объясним процесс, а затем покажем очень упрощенные примеры Express/Node.js того, как должна выглядеть логика вашего приложения. Эти примеры легко переводятся на большинство современных языков программирования.

Получение событий

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

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

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

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

Ответы на упоминания с помощью Web API

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

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

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

Для этого используйте текстовое поле из полезной нагрузки события, которое содержит текст сообщения, в котором содержалось упоминание. Когда в тексте упоминается бот и есть слова "скажите мне шутка», — ответит бот; иначе он просто будет молчать.

Вот как может выглядеть пример кода с такой логикой:

При вызове chat.postMessage отправляется первая строка шутки:

Чтобы отправить это, ваше приложение должно использовать этот метод API с токеном, который вы сохранили ранее. Вот пример запроса:

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

Итак, ваш бот произнес эти первые волшебные слова, и вы можете предположить, что пользователь ответит стандартным "Кто там?" отклик. Давайте узнаем, как продолжить шутку.

Ответ на другие сообщения

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

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

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

Опять же, давайте предположим шаблон шуток "тук-тук": первый ответ пользователя всегда будет "Кто там?", а второй ответ пользователя всегда будет "____ кто?". Таким образом, вы можете проверять сообщения, содержащие эти слова, и использовать правильный ответ бота для каждого из них. Если вы видите какие-либо сообщения, не содержащие ни одной из этих фраз, игнорируйте их.

Добавив к коду из предыдущих шагов, вы получите что-то вроде этого:

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

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

Создание более сложных ботов

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

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

Отслеживание разговоров

В нашем примере бота мы использовали упоминание в качестве триггерной точки для определенного разговора, но вы заметите, что ваш бот по-прежнему будет отвечать, если вы пропустите некоторые шаги, например, если наберете Who's there? , ваш бот ответит на это сообщение пользователем бота , даже если вы не упомянули бота или не начали беседу с самого начала.

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

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

Трансированные сообщения

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

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

Варианты формулировки

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

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

Интеграция с другими сервисами

Настоящая магия бота проявляется, когда он связан с внешними службами, предоставляя им бесшовный диалоговый интерфейс из Slack.

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

Ограничения

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

Методы API, доступные ботам

Пользователи-боты и токены ботов можно использовать с немного ограниченным набором методов веб-API. Эти методы показаны ниже:

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

Сложность

Продолжительность

Что вам нужно

Хотя автоматизация является основной причиной использования бота Discord, вы действительно можете запрограммировать его так, чтобы он делал что угодно (по крайней мере, все, что вы можете втиснуть в код JavaScript). Вам также не нужны какие-либо знания в области программирования, чтобы начать работу. Наше руководство поможет вам начать создавать собственных ботов Discord, даже если вы никогда раньше не работали с кодом.

Как создать Discord-бота

Шаг 1. Загрузите Node.js и настройте учетную запись Discord.

Вам также понадобится программа текстового редактора, например Notepad++ для Windows, для написания кода.

Шаг 2. Теперь вам нужно создать приложение в Discord, чтобы ваш бот заработал. Это требует немного усилий, но это не слишком сложно. Цель здесь — получить токен авторизации для бота, чтобы Discord распознал ваш код и добавил его в бот на своих серверах.

Теперь в меню справа выберите Бот. В новом меню нажмите Добавить бота в разделе Создать бота. Если у вас есть только одно приложение — то, которое мы только что сделали, — оно должно появиться автоматически. В противном случае выберите его.

Шаг 3. В поле с пометкой Пользователь бота приложения найдите слова Токен: нажмите, чтобы показать. Нажмите на эту ссылку, и вы увидите строку текста. Это токен авторизации вашего бота, который позволяет вам отправлять ему код. Не делитесь им ни с кем — этот токен позволяет любому, у кого он есть, создавать код для бота, а это значит, что тот, у кого он есть, может управлять вашим ботом. Если вы считаете, что токен был скомпрометирован, хорошая новость заключается в том, что вы можете легко создать новый с помощью кнопки Создать новый токен. Отметьте свой токен. Он понадобится вам через секунду.

Шаг 4. Теперь прокрутите вверх до поля с пометкой Сведения о приложении и найдите свой идентификатор клиента (длинное число). Скопируйте номер и добавьте его в этот URL вместо слова CLIENTID.

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

Шаг 5. Пока вы это делаете, вы также можете создать папку в легкодоступном месте на своем компьютере, где вы сможете хранить все файлы своего бота. Назовите его как-нибудь просто, например «DiscordBot» или «MyBot», чтобы вы точно знали, что это такое.

Шаг 6. Вы создадите три файла для своего бота в текстовом редакторе. В первое вставьте этот код:

«токен»: «Токен вашего бота»

Замените «Токен вашего бота» на токен, который вы создали ранее на странице приложения вашего бота. Убедитесь, что токен находится внутри кавычек. Затем сохраните файл в папке бота Discord, которую вы создали на рабочем столе, используя имя файла «auth.json». Не забудьте сохранить его как файл .txt — он не будет работать, если это .txt вместо .json.

Создайте новый файл и вставьте в него этот код:

«description»: «Мой первый Discord-бот»,

"автор": "Ваше имя",

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

Сохраните этот файл как package.json в папке бота Discord.

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

(Спасибо пользователю Medium Ренемари Падилло, чье руководство по созданию бота помогло нам создать это. Ознакомьтесь с его руководством, чтобы узнать об устранении неполадок в коде и получить другие советы.)

var Discord = require('discord.io');

var logger = require('winston');

var auth = require('./auth.json');

// Настраиваем параметры регистратора

// Инициализировать бота Discord

var bot = новый Discord.Client(

bot.on('готово', функция (evt)

bot.on('сообщение', функция (пользователь, идентификатор пользователя, идентификатор канала, сообщение, событие)

Этот код устанавливает бота Discord, который будет отвечать на определенные сообщения, в частности, на все, что начинается с «!» персонаж. В частности, мы программируем бота так, чтобы он реагировал на команду «!intro», поэтому, если кто-то введет ее на вашем сервере, пока на нем находится бот, бот ответит запрограммированным сообщением. В нашем коде мы определили сообщение как «Приветствую! Добро пожаловать на сервер!» Вы можете изменить как подсказку, так и ответное сообщение, переопределив их в приведенном выше коде. Просто убедитесь, что сообщения заключены в одинарные кавычки.

Сохраните этот последний текстовый файл как «bot.js» в папке бота Discord.

Шаг 8. На ПК с Windows вы можете легко открыть командную строку, щелкнув значок Windows и введя в поле «Командная строка». Когда он откроется, введите «cd», а затем путь к папке. На нашем тестовом компьютере команда выглядит так: «c:UsersPhil’s DesktopDesktopDiscordBot». Это должно изменить строку командной строки, чтобы включить путь к вашей папке.

Кроме того, вы можете перейти к своей папке в Windows и, удерживая Shift, щелкнуть правой кнопкой мыши пустую область папки, а затем выбрать Открыть командную строку.. р>

Шаг 9. Пришло время использовать Node.js. В командной строке с папкой бота Discord в строке пути к файлу введите «npm install discord.io winston –save». Это автоматически установит файлы, необходимые для вашего бота Discord, прямо в папку.

Это должно обеспечить вас всеми необходимыми файлами.

Шаг 10. Теперь вы готовы к работе. Чтобы попробовать запустить бота, введите «node bot.js» в командной строке (убедитесь, что вы все еще находитесь в папке бота Discord).

Чтобы проверить функциональность своего бота, вернитесь на свой сервер Discord и попробуйте ввести «!intro» или «!» за которым следует сообщение с подсказкой, которое вы создали в файле «bot.js». Если вы правильно закодировали своего бота, отправив эту команду, ваш бот ответит вам установленным сообщением.

Поздравляем, вы гордитесь тем, что создали бота Discord.

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

Вы можете искать в Google базы данных, а также конкретных ботов Discord. Вы также можете попробовать посмотреть Top.gg (ранее Discordbots) или Bots.ondiscord.xyz.

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