Discord · Guida

Come creare un bot Discord

Aggiornato October 10, 2026 4 min di lettura

In questa pagina
  1. Passo 1: Crea l'applicazione e il token del bot
  2. Passo 2: Invita il bot nel tuo server
  3. Passo 3a: Scrivi il bot in Python (discord.py)
  4. Passo 3b: Scrivi il bot in JavaScript (discord.js)
  5. Tieni il token fuori dal codice
  6. Passo 4: Tieni il bot online
  7. FAQ

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

  1. Apri il Developer Portal. Vai su discord.com/developers/applications, crea una nuova applicazione e dalle un nome.
  2. 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.
  3. 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.
Ti servono gli intent? Un bot che usa solo slash command non ha bisogno di alcun intent privilegiato. Attiva Message Content nella pagina Bot solo se il bot deve leggere ciò che le persone scrivono nei messaggi normali. I bot presenti in server con più di 10.000 utenti richiedono l'approvazione di Discord per gli intent privilegiati.

Passo 2: Invita il bot nel tuo server

  1. Apri la pagina Installation della tua applicazione.
  2. Nelle impostazioni di installazione predefinite per i server, aggiungi gli scope bot e applications.commands e i permessi di cui il bot ha bisogno: per questa guida basta Send Messages.
  3. 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 .env a .gitignore prima 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 bot
FAQ

Domande 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 hours

Questa guida ti è stata utile?