В приложении Oauth2 нет ошибки разногласия с ботом

Обновлено: 21.11.2024

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

Предпосылки

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

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

Настройка бота для разногласий

Во-первых, нам нужно создать новое приложение на портале разработки Discord.

Мы можем сделать это, посетив портал и нажав новое приложение.

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

После этого нам нужно дать нашему приложению имя и нажать кнопку "Создать".

Создание бота для разногласий

После этого нам нужно выбрать вкладку бота и нажать добавить бота.

Информационная страница Discord-бота

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

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

После создания нашего бота мы можем пригласить его с помощью генератора URL-адресов OAuth2.

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

Вкладка OAuth2

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

Предоставление боту Discord необходимых разрешений

Затем мы можем скопировать сгенерированный URL-адрес и вставить его в наш браузер.

Ссылка для приглашения бота Discord

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

Пригласить бота на сервер

Создание нашего проекта

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

Сначала мы создаем каталог и переходим в него. Мы можем сделать это с помощью этих двух команд.

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

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

Теперь нам просто нужно открыть наш проект в текстовом редакторе. Я лично использую VS Code и могу открыть его с помощью следующей команды.

Основы Discord js

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

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

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

Копировать токен

Это единственное, что нам нужно сделать в нашем файле config.json. Итак, давайте начнем писать наш код JavaScript.

Во-первых, нам нужно импортировать все наши зависимости.

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

Теперь давайте добавим несколько простых слушателей, которые будут регистрироваться в console.log при их выполнении.

После этого мы можем запустить нашего бота с помощью команды узла, и он должен быть в сети в дискорде и вывести «Готово!» в консоли.

Чтение сообщений

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

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

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

Теперь нам нужно проверить, исходит ли сообщение от нашего собственного бота, и проигнорировать его, если это так.

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

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

После этого мы можем проверить, какую команду нам нужно выполнить. Мы можем сделать это, используя несколько простых операторов if.

В этом блоке кода мы проверяем, какую команду выполнять, и вызываем команду. Если команда ввода недействительна, мы пишем сообщение об ошибке в чат, используя функцию send() .

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

Добавление песен

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

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

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

Теперь мы можем продолжить получение информации о песне и сохранить ее в объект песни. Для этого мы используем нашу библиотеку ytdl, которая получает информацию о песне по ссылке на YouTube.

Это позволит получить информацию о песне с помощью библиотеки ytdl , которую мы установили ранее. Затем мы сохраняем необходимую информацию в объект песни.

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

Здесь мы проверяем, пуста ли serverQueue , и добавляем в нее песню, если это не так. Теперь нам просто нужно создать наш контракт, если serverQueue нуль.

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

Воспроизведение песен

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

Сначала мы создадим функцию play, которая принимает два параметра (гильдия и песня, которую мы хотим воспроизвести) и проверяет, пуста ли песня. Если это так, мы просто покинем голосовой канал и удалим очередь.

После этого мы начнем воспроизводить нашу песню, используя функцию соединения play() и передав URL-адрес нашей песни.

Здесь мы создаем поток и передаем ему URL-адрес нашей песни. Мы также добавляем два слушателя, которые обрабатывают события конца и ошибки.

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

Теперь мы готовы воспроизвести песню, просто набрав !play URL в чате.

Пропуск песен

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

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

Остановка песен

Функция stop() почти аналогична функции skip() за исключением того, что мы очищаем массив песен, что заставит нашего бота удалить очередь и выйти из голосового чата.

Полный исходный код index.js:

Здесь вы можете получить полный исходный код нашего музыкального бота:

Заключение

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

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

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

Бэкэнд Discord работает аналогично Slack; сообщения приходят от Discord через WebSocket, постоянно отслеживая каналы, на которые добавлен бот. Ответы отправляются обратно в Discord через вызов REST API. Список каналов и пользователей также обрабатывается через REST.

Предпосылки

Создать приложение в Discord

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

3. При появлении запроса укажите запоминающееся имя для своего бота, затем нажмите фиолетовую кнопку "Создать" в правом нижнем углу:

4. Вы будете помещены на страницу общей информации для вашего приложения. Скопируйте идентификатор клиента, указанный на этой странице, в текстовый редактор, чтобы использовать его позже. 5. В меню слева выберите раздел «Бот», затем нажмите фиолетовую кнопку «Добавить бота»:

6. Вы попадете на страницу Build-A-Bot.

Авторизуйте своего бота

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

На странице Build-A-Bot.

Найдите свой идентификатор гильдии (идентификатор сервера)

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

  1. В Discord откройте настройки пользователя, нажав шестеренку настроек рядом с вашим именем пользователя внизу.
  2. Перейдите в раздел "Внешний вид" и включите режим разработчика в разделе "Дополнительно", затем закройте настройки пользователя.
  3. Откройте свой сервер Discord, щелкните правой кнопкой мыши имя сервера и выберите "Копировать ID".
  4. Вставьте идентификатор сервера в текстовый редактор, чтобы использовать его позже.
  5. При желании вы можете отключить режим разработчика прямо сейчас.

Создать сценарий запуска PoshBot

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

Запустить PoshBot

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

Следуйте приведенным ниже инструкциям, чтобы установить приложение BotKube Discord на свой сервер Discord.

Создайте приложение BotKube на своем сервере Discord

Создайте «Новое приложение» с именем BotKube и добавьте в него бота с именем BotKube.

Скопируйте идентификатор КЛИЕНТА приложения и поместите его под discord.botid в comm-config.yaml.

И установить значок BotKube (значок BotKube можно скачать по этой ссылке).

Нажмите «Сохранить изменения», чтобы обновить бота.

Теперь перейдите на страницу бота и нажмите «Добавить бота», чтобы добавить бота Discord в свое приложение.

После создания бота теперь вы можете видеть, что бот добавлен в ваше приложение. Нажмите «Показать токен», скопируйте и поместите его под discord.token в comm-config.yaml.

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

сгенерированный URL-адрес содержит YOUR_CLIENT_ID, сведения о области действия и разрешениях.

Скопируйте и вставьте сгенерированный URL-адрес в новую вкладку, выберите сервер разногласий, на который вы хотите добавить бота, нажмите «Продолжить» и «Разрешить добавление бота».

Респект вам. вы успешно добавили бота BotKube на свой сервер.

Теперь установите серверную часть BotKube в свой кластер Kubernetes.

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

Установите серверную часть BotKube в кластере Kubernetes

Использование шлема

Мы будем использовать helm для установки BotKube в Kubernetes. Следуйте этому руководству, чтобы установить helm, если он еще не установлен.

Добавить репозиторий инфраоблачных диаграмм

Разверните серверную часть BotKube с помощью установки helm в своем кластере

  • DISCORD_CHANNEL_ID – это имя канала, на который @BotKube должен отправлять уведомления.
  • DISCORD_BOT_ID – это идентификатор клиента приложения BotKube.
  • DISCORD_TOKEN — это токен, который вы получили после добавления бота BotKube в свое приложение Discord.
  • CLUSTER_NAME – это имя кластера, указанное во входящих сообщениях.
  • ALLOW_KUBECTL задайте значение true, чтобы разрешить выполнение команды kubectl BotKube в кластере.

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

Отправьте @BotKube эхо-запрос в канале, чтобы узнать, работает ли BotKube и отвечает ли он.

В конфигурации по умолчанию BotKube будет отслеживать все ресурсы во всех пространствах имен на наличие событий create, delete и error. Если вы хотите отслеживать только определенные ресурсы, выполните следующие действия:

Создайте новый файл config.yaml и добавьте конфигурацию ресурсов, как описано на странице конфигурации.

Передайте файл yaml в качестве флага для запуска команды установки. например

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

Использование kubectl

  • Убедитесь, что у вас установлен kubectl cli и у вас есть доступ к кластеру Kubernetes.
  • Загрузить спецификации развертывания в формате yaml
  • Откройте загруженный файл deploy-all-in-one.yaml и обновите конфигурацию. Установите DISCORD_ENABLED, DISCORD_BOTID, DISCORD_CHANNEL, DISCORD_TOKEN, имя_кластера, kubectl .enabled и обновите конфигурацию событий ресурса, для которых вы хотите получать уведомления в configmap.
  • DISCORD_CHANNEL_ID – это имя канала, на который @BotKube должен отправлять уведомления.
  • DISCORD_BOT_ID – это идентификатор клиента приложения BotKube.
  • DISCORD_TOKEN — это токен, который вы получили после добавления бота BotKube в свое приложение Discord.
  • CLUSTER_NAME – это имя кластера, указанное во входящих сообщениях.
  • ALLOW_KUBECTL задайте значение true, чтобы разрешить выполнение команды kubectl BotKube в кластере.

Здесь объясняется синтаксис конфигурации.

  • Проверьте статус модуля в пространстве имен botkube. После запуска отправьте @BotKube ping в канале Discord, чтобы убедиться, что BotKube отвечает правильно.

Удалить BotKube с сервера Discord

  • Перейти на страницу приложений Discord Developers Portel
  • Нажмите «BotKube» и нажмите кнопку «Удалить приложение».

Удалить BotKube из кластера Kubernetes

Использование шлема

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

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

Ну, я здесь, чтобы показать вам, как!

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

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

Оглавление

Что такое токен Discord Bot?

Токен Discord Bot – это короткая фраза (представленная в виде набора букв и цифр), которая действует как "ключ" для управления Discord Bot. Токены используются внутри кода бота для отправки команд туда и обратно в API, который, в свою очередь, управляет действиями бота. Никогда никому не передавайте свой Discord-токен бота.

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

Вот точные шаги, которые вам необходимо предпринять.

Пошаговое создание токена

1. Перейдите на портал разработчиков Discord

На этом портале показаны все ваши приложения и боты.

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

2. Дайте вашему боту имя

Здесь вам будет предложено дать вашему приложению (боту) имя.

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

3. Оживите своего бота с помощью значка и описания

Отлично! Вы создали свое первое приложение Discord! Осталось только оживить бота, дав ему описание и значок...

Оптимальный размер значка вашего бота — 1024 x 1024 пикселя, но вы можете уменьшить размер и добиться более качественных результатов. Лично я чаще всего выбираю 512 × 512 (в зависимости от выбранных значков).

В IconFinder есть огромная коллекция удивительных значков.

Мой бот называется «Мастер токенов», поэтому я хочу найти значок, каким-то образом связанный с токеном…

Первое, что я сделал, это зашел в IconFinder и набрал «токен»:

Мы получили кучу результатов. Лично мне нравится стиль значков «FLAT», и я думаю, что он выглядит очень хорошо, поэтому я отфильтровал по Flat:

Хорошо, вот хорошая иконка — я возьму ее и нажму "Скачать PNG".

Затем я загрузил этот значок в Discord и нажал зеленую кнопку «Сохранить изменения».

"The Token Master" уже выглядит намного лучше!

4. Получите свой токен

Ваш следующий шаг — открыть меню в левой части экрана и нажать "Бот". Этот значок выглядит как кусочек головоломки.

Теперь вы хотите нажать синюю кнопку "Добавить бота"

.

Нажмите кнопку "Да, сделайте это!" кнопка…

Вы увидите зеленое сообщение "Появился дикий бот!"

Вы также увидите "Токен" и синюю ссылку "Нажмите, чтобы показать токен", по которой можно щелкнуть,

Как только вы нажмете на эту ссылку, ваш токен будет раскрыт…

И все! У вас есть токен!

Однако следующим естественным шагом будет добавление вашего бота на ваш сервер Discord.

5. Добавьте своего бота на сервер Discord

Чтобы добавить своего бота на свой сервер Discord, вам нужно вернуться на вкладку «OAuth2».

Оказавшись там, прокрутите вниз до раздела «Генератор URL-адресов Oauth2». В разделе "Области" установите флажок "Бот".

Вы заметите, что URL-адрес появился, как только вы нажали «бот» — это будет ваш URL-адрес для добавления вашего бота на сервер.

Но это еще не все!

Прокрутите вниз до раздела «Разрешения для ботов». Здесь вы выбираете, какие разрешения дать боту и что он может и не может делать.

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

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

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

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

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

Скорее всего, на следующем экране вы увидите сообщение с капчей "Я не робот". Решите капчу и продолжите.

Успех! Ваш бот авторизован, и вы должны увидеть его в списке участников на вашем сервере!

Это было не так сложно, не так ли? Вы успешно создали токен бота Discord и добавили своего бота на сервер!

… осталось только запрограммировать бота и воплотить его в жизнь.

Помните: защитите свой токен ЛЮБОЙ ЦЕНОЙ!

Ваш ЖЕЛЕЗ — это ключ к королевству, когда дело касается вашего бота…

Если кто-то украдет ваш токен, он может заставить вашего бота делать все, что захочет — по сути, «взломать» вашего бота.

Вы этого не хотите.

Будьте особенно осторожны, чтобы НЕ делиться своим токеном. И если у вас есть созданный вами код бота, который использует ваш токен, убедитесь, что при совместном использовании кода (или его публичной загрузке, например, на GitHub) вы не указали свой токен!

И это все!

И в заключение: если вы хотите иметь возможность создавать потрясающую графику и иметь невероятные значки для своих ботов Discord, я бы порекомендовал приобрести IconFinder Premium со скидкой 50 %.

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