Come Creare un Bot Telegram con Node.js

Impara a costruire un bot Telegram che risponde a comandi usando Node.js, dal setup al deploy su un server.

Ehi, come va? Sai, l'altro giorno mi è capitato di dover creare un bot Telegram con Node.js, e devo dire che è stato un bel casino all'inizio, ma alla fine ho risolto tutto. Come creare un bot telegram con node js? Ecco, te lo spiegherò come se fossimo al bar, io con la mia birra in mano e tu che annuisci.

Il punto è che spesso si ha bisogno di un bot per automatizzare cose noiose, tipo rispondere a messaggi o gestire comandi, e Telegram è perfetto per questo. Ma la fregatura è che se non segui i passi giusti, finisci per perdere ore.

Ok, ma andiamo al sodo: oggi costruiamo un bot semplice che saluta l'utente e risponde a un comando come /start.

Prima di tuffarci nel codice, assicurati di avere Node.js installato, un account Telegram e di aver creato un bot tramite BotFather – quel robottino che ti dà il token. Io preferisco usare Node.js per questi progetti perché è veloce e scalabile, a differenza di Python che ho provato una volta e francamente fa schifo per le app in tempo reale.

Passiamo ai prerequisiti

Devi installare qualche pacchetto. Apri il terminale e fai npm init per creare un package.json, poi npm install node-telegram-bot-api. È una libreria che semplifica tutto, sul serio.

E non dimenticare di avere un editor di codice, tipo VS Code, che io uso sempre perché è comodo come una vecchia felpa.

Come creare il bot su Telegram

Prima cosa prima, vai su Telegram e chatta con BotFather. Digita /newbot e segui le istruzioni per dare un nome al tuo bot. Otterrai un token, tipo '123456:ABC-DEF1234abc'. Tienilo al sicuro, perché è come la chiave di casa.

L'ultima volta che ho dimenticato di salvarlo, ho perso due ore a ricrearlo – una lezione appresa a mie spese, eh.

Scrivi il codice base

Ora, nel tuo file index.js, importiamo la libreria. Ecco un snippet semplice:
const TelegramBot = require('node-telegram-bot-api');
const token = 'IL_TUO_TOKEN_QUI';  // Sostituisci con il tuo
const bot = new TelegramBot(token, { polling: true });

bot.on('message', (msg) => { const chatId = msg.chat.id; bot.sendMessage(chatId, 'Ciao! Sono il tuo bot.'); });

bot.onText(//start/, (msg) => { const chatId = msg.chat.id; bot.sendMessage(chatId, 'Benvenuto! Inizia a chattare.'); });

Questo è il cuore del bot. Quando ricevi un messaggio, risponde con un saluto, e se scrivi /start, parte un messaggio speciale. Io ho aggiunto quel bot.onText perché è più preciso per i comandi, anche se all'inizio pensavo di usare solo onMessage e mi sono pentito.

Ma aspetta, non correre: prova a eseguirlo con node index.js e invia un messaggio al bot su Telegram. Vedrai che funziona, ma se non testate prima, come ho fatto io una volta, rischi di deployare un disastro.

Aggiungi funzionalità extra

Ora che hai il base, rendiamolo più interessante. Supponi di voler far dire al bot l'ora attuale. Aggiungi questo nel codice:
bot.onText(//ora/, (msg) => {
  const chatId = msg.chat.id;
  const ora = new Date().toLocaleTimeString();
  bot.sendMessage(chatId, L'ora attuale è ${ora}.);
});

Vedi? Con un comando /ora, il bot risponde con l'ora. È una cosa banale, ma utile, e io preferisco integrare funzioni del genere perché rendono il bot più interattivo.

E qui, una digressione veloce: l'anno scorso, ho creato un bot simile per un amico e ci ho perso una notte intera a debuggare errori stupidi, tipo un timestamp sbagliato.

Deploya su un server

Ok, ma non vogliamo tenere il bot locale. Deployiamolo su Heroku, che è gratuito e facile. Prima, crea un account su Heroku e installa il CLI.

Nel tuo progetto, aggiungi un Procfile con: web: node index.js. Poi, fai git init, git add ., git commit -m "Primo commit", e heroku create. Infine, heroku push origin main e heroku open.

Aspetta, non è proprio così lineare; a volte Heroku fa i capricci, ma io lo uso perché è rapido, anche se ho provato Glitch una volta e non mi è piaciuto per niente.

Prova e raffina

Una volta deployato, testalo bene. Inviami un messaggio e vedi se risponde. Se qualcosa va storto, controlla i log con heroku logs. E ricorda, il vero trucco è iterare: aggiungi più comandi man mano.

Alla fine, hai un bot funzionante e deployato, pronto per il mondo. Che ne dici, eh? È stato divertente raccontartelo come se fossimo al bar.

Ti serve una soluzione simile?

Descrivimi il problema. Ne parliamo in una call gratuita di 30 minuti.

Contattami
← Torna al blog