Com fer un bot de Discord
En aquesta pàgina
Un bot de Discord és un programa que inicia sessió a Discord amb el seu propi compte i respon ordres, modera, fa jocs o publica novetats. Per fer-ne un calen tres coses: una aplicació al Developer Portal de Discord, unes quantes línies de codi i un lloc on executar aquest codi.
Aquesta guia construeix un bot funcional amb una ordre slash /ping, en Python (discord.py) o JavaScript (discord.js) — tria el llenguatge que coneguis.
Pas 1: Crea l'aplicació i el token del bot
- Obre el Developer Portal. Ves a discord.com/developers/applications, crea una aplicació nova i posa-li un nom.
- Obtén el token. A la pàgina Bot, fes clic a Reset Token i copia'l. Discord només el mostra una vegada; si el perds, torna'l a restablir.
- Mantén el token en secret. És la contrasenya del bot: qui el tingui controla el teu bot. No l'enganxis mai en codi que comparteixis ni el pugis a Git.
Pas 2: Convida el bot al teu servidor
- Obre la pàgina Installation de la teva aplicació.
- A la configuració d'instal·lació predeterminada per a servidors (guilds), afegeix els àmbits
botiapplications.commands, i els permisos que necessita el bot — per a aquesta guia n'hi ha prou amb Send Messages. - Obre l'enllaç d'instal·lació que et dona, tria el teu servidor i autoritza'l. El bot apareix a la llista de membres, desconnectat fins que el teu codi s'executi.
Els tutorials més antics fan servir OAuth2 > URL Generator amb els mateixos dos àmbits; això encara funciona.
Pas 3a: Escriu el bot en Python (discord.py)
discord.py 2.7 necessita Python 3.8 o més recent. Instal·la'l i crea 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"])
Executa'l amb el token en una variable d'entorn, per exemple DISCORD_TOKEN=your-token python bot.py a Linux o macOS.
Pas 3b: Escriu el bot en JavaScript (discord.js)
discord.js 14 necessita Node.js 18 o més recent. En una carpeta nova, executa npm install discord.js i crea 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);
Inicia'l amb DISCORD_TOKEN=your-token node index.js. Quan la consola mostri Logged in, escriu /ping al teu servidor.
Mantén el token fora del codi
- Fes servir una variable d'entorn o un fitxer
.env, i afegeix.enva.gitignoreabans del primer commit. - Si el token es filtra, restableix-lo de seguida a la pàgina Bot. El token antic deixa de funcionar i actualitzes el nou allà on s'executa el bot.
- GitHub analitza els repositoris públics a la recerca de tokens de bots de Discord i els notifica a Discord, que els pot revocar — per això un token pujat per error sovint deixa de funcionar abans que te n'adonis.
Pas 4: Mantén el bot en línia
El teu bot només està en línia mentre el seu codi s'executa. Si tanques el terminal o apagues l'ordinador, es desconnecta. Tens tres opcions:
- El teu ordinador — gratuït, adequat per desenvolupar i provar, però el bot dorm quan dorm l'ordinador.
- Un pla gratuït — la majoria suspenen o limiten els bots que funcionen tot el mes; en comparem els inconvenients a allotjament gratuït de bots de Discord.
- Allotjament de bots — un servidor petit sempre encès. A l'allotjament de bots de Discord de HytHost puges el projecte, tries Node.js, Python o un altre entorn d'execució, i el panell inicia el bot i el reinicia si es bloqueja.
El procés complet, des de la pujada fins al reinici automàtic, és a com allotjar un bot de Discord 24/7.
Executa el bot sense deixar l'ordinador encès: l'allotjament de bots de Discord de HytHost admet Node.js, Python, Java, Go, C#, Bun i Lavalink — des de €0.89/mes.
Mira els plans per a botsPreguntes més freqüents
Sí. Crear l'aplicació, el token i el codi no costa res, i discord.py i discord.js són gratuïts. Només pagues si el vols allotjar en un lloc que es mantingui en línia.
El que ja coneguis. discord.py i discord.js són tots dos madurs i cobreixen tota l'API de Discord. Si no en coneixes cap, Python es llegeix de manera més senzilla; JavaScript té un ecosistema de biblioteques més gran.
Comprova que l'has convidat amb l'àmbit applications.commands i que el codi ha sincronitzat les ordres. Les ordres globals poden trigar una mica a aparèixer; si no apareixen, reinicia Discord.
Per llegir el text dels missatges normals cal l'intent Message Content, activat al Developer Portal i sol·licitat al codi. Sense ell, el bot continua rebent ordres slash, mencions i missatges directes.
Restableix-lo immediatament a la pàgina Bot del Developer Portal. El token antic deixa de funcionar; posa el nou allà on s'executi el bot i elimina l'antic del codi i de l'historial.
El teu bot en línia, sense el teu ordinador
L'allotjament de bots de Discord de HytHost executa Node.js, Python, Java, Go, C#, Bun o Lavalink amb una base de dades MySQL i còpies de seguretat — des de €0.89/mes.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursT'ha estat útil aquesta guia?