Implementazione di un Bot Telegram

Telegram è una piattaforma di messaggistica istantanea che consente agli utenti di inviare messaggi, foto, video e documenti in modo sicuro e veloce. Una delle funzionalità più interessanti di Telegram è la possibilità di creare dei bot, ovvero dei programmi automatici in grado di interagire con gli utenti attraverso messaggi e comandi.

Per implementare un bot su Telegram, è necessario utilizzare le API che la piattaforma mette a disposizione, che sono due: le Bot API e le Telegram API. La prima è utilizzata per creare e gestire i bot, mentre la seconda per accedere alle funzionalità di base della piattaforma.

Per creare un bot su Telegram, è necessario innanzitutto avere un account Telegram e quindi seguire i seguenti passi:

  1. Contattare il bot @BotFather che ci assisterà nella creazione di un nuovo bot.
  2. Utilizzare l’API Bot per ricevere gli aggiornamenti dei messaggi inviati al bot e per inviare messaggi agli utenti.
  3. Creare la logica del bot in modo che possa rispondere alle richieste degli utenti in modo appropriato.

Creazione del Bot Telegram

Una volta essere entrati in contatto con @BotFater, sarà sufficiente avviare la richiesta di generazione del bot utilizzando il semplice comando /newbot. Quindi ci verrà chiesto di dare un nome al bot ed una username e, se il processo si conclude con successo, @BotFater ci fornirà il token che consentirà al nostro bot di gestire collegarsi ai servizi telegram e ricevere le richieste destinate al bot.

conversazione con botfater

Un’importante considerazione da fare è sul come conservare il token che ci è stato fornito. Ovviamente non è consigliato hardcodare il token nel codice perchè renderebbe difficile il suo aggiornamento ma neppure inserirlo in qualche file di configurazione è consigliabile, soprattutto se poi viene sottoposto a controllo del versionamento, che se non ben governato renderebbe il token accessibile a tutti ad esempio sull’area pubblica di github. In generale, è importante seguire le linee guida di sicurezza fornite dalla piattaforma Telegram e utilizzare le best practice di sicurezza per proteggere il token e garantire che solo le persone autorizzate abbiano accesso ad esso. Quali sono allora le alternative disponibili per conservare il token?

  • una delle opzioni più semplici per conservare il token in modo sicuro è quella di utilizzare una variabile d’ambiente. In questo modo, il token non è hardcoded nell’applicazione e può essere facilmente modificato senza dover modificare il codice dell’applicazione.

  • Un’altra opzione è quella di utilizzare un sistema di gestione delle chiavi, come ad esempio AWS KMS o Google Cloud KMS, per crittografare il token e gestire l’accesso alle chiavi in modo sicuro.

  • E’ anche possibile utilizzare un servizio di configurazione, come ad esempio Spring Cloud Config per gestire la configurazione dell’applicazione in modo centralizzato e sicuro.

  • Un’altra opzione è quella di utilizzare una libreria di gestione delle chiavi, come ad esempio Vault di Hashicorp, per gestire e crittografare il token in modo sicuro.

Implementazione del Bot Telegram

Per utilizzare le API Telegram in un progetto Java, è innanzitutto necessario aggiungere la dipendenza ad esse, ad esempio inserendole nel file pom.xml di un progetto Maven.

L’oggetto principale responsabile della gestione della comunicazione con il bot sarà la classe JavaBossBot che estende la classe org.telegram.telegrambots.bots.TelegramLongPollingBot estendendone i tre metodi principali:

  • getBotUsername() e getBotToken() che devono restituire rispettivamente la username del bot ed il relativo token genera da @BotFater.

  • onUpdateReceived() che è invocato quando il backend di Telegram riceve un aggiornamento (ovvero un nuovo messaggio) dagli utenti del bot.

Ad esempio il codice per il metodo on onUpdateReceived() che restituisce un messaggio di benvenuto all’utente sarà:

Infine, per registrare ed avviare il nostro bot è necessario istanziare la classe org.telegram.telegrambots.meta.TelegramBotsApi e registrare la classe JavaBossBot.

A questo punto possiamo compilare ed eseguire il main della classe Main, quindi contattare il nostro bot all’indirizzo http://t.me/JavaBossBot e non appena invieremo comando /start (o qualsiasi altro messaggio) il bot ci risponderà col messaggio di benvenuto programmato.

javaboss bott

Il Codice Sorgente

Il codice sorgente del progetto è scaricabile qui telegram-bot.

How useful was this post?

Click on a star to rate it!

Average rating 5 / 5. Vote count: 3

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!