Kuidas teha Discordi botti
Sellel lehel
Discordi bot on programm, mis logib Discordi sisse oma kontoga ning vastab käskudele, modereerib, mängib mänge või postitab uudiseid. Selle tegemiseks on vaja kolme asja: rakendust Discordi Developer Portalis, paari rida koodi ja kohta, kus see kood töötab.
Selles juhendis ehitad töötava boti, millel on kaldkriipsukäsk /ping, kas Pythonis (discord.py) või JavaScriptis (discord.js) — vali keel, mida oskad.
1. samm: loo rakendus ja boti token
- Ava Developer Portal. Mine aadressile discord.com/developers/applications, loo uus rakendus ja anna sellele nimi.
- Hangi token. Klõpsa lehel Bot nuppu Reset Token ja kopeeri see. Discord näitab seda ainult üks kord; kui see kaob, lähtesta see uuesti.
- Hoia token salajas. See on boti parool: kellel see on, see juhib sinu botti. Ära kunagi kleebi seda koodi, mida jagad, ega commit’i seda Giti.
2. samm: kutsu bot oma serverisse
- Ava oma rakenduse leht Installation.
- Lisa serverite (guilds) vaikimisi installiseadetes scope’id
botjaapplications.commandsning õigused, mida bot vajab — selle juhendi jaoks piisab Send Messages. - Ava saadud installilink, vali oma server ja anna luba. Bot ilmub liikmete nimekirja, võrguühenduseta, kuni sinu kood käivitub.
Vanemad juhendid kasutavad samade kahe scope’iga OAuth2 > URL Generator; see töötab endiselt.
3a. samm: kirjuta bot Pythonis (discord.py)
discord.py 2.7 vajab Pythoni versiooni 3.8 või uuemat. Paigalda see ja loo 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"])
Käivita see nii, et token on keskkonnamuutujas, näiteks DISCORD_TOKEN=your-token python bot.py Linuxis või macOS-is.
3b. samm: kirjuta bot JavaScriptis (discord.js)
discord.js 14 vajab Node.js versiooni 18 või uuemat. Käivita uues kaustas npm install discord.js ja loo 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);
Käivita see käsuga DISCORD_TOKEN=your-token node index.js. Kui konsool näitab Logged in, kirjuta oma serveris /ping.
Hoia token koodist eemal
- Kasuta keskkonnamuutujat või faili
.envning lisa.envenne esimest commit’i faili.gitignore. - Kui token lekib, lähtesta see kohe lehel Bot. Vana token lakkab töötamast ja uuendad selle seal, kus bot töötab.
- GitHub otsib avalikest repositooriumitest Discordi botitokeneid ja teatab neist Discordile, mis võib need tühistada — nii lakkab kogemata üles lükatud token sageli töötamast enne, kui sa seda märkad.
4. samm: hoia bot võrgus
Bot on võrgus ainult siis, kui selle kood töötab. Sulged terminali või lülitad arvuti välja ja bot läheb võrgust maha. Sul on kolm valikut:
- Oma arvuti — tasuta ja sobib arendamiseks ning testimiseks, kuid bot magab, kui arvuti magab.
- Tasuta pakett — enamik paneb terve kuu töötavad botid magama või piirab neid; plusse ja miinuseid võrdleme juhendis tasuta Discordi botimajutus.
- Botimajutus — väike alati töötav server. HytHost Discordi botimajutuses laadid oma projekti üles, valid Node.js-i, Pythoni või muu käituskeskkonna ning paneel käivitab boti ja taaskäivitab selle, kui see kokku jookseb.
Täielik juhend üleslaadimisest automaatse taaskäivituseni on artiklis kuidas majutada Discordi botti 24/7.
Käita botti ilma arvutit sisse jätmata: HytHost Discordi botimajutus toetab Node.js-i, Pythonit, Javat, Go-d, C#-i, Buni ja Lavalinki — alates €0.89/kuu.
Vaata botimajutuse paketteKorduma kippuvad küsimused
Jah. Rakenduse, tokeni ja koodi loomine ei maksa midagi ning discord.py ja discord.js on tasuta. Maksad ainult siis, kui tahad seda majutada kohas, kus see püsib võrgus.
See, mida juba oskad. discord.py ja discord.js on mõlemad küpsed ja katavad kogu Discordi API. Kui sa kumbagi ei oska, on Pythonit lihtsam lugeda; JavaScriptil on suurem teekide ökosüsteem.
Kontrolli, et kutsusid boti scope’iga applications.commands ja et kood sünkroniseeris käsud. Globaalsete käskude ilmumine võib veidi aega võtta; kui need ei ilmu, taaskäivita Discord.
Tavaliste sõnumite teksti lugemiseks on vaja Message Content intenti, mis on Developer Portalis sisse lülitatud ja koodis küsitud. Ilma selleta saab bot ikkagi kaldkriipsukäske, mainimisi ja privaatsõnumeid.
Lähtesta see kohe Developer Portali lehel Bot. Vana token lakkab töötamast; pane uus kõikjale, kus bot töötab, ning eemalda vana oma koodist ja ajaloost.
Sinu bot võrgus ka ilma sinu arvutita
HytHost Discordi botimajutus käitab Node.js-i, Pythonit, Javat, Go-d, C#-i, Buni või Lavalinki koos MySQL-andmebaasi ja varukoopiatega — alates €0.89/kuu.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursKas see juhend oli abiks?