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

Этот гайд был полезен?