Come creare un bot Discord
In questa pagina
Un bot Discord è un programma che accede a Discord con un proprio account e risponde ai comandi, modera, gestisce giochi o pubblica aggiornamenti. Per crearne uno servono tre cose: un'applicazione nel Developer Portal di Discord, poche righe di codice e un posto dove eseguire quel codice.
Questa guida costruisce un bot funzionante con uno slash command /ping, in Python (discord.py) o JavaScript (discord.js): scegli il linguaggio che conosci.
Passo 1: Crea l'applicazione e il token del bot
- Apri il Developer Portal. Vai su discord.com/developers/applications, crea una nuova applicazione e dalle un nome.
- Ottieni il token. Nella pagina Bot, fai clic su Reset Token e copialo. Discord lo mostra una sola volta; se lo perdi, reimpostalo di nuovo.
- Tieni il token segreto. È la password del bot: chiunque lo possieda controlla il tuo bot. Non incollarlo mai in codice che condividi e non caricarlo su Git.
Passo 2: Invita il bot nel tuo server
- Apri la pagina Installation della tua applicazione.
- Nelle impostazioni di installazione predefinite per i server, aggiungi gli scope
boteapplications.commandse i permessi di cui il bot ha bisogno: per questa guida basta Send Messages. - Apri il link di installazione fornito, scegli il tuo server e autorizza. Il bot compare nell'elenco dei membri, offline finché il tuo codice non è in esecuzione.
I tutorial più vecchi usano OAuth2 > URL Generator con gli stessi due scope; funziona ancora.
Passo 3a: Scrivi il bot in Python (discord.py)
discord.py 2.7 richiede Python 3.8 o successivo. Installalo e 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"])
Eseguilo con il token in una variabile d'ambiente, ad esempio DISCORD_TOKEN=your-token python bot.py su Linux o macOS.
Passo 3b: Scrivi il bot in JavaScript (discord.js)
discord.js 14 richiede Node.js 18 o successivo. In una nuova cartella, esegui npm install discord.js e 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);
Avvialo con DISCORD_TOKEN=your-token node index.js. Quando la console mostra Logged in, digita /ping nel tuo server.
Tieni il token fuori dal codice
- Usa una variabile d'ambiente o un file
.env, e aggiungi.enva.gitignoreprima del primo commit. - Se il token trapela, reimpostalo subito nella pagina Bot. Il vecchio token smette di funzionare e aggiorni quello nuovo dove gira il bot.
- GitHub analizza i repository pubblici alla ricerca di token di bot Discord e li segnala a Discord, che può revocarli: per questo un token caricato per errore spesso smette di funzionare prima che tu te ne accorga.
Passo 4: Tieni il bot online
Il tuo bot è online solo mentre il suo codice è in esecuzione. Chiudi il terminale o spegni il PC, e va offline. Hai tre opzioni:
- Il tuo PC: gratis e adatto per sviluppare e testare, ma il bot dorme quando dorme il computer.
- Un piano gratuito: la maggior parte sospende o limita i bot che girano tutto il mese; i compromessi sono confrontati in hosting gratuito per bot Discord.
- Hosting per bot: un piccolo server sempre acceso. Sull'hosting per bot Discord di HytHost carichi il tuo progetto, scegli Node.js, Python o un altro runtime, e il pannello avvia il bot e lo riavvia se va in crash.
La procedura completa, dal caricamento al riavvio automatico, è in come ospitare un bot Discord 24/7.
Fai girare il tuo bot senza lasciare il PC acceso: l'hosting per bot Discord di HytHost supporta Node.js, Python, Java, Go, C#, Bun e Lavalink, da €0.89/mese.
Vedi i piani di hosting per botDomande frequenti
Sì. Creare l'applicazione, il token e il codice non costa nulla, e discord.py e discord.js sono gratuiti. Paghi solo se vuoi ospitarlo in un posto che resti online.
Quello che conosci già. discord.py e discord.js sono entrambi maturi e coprono tutta la API di Discord. Se non conosci nessuno dei due, Python si legge in modo più semplice; JavaScript ha un ecosistema di librerie più ampio.
Controlla di averlo invitato con lo scope applications.commands e che il codice abbia sincronizzato i comandi. I comandi globali possono impiegare un momento a comparire; se non compaiono, riavvia Discord.
Per leggere il testo dei messaggi normali serve l'intent Message Content, attivato nel Developer Portal e richiesto nel codice. Senza di esso il bot riceve comunque slash command, menzioni e messaggi diretti.
Reimpostalo subito nella pagina Bot del Developer Portal. Il vecchio token smette di funzionare; inserisci quello nuovo dove gira il bot e rimuovi quello vecchio dal codice o dalla cronologia.
Il tuo bot online senza il tuo PC
L'hosting per bot Discord di HytHost esegue Node.js, Python, Java, Go, C#, Bun o Lavalink con database MySQL e backup, da €0.89/mese.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursQuesta guida ti è stata utile?