Блог компанії 3v-Hosting

Як створити бота в Discord

Загальне

7 хв.


Discord став основним осередком для онлайн-спільнот - від ігрових кланів і груп програмістів до навчальних колективів і підприємств. Особливістю платформи є підтримка ботів. Боти - це автоматизовані скрипти, які можуть модерувати сервери, програвати музику, публікувати меми та виконувати користувацькі завдання. У цій технічній статті ви дізнаєтеся, як створити бота Discord з нуля, включно з процесом кодування, хостингом, дозволами та стратегіями розгортання.

Ця стаття призначена для технічно підкованих читачів, які хочуть отримати покрокове розуміння теми. Якщо ви бекенд-розробник, інженер DevOps або любитель-кодер, цей посібник із бота Discord проведе вас через усі основні компоненти, необхідні для створення бота, що відповідає вашим потребам.

 

 

 

 

Розуміння архітектури бота Discord

 

Перш ніж писати будь-який код, необхідно зрозуміти, що таке бот Discord. Бот - це особливий тип облікового запису користувача, керований не людиною, а через API Discord. Бот підключається до серверів Discord через шлюз WebSocket, слухає певні події (наприклад, нові повідомлення, приєднання користувача) і реагує відповідним чином, використовуючи запрограмовану логіку.

Боти Discord створюються за допомогою API для розробників, що надаються Discord. Для аутентифікації та взаємодії із серверами їм потрібен дійсний токен. Ви можете написати бота різними мовами програмування, такими як JavaScript, Python або TypeScript. Node.js і Discord.js - одні з найпопулярніших варіантів.

 

 

 

 

Створення бота на порталі розробників Discord

 

Для початку необхідно створити бот-додаток на офіційному порталі розробників Discord:

    1. Перейдіть за адресою https://discord.com/developers/applications.
    2. Натисніть на «Новий додаток» і дайте боту ім'я.
    3. Усередині програми перейдіть у розділ «Бот» і натисніть «Додати бота».
    4. Буде згенеровано токен бота. Цей токен дуже важливий - ніколи не повідомляйте його. Це ключ до управління ботом.

 

Після створення бот існує як сутність, але він нічого не робить, поки ви не додасте його на сервер і не надасте логіку його поведінки.

 

 

 

 

Як додати бота на сервер Discord

 

Щоб інтегрувати бота на сервер, необхідно згенерувати URL-адресу запрошення OAuth2 з відповідними діапазонами та дозволами:

    1. Перейдіть у розділ OAuth2 → Генератор URL.
    2. У розділі Scopes виберіть bot.
    3. У розділі «Дозволи бота» виберіть такі дозволи, як:
        - Читати повідомлення
        - Надсилати повідомлення
        - Керувати повідомленнями
        - Вставляти посилання
        - Інші залежно від вашого сценарію використання.
    4. Скопіюйте згенерований URL і відкрийте його в браузері.
    5. Виберіть сервер, до якого ви хочете приєднати бота (у вас мають бути права «Керування сервером»).

 

Ось як додати бота Discord на сервер. Після додавання бот може почати виконувати дії залежно від логіки, яку ви визначите у своїй кодовій базі.

 

 

 

 

Налаштування середовища розробки

 

Давайте перейдемо до того, як написати бота Discord за допомогою Node.js і бібліотеки Discord.js:
Вимоги:

    - Встановлений Node.js (рекомендується версія LTS)
    - Редактор коду, наприклад Visual Studio Code
    - Базові навички роботи з командним рядком

 


Кроки:

    mkdir my-discord-bot
    cd my-discord-bot
    npm init -y
    npm install discord.js dotenv


Створіть файл .env для токена вашого бота:

    DISCORD_BOT_TOKEN=ваш_бот_токен_тут


Створіть файл index.js із таким вмістом:

    require('dotenv').config();
    const { Client, GatewayIntentBits } = require('discord.js');

    const client = new Client({
      intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent
      ]
    });

    client.once('ready', () => {
      console.log(`Logged in as ${client.user.tag}`);
    });

    client.on('messageCreate', message => {
      if (message.content === '!ping') {
        message.channel.send('Pong!');
      }
    });

    client.login(process.env.DISCORD_BOT_TOKEN);


Запустіть свого бота, використовуючи:

    node index.js

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

 


 

Інші корисні статті в нашому Блозі:


    - Як встановити Discord в Ubuntu: Три Методи

    - IP-адреса Minecraft Hypixel — повний посібник з Hypixel

    - Скорий кінець Midjourney? Google Bard тепер генерує картинки.

    - Вибір веб-хостингу для стартапів з невеликим бюджетом

 


 

 

Розширення бота: команди та події

 

Щойно бот почне працювати, ви можете структурувати свій код для обробки безлічі команд. Ви можете використовувати систему обробників команд, яка зчитує всі .js-файли з папки commands/ і виконує їх динамічно.

Приклад командного файлу: commands/ping.js

    module.exports = {
      name: 'ping',
      execute(message) {
        message.channel.send('Pong again!');
      }
    };

 


Приклад обробника:

    const fs = require('fs');
    client.commands = new Map();

    const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
    for (const file of commandFiles) {
      const command = require(`./commands/${file}`);
      client.commands.set(command.name, command);
    }

    client.on('messageCreate', message => {
      const args = message.content.slice(1).trim().split(/ +/);
      const commandName = args.shift().toLowerCase();
      const command = client.commands.get(commandName);

      if (command) command.execute(message, args);
    });

 

Цей модульний підхід є зручнішим для обслуговування та масштабованішим для великих ботів.

 

 

 

 

Розміщення бота

 

Для забезпечення постійної працездатності бота вам необхідно розмістити його на сервері. Варіанти включають:

    Самостійний хостинг - використання VPS зі встановленим Node.js. Ідеально підходить для навчання та контролю. Саме тут розуміння того, як запустити бота в Discord, переходить у системне адміністрування.
    Хмарні платформи - наприклад, Heroku, Replit або Railway. Ці платформи зручні для новачків і пропонують безкоштовні рівні.
    Docker - упакуйте бота в контейнер Docker і розгорніть його за допомогою Kubernetes або Docker Compose.

 


Приклад Dockerfile:

    FROM node:18-alpine
    WORKDIR /app
    COPY . . .
    RUN npm install
    CMD ["node", "index.js"]

 

 

 

 


Робота з дозволами та безпекою

 

При створенні власного бота Discord завжди обмежуйте дозволи. Надавайте боту тільки ті можливості, які йому абсолютно необхідні. Ніколи не вводьте токен у кодбазу - використовуйте змінні оточення.

Щоб обмежити використання команд бота тільки адміністраторами:

    if (!message.member.permissions.has("Administrator")) {
        return message.channel.send("У вас немає дозволу на використання цієї команди.");
    }

Крім того, реалізуйте обробку помилок і ведення логів для ботів продакшн-класу.

 

 

 

 

Приклади популярних функцій

 

Ось кілька ідей, які допоможуть підвищити цінність вашого бота:

    Команди модерації: кік, бан, вимкнення звуку
    Музичний плеєр: використання пакетів на кшталт discord-player або erela.js
    Користувацькі привітальні повідомлення: на подію guildMemberAdd
    Опитування: користувачі реагують на повідомлення за допомогою емодзі
    Інтеграція із зовнішніми API: погода, новини, криптовалюта

 

Тільки-но ви опануєте основи, розширення вашого бота стане захопленням. Ви можете навіть взаємодіяти з базами даних, планувати завдання або взаємодіяти з REST API.

 

 

 

 

Найкращі практики розгортання

 

Якщо ваш бот набирає користувачів, ставтеся до нього як до виробничого сервісу:

    - Слідкуйте за часом роботи та помилками (використовуйте інструменти PM2, Sentry або Grafana)
    - Постійно оновлюйте залежності
    - Використовуйте контроль версій (GitHub)
    - Пишіть модульні тести для основних команд
    - Використовуйте інструменти для лінтингу та форматування, як-от ESLint та Prettier
    - Автоматизуйте розгортання за допомогою конвеєрів CI/CD

 

Що надійнішим та міцнішим буде ваш бот, то більшою буде довіра до нього у користувачів.

 

 

 

 

Висновок

Тепер ви знаєте, як створити свого власного бота для Discord, починаючи з налаштування порталу розробника і закінчуючи написанням модульного коду, додаванням команд і розміщенням бота на сервері. Процес створення музичного бота, помічника модератора або бота для розваги проходить за тими ж технічними етапами.

Цей посібник зі створення бота Discord лише поверхневий. Існує процвітаюча спільнота розробників ботів і нескінченні можливості для інновацій. Уміння створювати бота Discord - цінна навичка, яку можна включити до свого портфоліо розробника.