Ospitare un bot Discord in Node.js: discord.js v14
Progetto npm, intent, token, avvio: i passaggi per mettere online un bot discord.js v14, uno alla volta.
Un bot discord.js v14 è un progetto Node.js classico: un package.json, un file di ingresso e alcune dipendenze. I passaggi utili sono sempre gli stessi: creare il progetto, dichiarare gli intent, leggere il token dall’ambiente e verificare l’avvio prima di affidare il bot al server.
- discord.js v14 funziona con Node.js 18 o successivo, e il client dichiara i suoi intent.
- Il token si legge dalle variabili d’ambiente, mai da index.js.
- Used disallowed intents e l’errore 4014 derivano dalla stessa impostazione: un intent privilegiato disattivato nel portale.
Crea il progetto
discord.js v14 funziona con Node.js 18 o successivo. Il progetto è composto da un package.json, che elenca le dipendenze, e da un file di ingresso, index.js.
- npm init -y: crea il package.json con i valori predefiniti.
- npm install discord.js: aggiunge discord.js v14 alle dipendenze.
- Nella sezione scripts di package.json aggiungete "start": "node index.js" per avviare il bot con npm start.
Scrivere il client
Il client deve dichiarare gli intent di cui ha bisogno. Un intent assente dal codice non riceve eventi, e un intent privilegiato non attivo nel portale fa fallire la connessione.
- GatewayIntentBits.Guilds e GatewayIntentBits.GuildMessages: eventi dei server e dei messaggi.
- GatewayIntentBits.MessageContent: intent privilegiato, da attivare nel portale per sviluppatori per leggere il testo dei messaggi.
- client.login(process.env.DISCORD_TOKEN): il token arriva dall’ambiente, mai dal codice.
Avviare e verificare
Provate il bot in locale prima del caricamento. Un bot connesso deve mostrare la conferma prevista nel suo evento di avvio.
- npm install: installa le dipendenze elencate in package.json.
- npm start: avvia il bot con lo script start.
- Se la console mostra Used disallowed intents, un intent privilegiato è disattivato nel portale: attivatelo e riavviate il bot.
Perché ACLClouds per un bot discord.js
Il piano gratuito include 1 bot, 315 MB di RAM e 715 MB di spazio. Node.js, ffmpeg, yt-dlp e deno sono già nell’immagine Node.js, e i file si caricano in SFTP.
- Piano gratuito: 1 bot, 315 MB di RAM, 0,25 vCPU, 715 MB di spazio, caricamenti fino a 100 MB.
- Immagine Node.js: ffmpeg, yt-dlp e deno già installati.
- Accesso SFTP per bot sulla porta 2222, con i dati della scheda «Accesso SFTP».
Domande frequenti
Quale versione di Node.js scegliere?
Per un nuovo progetto discord.js v14, puntate a Node.js 18 o successivo, ancora mantenuto. Le versioni vecchie finiscono per dare problemi di sicurezza.
Devo caricare la cartella node_modules?
No. Pesa molto, e lo spazio gratuito è di 715 MB. Caricate package.json e package-lock.json e lasciate che l’installazione ricrei la cartella.
Perché il bot mostra Used disallowed intents?
Il codice richiede un intent privilegiato, come MessageContent, che non è attivo nel portale per sviluppatori di Discord. Attivatelo e riavviate il bot.