In questo tutorial vedremo come sviluppare il motore del bot Telegram in NodeJS.
Procederemo passo dopo passo alla installazione di Visual Studio Code, NodeJS ed npm su sistema operativo Microsoft Windows.
Successivamente, dopo aver creato il nuovo bot su Telegram, svilupperemo un semplicissimo Bot in NodeJS .
Infine procederemo a testare la risposta del bot direttamente dal account Telegram.
Come al solito procediamo con ordine
Indice dei contenuti
Installiamo Visual Studio Code
Per prima cosa installiamo l’ambiente di sviluppo che ci permetterà di sviluppare il nostro primo bot Telegram.
Di IDE di sviluppo NodeJS ce ne sono diversi ma la mia preferenza ricade decisamente su Visual Studio Code.
Se non avete nessun ambiente di riferimento vi invito a scaricarlo a questo indirizzo

Completata l’installazione procediamo al passo successivo installando Node.js che utilizzeremo come linguaggio di sviluppo per creare il bot o meglio come vedremo, utilizzeremo un “modulo” già predisposto per crearne uno.
Installiamo node.JS e npm
Apriamo una sessione del terminale command di windows (start -> esegui -> cmd) quindi digitiamo:
node -v
se otteniamo questa risposta
"node -v" non è riconosciuto come comando interno o esterno,
un programma eseguibile o un file batch
scarichiamo e procediamo all’installazione di NodeJS.
Recuperiamo la versione più aggiornata dal sito ufficiale

Completiamo l’installazione quindi verifichiamo di aver installato correttamente NodeJS ed npm (installato insieme)
node -v
se installato correttamente dovremmo ottenere una risposta simile
v12.16.2
quindi verifichiamo che sia correttamente installato anche npm.
npm -v
e dovremmo ottenere una risposta simile
6.14.4
bene la prima parte di installazione è conclusa! Procediamo ora creando il Bot su Telegram.
Creiamo il nostro bot Telegram
Apriamo Telegram e cerchiamo il bot padre @BotFather che ci permetterà di creare un nuovo bot.

Ora digitiamo il comando
/newbot

rispondiamo alle successive domande scegliendo nome del bot e username(sempre con suffisso _bot ad esempio utilink_bot) otterremo così la chiave unica (token access) per esempio
110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw

Prendiamo nota del token e conserviamolo in un posto sicuro.
Questa chiave ci permetterà di implentare l’applicazione nodeJS con cui svilupperemo il motore del bot n remoto tramite un’applicazione esterna ( app, software, programma php sul web, ecc. ).
Il token, in caso di smarrimento, furto o compromissione, può essere generato sempre tramite BotFather con il comando “/token“.
Apriamo ora il nostro bot. Cerchiamolo in telegram

Quindi avviamolo

Siamo appena entrati nel nostro nuovo bot!!
Proviamo ora ad interagire salutando ma non otterremo alcuna risposta

il motivo è semplice: manca il motore di regole che permetterà al nostro bot di rispondere.
Creiamolo!
Il motore del Bot
Come abbiamo visto non basta creare il Bot su Telegram per poter interagire con esso.
Per gestire la iterazione è necessario sviluppare la componente applicativa del Bot che tramite il Token recuperato al momento della creazione del Bot ci permetterà di dialogare con lo stesso.
Esistono diversi modi e linguaggi per sviluppare il servizio.
In questo tutorial ho scelto nodeJS perchè meglio si presta a sviluppare in tempi brevi il nostro bot.
Iniziamo creando la cartella che ospiterà il nostro progetto:

Quindi apriamo Visual Studio Code e apriamo la nostra cartella appena creata selezionando “File / Open Folder” dal menù di navigazione superiore

Una volta selezionata la cartella apriamo una finestra terminale utilizzando il menù “Terminal / new terrminal”

a questo punto nella finestra Terminal di Visual Code digitiamo
npm install --save node-telegram-bot-api

abbiamo importato tutti i moduli necessari e possiamo a questo punto creare la nostra applicaizone nodeJS. Riporto di seguito il codice rimandandovi alla documentazione su GitHub
Creiamo ora il motore del bot aggiungendo un nuovo file (menù File > New File), salviamolo con un qualsiasi nome con estensione .js quindi incolliamo il seguente codice:
const TelegramBot = require('node-telegram-bot-api');
// replace the value below with the Telegram token you receive from @BotFather
const token = 'YOUR_TELEGRAM_BOT_TOKEN';
// Create a bot that uses 'polling' to fetch new updates
const bot = new TelegramBot(token, {polling: true});
// Matches "/echo [whatever]"
bot.onText(/\/echo (.+)/, (msg, match) => {
// 'msg' is the received Message from Telegram
// 'match' is the result of executing the regexp above on the text content
// of the message
const chatId = msg.chat.id;
const resp = match[1]; // the captured "whatever"
// send back the matched "whatever" to the chat
bot.sendMessage(chatId, resp);
});
// Listen for any kind of message. There are different kinds of
// messages.
bot.on('message', (msg) => {
const chatId = msg.chat.id;
// send a message to the chat acknowledging receipt of their message
bot.sendMessage(chatId, 'Received your message');
});
Dovremmo essere in questa situazione

Perefetto! ora modifichiamo la costante token riportando il codice token ottenuto al mento della registrazione.
Salviamo. E’ tutto pronto!
Ora dala finestra terminale digitiamo il comando “node ./ nomevostrofilejs.js”. Nel mio caso:
node ./bot.js
Il motore del nostro bot è in fuonzione!

Riapriamo Telegram e spostiamoci sul nostro bot e digitiamo nuovamente “ciao” e vediamo cosa accade ora:

Il nostro bot risponde!!
Nei prossimi tutorial contuinueremo lo sviluppo del nostro bot.
Se apprezzi il mio lavoro ti invito a lasciare un commento e a registrarti al canale Youtube Utilink collegato a questo sito per non perderti le notifiche dei nuovi video che puoi comunque sempre trovare nella sezione Tutorial e Recensioni.
grazie per il post. sto provando a sviluppare in nodeJS la mia prima applicazione!!
grazie per il commento!
Sono le API ufficiali di Telegram?
Si corretto.