Dillo al (ro)”BOT”

Telegram è un applicazione di messaggistica gratuita che si sta facendo strada grazie alla sua versatilità. Fra le sue molte funzioni, ogni utente ha la possibilità di scrivere un “bot”, un “robot” che risponde automaticamente ai nostri comandi. Le applicazioni sono veramente molte, dalle risposte pre-configurate, alla ricerca di informazioni, alle interrogazioni di database, al controllo di dispositivi remoti. Per chi si fosse perso la presentazione del nostro Alessio “Marge”, riepiloghiamo qui alcune informazioni per iniziare a conoscere i “bot” di Telegram.

Dal punto di vista logico, un utente Telegram manda un messaggio ad un “bot” così come scrive ad un altro utente. Le richieste o comandi iniziano con “/” seguito dal comando conosciuto, es. “/aiuto”. Il  server di Telegram provvede ad inoltrarlo al nostro applicativo che nel frattempo è in attesa di comandi a cui rispondere. La risposta del “bot” ritorna al server che provvede a restituirla all’utente.

Il Bot appare come un utente e come tale può partecipare ad un gruppo. In questo caso il comando e la risposta appariranno a tutti i membri.

Dal punto di vista fisico, il “bot” è un programma scritto in uno dei tanti linguaggi supportati che potrà essere eseguito su un qualsiasi computer connesso alla rete. Chiaramente il nostro bot dovrà essere in esecuzione quando arriveranno le richieste, un server sempre attivo è quindi necessario. Ma per fare le prime prove sarà possibile eseguirlo anche sul nostro computer di casa.

Un bot è composto da un loop infinito che, dopo la dovuta inizializzazione, inizia con una chiamata ad una API (Application Program Interface) disponibile sul server Telegram. La chiamata non terminerà fino a quando un utente non invierà un comando (o fino allo scadere di un timeout, per evitare attese infinite). La risposta alla chiamata sarà una struttura JSON con il testo del comando e con altre informazioni utili a formulare la risposta. Il bot dovrà quindi preparare e spedire la risposta al server e quindi ritornare ad accettare altri comandi.

In altre parole, è il bot che si collega al server di Telegram per offrire i propri servizi.

Il tutto viene ovviamente eseguito dopo una registrazione del bot e la fornitura di una chiave di sicurezza che permette la dovuta autenticazione del servizio.

Un esempio lo potete trovare sul repository GitHub del GULLi. Si tratta del bot ufficiale del GULLi (realizzato da Alessio Margelli) che al momento restituisce le date dei prossimi eventi e le informazioni del bot stesso.

Il controllo di dispositivi tramite un bot

Il processamento del comando avviene quindi su un computer dell’utente, ovunque esso sia. È facile quindi pensare ad un codice che, prima di rispondere al comando, esegua un’azione per controllare un dispositivo, es.:

  • Controllare un dispositivo collegato (immaginiamo un Raspberry-PI)
  • Inviare un comando seriale ad un modulo Arduino
  • Inviare un messaggio in rete
  • Inviare un comando Bluetooth
  • etc….

Il GULLi è disponibile per supportare gli sviluppi di nuove idee che vogliano utilizzare i bot e Linux. Puoi contattarci qui.