Како да направите Discord бот
На оваа страница
Discord бот е програма што се најавува на Discord со сопствена сметка и одговара на команди, модерира, игра игри или објавува новости. За да направите бот ви требаат три работи: апликација во Developer Portal на Discord, неколку линии код и место каде тој код ќе работи.
Овој водич гради функционален бот со slash команда /ping, во Python (discord.py) или JavaScript (discord.js) — изберете го јазикот што го знаете.
Чекор 1: Создајте ја апликацијата и токенот на ботот
- Отворете го Developer Portal. Одете на discord.com/developers/applications, создајте нова апликација и дајте ѝ име.
- Земете го токенот. На страницата Bot кликнете Reset Token и копирајте го. Discord го прикажува само еднаш; ако го изгубите, ресетирајте го повторно.
- Чувајте го токенот во тајност. Тој е лозинката на ботот: кој и да го има, го контролира вашиот бот. Никогаш не го вметнувајте во код што го споделувате и не го праќајте во Git.
Чекор 2: Поканете го ботот на вашиот сервер
- Отворете ја страницата Installation на вашата апликација.
- Во стандардните поставки за инсталација на сервери додајте ги scopes
botиapplications.commands, како и дозволите што му требаат на ботот — Send Messages е доволно за овој водич. - Отворете го добиениот линк за инсталација, изберете го серверот и одобрете. Ботот се појавува во листата на членови, офлајн додека не се стартува вашиот код.
Постарите упатства користат OAuth2 > URL Generator со истите два scopes; тоа сè уште функционира.
Чекор 3а: Напишете го ботот во 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.
Чекор 3б: Напишете го ботот во 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пред првиот commit. - Ако токенот протече, ресетирајте го веднаш на страницата Bot. Стариот токен престанува да работи, а новиот го ажурирате таму каде што работи ботот.
- GitHub ги скенира јавните репозиториуми за токени на Discord ботови и ги пријавува на Discord, кој може да ги поништи — па токен објавен по грешка често престанува да работи пред да забележите.
Чекор 4: Држете го ботот онлајн
Вашиот бот е онлајн само додека работи неговиот код. Затворете го терминалот или исклучете го компјутерот и тој оди офлајн. Имате три опции:
- Вашиот компјутер — бесплатно, добро за развој и тестирање, но ботот спие кога спие и компјутерот.
- Бесплатен план — повеќето ги паузираат или ограничуваат ботовите што работат цел месец; компромисите се споредени во бесплатен хостинг за Discord ботови.
- Хостинг за ботови — мал сервер што е секогаш вклучен. На HytHost хостинг за Discord ботови го прикачувате проектот, избирате Node.js, Python или друг runtime, а панелот го стартува ботот и го рестартира ако падне.
Целото упатство, од прикачување до автоматско рестартирање, е во како да хостирате Discord бот 24/7.
Стартувајте го ботот без да го оставате компјутерот вклучен: HytHost хостингот за Discord ботови поддржува Node.js, Python, Java, Go, C#, Bun и Lavalink — од €0.89/мес.
Видете ги плановите за ботовиЧесто поставувани прашања
Да. Создавањето на апликацијата, токенот и кодот не чини ништо, а discord.py и discord.js се бесплатни. Плаќате само ако сакате да го хостирате некаде каде што ќе остане онлајн.
Што и да веќе знаете. discord.py и discord.js се зрели и го покриваат целиот Discord API. Ако не знаете ниту едно, Python се чита поедноставно; JavaScript има поголем екосистем на библиотеки.
Проверете дали сте го поканиле со scope applications.commands и дали кодот ги синхронизирал командите. На глобалните команди може да им треба малку време да се појават; ако не се појават, рестартирајте го Discord.
За читање обичен текст на пораки е потребен intent Message Content, вклучен во Developer Portal и побаран во кодот. Без него ботот сепак прима slash команди, спомнувања и директни пораки.
Ресетирајте го веднаш на страницата Bot во Developer Portal. Стариот токен престанува да работи; ставете го новиот таму каде што работи ботот и отстранете го стариот од кодот или историјата.
Вашиот бот, онлајн без вашиот компјутер
HytHost хостингот за Discord ботови работи со 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Дали овој водич ви беше корисен?