Telegram Bot: Cos’è e come realizzarlo

Orami si sente parlare spesso di BOT , utilizzati per vari scopi non sempre leciti come i botnet (utilizzati per attacchi DDoS e spam) o i bot “social” (ovvero dei profili falsi utilizzati su vari social network per fare volume online). A questi si aggiungono gli ormai famosi chatbot, utilizzati da servizi di messaggistica istantanea per automatizzare alcuni tipi di comunicazione come la diffusione di notizie e l’assistenza clienti. Tra i vari chatbot uno dei più conosciuti è sicuramente TOBi, l’assistente virtuale di casa Vodafone.

Cos’è un BOT?

In informatica per bot (abbreviazione di robot) si intendono dei software che, accedendo alla Rete sfruttando gli stessi canali utilizzati da utenti veri, sono in grado di svolgere i compiti più vari in maniera completamente autonoma. Tutto questo grazie all’intelligenza artificiale, che permette loro di analizzare e comprendere il linguaggio degli utenti che interagiscono con loro, e al machine learning che consente di migliorare la capacità di analisi del linguaggio umano affinché i bot possano dare risposte sempre più precise ed esatte.

Realizziamo il nostro Bot

Oggi vi voglio far vedere passo passo come realizzare un semplice chatbot con Telegram.
Per prima cosa bisogna creare il bot dall’applicazione di Telegram e successivamente tirare su un server in node.js sul quale risiederà la logica del nostro bot.

Creazione Bot sull’app di Telegram

La creazione del bot su Telegram è molto semplice basta seguire questi semplici passi:

  1. Ovviamente aver installato Telegram sul proprio smartphone  😛
  2. Cliccare sulla lente in alto a destra e cercare il “BotFather“, che ci permetterà di gestire tutti i bot che abbiamo, semplicemente dalla chat
  3. Una volta entrato nella chat con il BotFather bisogna cliccare sul tasto “AVVIA” per iniziare ad interagire con lui
  4. Clicchiamo sull’icona con lo “/”, che si trova accanto a quella degli allegati, e poi su /newbot
  5. Il BotFather ci chiederà di digitare il nome del nostro bot, quindi scegliete il nome che più vi piace con l’accortezza di terminarlo con la parola “bot” (per esempio: TretrisBot o tetris_bot)
  6. Se il nome risulta corretto il BotFather  ci risponderà con un messaggio nel quale è presente il token da utilizzare per sfruttare l’API di Telegram

Creazione del Bot in Node.js

La creazione del server sul quale girerà il nostro bot sarà sviluppata in node.js, quindi prima di tutto dovete aver installato nodejs.
Se volete installarlo su windows vi basta semplicemente scaricare l’eseguibile da qui mentre se volete utilizzare il raspberry vi rimando ad un mio vecchio articolo dove ne parlo.

Apriamo il nostro IDE, per esempio Visual Studio Code, ci spostiamo nella cartella del nostro progetto e da terminale digitiamo

npm init

seguiamo la procedura lasciando come entry point “index.js” e successivamente installiamo l’unica libreria che ci occorrerà in questo progetto “Telegraf“, per far questo usiamo l’ormai famoso comando npm

npm install telegraf --save

Il comando –save  permette di aggiungere questa dipendenza al file package.json molto utile quando vogliamo condividere il nostro progetto con altri perché basterà digitare in console npm update per scaricare tutte le dipendenze necessarie per il progetto (in questo caso c’è solo una libreria ma in progetti molto più complessi è meglio digitare un solo comando che tanti npm install  😉 )

Ora che abbiamo la nostra libreria non ci resta che scrivere il codice del nostro bot

const Telegraf = require('telegraf');
const bot = new Telegraf(YOUR_TOKEN_HERE);
bot.start((message) => {
  console.log('started:', message.from.id)
  return message.reply('Ciao, scrivi qualcosa e io la ripeterò 😄');
})
bot.on('text', message => {
    return message.reply(message.message.text);
});
bot.startPolling();

L’unica cosa che dovrete sostituire nel codice è la stringa “YOUR_TOKEN_HERE” con il token che il BotFather vi ha rilasciato prima, dopo di che siete pronti per avviare il vostro bot semplicemente digitando

node index

Aprite la vostra app di Telegram cercate il nome del vostro bot (quello che avete scelto prima nella creazione) e avviatelo, vi risponderà subito con il messaggio di benvenuto definito nel listener start, mentre ogni volta che invierete un messaggio questo verrà letto dal listener on e rinviato come risposta.
Per avere più informazioni riguardanti la libreria Telegraf vi rimando alla pagina ufficiale presente su NPM.

Spero che questa semplice guida per realizzare un bot con Telegram vi sia piaciuta alla prossima  😉

Per chi fosse interessato ad approfondire i fondamenti di Node.js vi consiglio un corso pratico svolto da Alberto Olla che spiega in maniera semplice e dettagliata, attraverso diversi esempi, questa tecnologia. Il corso è in super offerta a soli 69 euro (51% di sconto).