Discord · Гайд

Як створити бота для Discord

Оновлено October 10, 2026 4 хв читання

На цій сторінці
  1. Крок 1: Створіть застосунок і токен бота
  2. Крок 2: Запросіть бота на свій сервер
  3. Крок 3a: Напишіть бота на Python (discord.py)
  4. Крок 3b: Напишіть бота на JavaScript (discord.js)
  5. Не зберігайте токен у коді
  6. Крок 4: Тримайте бота онлайн
  7. FAQ

Бот для Discord — це програма, яка входить у Discord під власним обліковим записом і відповідає на команди, модерує, запускає ігри або публікує оновлення. Щоб його зробити, потрібні три речі: застосунок у Developer Portal від Discord, кілька рядків коду та місце, де цей код працюватиме.

У цьому посібнику ми зберемо робочого бота зі слеш-командою /ping на Python (discord.py) або JavaScript (discord.js) — оберіть мову, яку знаєте.

Крок 1: Створіть застосунок і токен бота

  1. Відкрийте Developer Portal. Перейдіть на discord.com/developers/applications, створіть новий застосунок і дайте йому назву.
  2. Отримайте токен. На сторінці Bot натисніть Reset Token і скопіюйте його. Discord показує токен лише один раз; якщо ви його втратите, скиньте його знову.
  3. Тримайте токен у секреті. Це пароль бота: будь-хто, у кого він є, керує вашим ботом. Ніколи не вставляйте його в код, яким ділитеся, і не комітьте його в Git.
Чи потрібні intents? Боту, який використовує лише слеш-команди, привілейовані intents не потрібні. Вмикайте Message Content на сторінці Bot, лише якщо бот має читати те, що люди пишуть у звичайних повідомленнях. Ботам на серверах із загальною кількістю користувачів понад 10 000 для привілейованих intents потрібне схвалення Discord.

Крок 2: Запросіть бота на свій сервер

  1. Відкрийте сторінку Installation вашого застосунку.
  2. У стандартних налаштуваннях встановлення для серверів (guilds) додайте scopes bot і applications.commands та потрібні боту дозволи — для цього посібника достатньо Send Messages.
  3. Відкрийте отримане посилання для встановлення, оберіть сервер і підтвердьте. Бот з'явиться у списку учасників — офлайн, доки не запущено ваш код.

У старих туторіалах використовується OAuth2 > URL Generator з тими самими двома scopes; цей спосіб досі працює.

Крок 3a: Напишіть бота на Python (discord.py)

Для discord.py 2.7 потрібен Python 3.8 або новіший. Встановіть бібліотеку та створіть bot.py:

pip install discord.py
import os
import discord
from discord import app_commands

class Bot(discord.Client):
    def __init__(self):
        super().__init__(intents=discord.Intents.default())
        self.tree = app_commands.CommandTree(self)

    async def setup_hook(self):
        await self.tree.sync()

bot = Bot()

@bot.tree.command(description="Replies with Pong!")
async def ping(interaction: discord.Interaction):
    await interaction.response.send_message("Pong!")

bot.run(os.environ["DISCORD_TOKEN"])

Запустіть його з токеном у змінній середовища, наприклад DISCORD_TOKEN=your-token python bot.py у Linux або macOS.

Крок 3b: Напишіть бота на JavaScript (discord.js)

Для discord.js 14 потрібен Node.js 18 або новіший. У новій папці виконайте npm install discord.js і створіть index.js:

const { Client, Events, GatewayIntentBits, REST, Routes, SlashCommandBuilder } = require('discord.js');

const commands = [new SlashCommandBuilder().setName('ping').setDescription('Replies with Pong!').toJSON()];
const client = new Client({ intents: [GatewayIntentBits.Guilds] });

client.once(Events.ClientReady, async (c) => {
  await new REST().setToken(process.env.DISCORD_TOKEN).put(Routes.applicationCommands(c.user.id), { body: commands });
  console.log(`Logged in as ${c.user.tag}`);
});

client.on(Events.InteractionCreate, async (interaction) => {
  if (interaction.isChatInputCommand() && interaction.commandName === 'ping') await interaction.reply('Pong!');
});

client.login(process.env.DISCORD_TOKEN);

Запустіть його командою DISCORD_TOKEN=your-token node index.js. Коли в консолі з'явиться Logged in, введіть /ping на своєму сервері.

Не зберігайте токен у коді

  • Використовуйте змінну середовища або файл .env і додайте .env до .gitignore перед першим комітом.
  • Якщо токен витік, скиньте його одразу на сторінці Bot. Старий токен перестає працювати, а новий ви вказуєте там, де запущено бота.
  • GitHub сканує публічні репозиторії на токени ботів Discord і повідомляє про них Discord, який може їх відкликати, — тому випадково опублікований токен часто перестає працювати раніше, ніж ви це помітите.

Крок 4: Тримайте бота онлайн

Бот онлайн лише доки працює його код. Закрийте термінал або вимкніть ПК — і він перейде в офлайн. Є три варіанти:

  • Власний ПК — безкоштовно, підходить для розробки й тестів, але бот спить, коли спить комп'ютер.
  • Безкоштовний тариф — більшість присипляють або обмежують ботів, що працюють увесь місяць; компроміси порівняно в статті безкоштовний хостинг Discord-ботів.
  • Хостинг ботів — невеликий постійно увімкнений сервер. На хостингу Discord-ботів HytHost ви завантажуєте проєкт, обираєте Node.js, Python або інше середовище, а панель запускає бота й перезапускає його в разі збою.

Повна інструкція, від завантаження до автоперезапуску, — у посібнику як розмістити Discord-бота цілодобово.

Запускайте бота, не залишаючи ПК увімкненим: хостинг Discord-ботів HytHost підтримує Node.js, Python, Java, Go, C#, Bun і Lavalink — від €0.89/міс.

Переглянути тарифи
FAQ

Поширені запитання

Так. Створення застосунку, токена й коду нічого не коштує, а discord.py і discord.js безкоштовні. Платити потрібно, лише якщо ви хочете розмістити бота там, де він залишатиметься онлайн.

Ту, яку ви вже знаєте. discord.py і discord.js — зрілі бібліотеки, що покривають увесь API Discord. Якщо ви не знаєте жодної, Python читається простіше; у JavaScript більша екосистема бібліотек.

Перевірте, що ви запросили його зі scope applications.commands і що код синхронізував команди. Глобальним командам може знадобитися трохи часу, щоб з'явитися; якщо їх немає, перезапустіть Discord.

Для читання тексту звичайних повідомлень потрібен intent Message Content, увімкнений у Developer Portal і запитаний у коді. Без нього бот усе одно отримує слеш-команди, згадки та особисті повідомлення.

Одразу скиньте його на сторінці Bot у Developer Portal. Старий токен перестане працювати; вкажіть новий там, де запущено бота, і видаліть старий із коду чи історії.

Ваш бот онлайн без вашого ПК

Хостинг Discord-ботів HytHost запускає Node.js, Python, Java, Go, C#, Bun або Lavalink з базою даних MySQL і резервними копіями — від €0.89/міс.

Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hours

Цей гайд був корисним?