Questo sito contribuisce alla audience di Il Messaggero
Scopri le migliori offerte sul canale Telegram ufficiale. Guarda su Telegram

Come creare un bot su Telegram

di

Sei diventato un assiduo utente di Telegram e, mentre lo esploravi, ti sei imbattuto nei famosi bot, quelle chat “automatiche” che possono soddisfare varie necessità dell’utente (es. la ricerca di un video su YouTube o di una GIF da inviare agli amici, il tracciamento di spedizioni e via discorrendo) senza lasciare l’app. Affascinato da questo strumento, hai deciso di creare qualcosa del genere per semplificarti la vita, o sorprendere qualche tuo amico, e sei alla ricerca di un metodo semplice che possa guidarti nei passi iniziali di questa impresa.

Detto, fatto! Sei capitato senza ombra di dubbio sulla guida giusta: di seguito, infatti, ti fornirò tutte le informazioni base su come creare un bot su Telegram, ti illustrerò in dettaglio il funzionamento di questi strumenti e il modo in cui sono in grado di comunicare con l’utente tramite semplici messaggi di chat. Ti dico fin da subito che, per riuscire nell’impresa, dovrai apprendere alcune nozioni di base sulla programmazione e avrai bisogno di un computer che possa facilitarti il lavoro di sviluppo.

Come dici? Sei già abbondantemente spaventato e stai pensando di gettare la spugna? Non scoraggiarti! Le cose indispensabili di cui hai bisogno sono la pazienza e la fantasia: ti garantisco che, seguendo le mie dritte, riuscirai a creare il tuo primo “piccolo” bot e a capirne perfettamente il meccanismo, dopodiché il tempo e un po’ di impegno faranno il resto! Detto ciò, non mi resta altro che augurarti buona lettura e, perché no, buon divertimento!

Indice

Cosa sono i bot di Telegram

Come creare un bot su Telegram

Prima di passare all’azione e creare un bot su Telegram, è bene chiarire nel dettaglio cosa sono i bot di Telegram e perché riscuotono così tanto successo. In linea generale, un bot altro non è che un “utente” di Telegram non umano, composto principalmente da righe di codice caricate su una piattaforma di microservizi, in grado di svolgere azioni (qualche volta anche complesse) in modo del tutto automatico, ricevendo sotto forma di richieste HTTP i comandi impartiti dall’utente tramite la chat di Telegram.

Principalmente, esistono due tipi di bot Telegram: il bot standalone, quello dotato di una finestra di chat autonoma in cui impartire i comandi, e il bot inline, quello che può essere richiamato da altre finestre di chat (singole o gruppi) tramite il comando @nomebot. Ciascun bot di Telegram viene identificato univocamente da un token: una sequenza di numeri e lettere usata dalle applicazioni Web e dalle API per riferirsi al bot stesso.

Per chiarirti meglio le idee voglio farti un esempio pratico: in condizioni normali, tracciare un pacco in transito presso un corriere significa collegarsi al sito Internet del corriere stesso, inserire il numero di tracking nella casella proposta, compilare i campi necessari e consultare, sul momento, lo stato del pacco. Per ottenere gli aggiornamenti di stato, nella maggior parte dei casi, bisogna avere cura di ritornare sul sito e ripetere la procedura.

Con TrackBot, uno dei migliori bot stand-alone per Telegram, la musica cambia: si tratta di un bot creato da quattro programmatori italiani, che permette di tracciare una spedizione a partire dal suo codice di tracking e di ricevere gli aggiornamenti di stato in modo del tutto automatico. Per usarlo, è sufficiente cercarlo all’interno di Telegram e impartire i comandi necessari (illustrati dal bot stesso) per aggiungere il numero di tracking del pacco, dopodiché il bot si interfaccia con il servizio Internet del corriere (ad es. GLS) e, in modo del tutto automatico, invia un messaggio di chat all’utente nel momento in cui il pacco cambia stato (ad es. In transitoIn consegnaConsegnato).

Per quanto riguarda i bot inline, posso invece farti l’esempio di @gif: digitando il comando @gif parola_chiave all’interno di una finestra di chat, verranno proposte le GIF animate corrispondenti alla parola chiave inserita, prelevate direttamente dal portale Giphy e pronte per essere inviate nelle chat. TrackBot e Giphy sono soltanto due esempi di ciò che sono in grado di fare i bot Telegram: puoi trovare una lista di bot utili per ogni evenienza nella mia guida approfondita sui migliori bot Telegram.

Tornando a noi, il funzionamento di base di un bot di Telegram segue lo schema che ti illustro di seguito.

  • Il bot viene aggiunto tramite l’area di ricerca di Telegram (standalone) o richiamato all’interno di una chat esistente (inline).
  • Dopo averlo avviato, l’utente digita un comando nella finestra di chat (standalone) oppure dopo la stringa @nomebot (inline).
  • Il comando digitato viene inviato alla piattaforma di microservizi, che si occupa di interpretarlo, eseguirlo e generare la risposta HTTP.
  • Telegram riceve la risposta HTTP e il relativo bot la “scrive” nella finestra di chat.

Creazione di un bot su Telegram

Ora che hai le nozioni di base riguardanti i bot di Telegram, scommetto che non vedi l’ora di crearne uno tutto tuo. Inizio col dirti che la creazione di un bot “vuoto” è estremamente semplice: la parte un po’ più complicata, quella che richiede accenni di programmazione, riguarda invece ciò che concerne il comportamento del bot, cioè la capacità di ricevere ed eseguire i comandi impartiti dall’utente.

Come ti ho già accennato, questa operazione viene eseguita tramite delle richieste HTTP che fanno da “canale di comunicazione” tra Telegram e lo spazio Web che contiene l’applicazione associata: quest’ultima, di fatto, elabora i comandi e ne invia le risposte alla chat di Telegram corrispondente al bot (a sua volta formata da metodi e in cui possono essere sfruttate API di servizi di terze parti).

Come dici? Hai bene inteso il funzionamento di un bot, ma non hai la più pallida idea di cosa fare? Non preoccuparti, di seguito ti fornisco le istruzioni per creare il tuo primo bot Telegram che, semplicemente, “ripete” ciò che viene scritto nella sua finestra di chat.

Tanto per cominciare, devi creare un nuovo bot “vuoto” usando BotFather, il bot Telegram “papà” di tutti gli altri bot: avvia Telegram, pigia sulla lente d’ingrandimento collocata nella parte alta della finestra, digita la parola Botfather all’interno della casella di testo e pigia sul primo risultato ricevuto, quello contrassegnato da un piccolo segno di spunta blu (che identifica i bot ufficiali). In alternativa, se vuoi fare prima, clicca qui e accetta di aprire il bot in Telegram. Fatto ciò, pigia sul pulsante Avvia collocato nella finestra di chat, dopodiché digita il comando /newbot seguito da Invio, nella casella di testo, per avviare la procedura di creazione.

A questo punto, BotFather ti porrà una serie di domande sulla configurazione iniziale del tuo bot: per prima cosa, scegli un nome (ad es. Bot Eco), digitalo nella casella di testo e pigia Invio, successivamente scegli un username (ricordando che deve necessariamente terminare con la parola bot, ad esempio ripetizione_bot) e pigia ancora Invio. In questo modo verrà creato un bot, che per il momento non farà nulla ma ti fornirà un token mediante il quale poi metterlo in funzione: annota quindi il token e conservalo con cura, senza rivelarlo a nessuno (poiché chiunque possieda quel codice sarà in grado di controllare il bot). Seguendo una procedura simile, puoi usare i comandi /setdescription/setabouttext/setuserpic per impostare, rispettivamente, una descrizione del bot, un piccolo testo introduttivo e un avatar personale.

Fatto ciò, hai bisogno di uno spazio Web dedicato alle istruzioni (in questa guida useremo il linguaggio Python) da impartire al tuo bot: per questa volta ho scelto Hook.io, una piattaforma in grado di ospitare microservizi (cioè piccoli pezzi di codice che eseguono operazioni), utilizzabile anche gratuitamente con un limite mensile di chiamate a servizio.

Tuttavia, per poter realizzare un bot che interagisce con Telegram, è indispensabile sottoscrivere un piano a pagamento, con prezzi a partire da 2$/mese. Ad ogni modo, per iscriverti a Hook.io, collegati a questa pagina Internet, inserisci il tuo indirizzo di posta elettronica nella casella Email Address collocata nel riquadro New Developers e premi sul pulsante Create new account.

A questo punto, seleziona il piano a pagamento che desideri attivare facendo clic sul relativo prezzo (ad es. $2), immetti le informazioni relative alla tua carta di credito nell’apposito campo e, quando richiesto, clicca sul pulsante indicante il nome e il prezzo del piano scelto, per passare alla fase successiva.

A questo punto, segui la procedura guidata per la creazione del nome utente e della password da usare per accedere al servizio, pigia sul pulsante Register Account Name e annota l’indirizzo Web del tuo account che compare nella parte destra della schermata (https://hook.io/tuonomeaccount), poiché ne avrai bisogno in seguito.

Hook - Piattaforma microservizi

Completata la fase di creazione dell’account, verrai riportato alla pagina di gestione dei servizi: per iniziare, memorizza il token ricevuto in precedenza da BotFather, così da poterlo richiamare semplicemente invocando una variabile all’interno del codice (senza necessità di riscriverlo ogni volta). Clicca quindi sull’icona contrassegnata da tre levette di controllo presente nella pulsantiera del servizio (la seconda da sinistra), inserisci nel campo Key il nome della variabile (ad es. token_ripeti), incolla nel campo value il token generato da BotFather e pigia sul pulsante Save Account Environment Variables.

Fatto ciò, è arrivato il momento di creare il vero e proprio servizio che farà funzionare il bot di Telegram: clicca sulla voce Create new service collocata nella barra in alto, digita il nome che desideri dare al tuo servizio (ad es. ripeti-bot) e pigia sul pulsante Save and continue. Nella finestra successiva, imposta la voce Python 3 nel menu a tendina Language, cancella tutto ciò che è scritto nella casella di testo presente poco più in basso e incolla la parte di codice che permette al bot di “ripetere” i messaggi ricevuti, così come è scritta di seguito.

import logging

from telegram import Update, ForceReply
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext

logging.basicConfig(
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO
)

logger = logging.getLogger(__name__)

def start(update: Update, context: CallbackContext) -> None:

user = update.effective_user
update.message.reply_markdown_v2(
fr'Hi {user.mention_markdown_v2()}\!',
reply_markup=ForceReply(selective=True),
)

def help_command(update: Update, context: CallbackContext) -> None:
update.message.reply_text('AIUTO!')

def echo(update: Update, context: CallbackContext) -> None:
update.message.reply_text(update.message.text)

def main() -> None:
updater = Updater("token_ripeti")

dispatcher = updater.dispatcher

dispatcher.add_handler(CommandHandler("start", start))
dispatcher.add_handler(CommandHandler("help", help_command))

dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, echo))

updater.start_polling()

updater.idle()

if __name__ == '__main__':
main()

Ricorda di sostituire a token_ripeti il nome della variabile ambiente impostata in precedenza. Completato l’inserimento, pigia sul pulsante Save Code e attendi la notifica di conferma.

Completato l’inserimento del codice, devi invocare per la prima volta il microservizio, in modo da “dire” a Telegram che tutte le istruzioni ricevute nella chat del bot devono essere “dirottate” nel microservizio appena richiesto: per farlo, digita nella barra degli indirizzi del browser a tua disposizione il comando https://api.telegram.org/botToken/setWebhook?url=https://hook.io/tuonomeaccount/nomehook che, in questo esempio, si trasforma in https://api.telegram.org/botabcd-1234-token/setWebhook?url=https://hook.io/jessica_689/ripeti-bot. Se tutto è andato per il verso giusto, viene mostrata nel browser una risposta simile a {"ok":true,"result":true,"description":"Webhook was set"}: ciò significa che il tuo bot funziona e che, a partire da questo momento, puoi usarlo!

Tutto ciò che ti resta da fare è richiamare il bot da Telegram, pigiare sul pulsante Avvia e digitare nella finestra di chat tutto quanto vuoi far ripetere al tuo bot.

Ti avviso che, data l’estrema semplicità del bot, questo potrebbe comportarsi in modo “imprevisto” e ripetere all’infinito tutto ciò che digiti nella finestra di chat: se dovesse succedere, ritorna alla lista delle chat, premi a lungo sulla chat del bot (o fai clic destro, se stai usando Telegram per computer o Telegram Web) e seleziona Arresta bot/Arresta e blocca bot dal pannello proposto.

Per approfondimenti

Scommetto che, grazie alle mie dritte, sei riuscito a creare il tuo primo bot su Telegram e non vedi l’ora di imparare a crearne degli altri, anche più complessi: come ti ho già spiegato, quanto visto fino ad ora altro non è che un esempio delle funzioni di base di creazione e sviluppo di un bot, ma posso garantirti che le possibilità di sviluppo sono davvero sconfinate.

Giusto per farti un esempio, si possono usare, oltre al Python, anche i linguaggi Node.js, Java e PHP, è possibile far interagire il proprio bot con alcuni noti servizi Web (tra cui YouTubeGmail), si può scrivere codice per interagire con blog e siti Internet usando le API fornite dal servizio in uso (ad es. WordPressBlogger), si può facilmente creare un bot inline e tanto, tanto altro ancora.

Di seguito ti elenco una lista di siti Internet utili per approfondire il discorso sulla creazione dei bot su Telegram.

  • Guida ai bot di Telegram – in questa pagina sono disponibili tutte le informazioni di base per entrare nel mondo dei bot, tra cui le istruzioni dettagliate su come usare BotFather (generare un nuovo token d’accesso, eliminare un bot, creare un bot inline e via discorrendo).
  • Telegram bot API – è la risorsa principale per gestire i metodi relativi al parsing (o interpretazione) dei dati inclusi nelle richieste e nelle risposte HTTP.
  • Esempi di codice – qui puoi trovare degli esempi di bot funzionanti, in diversi linguaggi di scripting e programmazione.
  • Heroku – altra valida piattaforma per la creazione e l’avvio di microservizi in numerosi linguaggi di programmazione.
  • Documentazione ufficiale di Python – per imparare a programmare in Python.
  • Documentazione di Node.js – tutto quanto c’è da sapere su questa libreria di JavaScript.
  • Manuale di PHP – per imparare a programmare in PHP.
Salvatore Aranzulla

Autore

Salvatore Aranzulla

Salvatore Aranzulla è il blogger e divulgatore informatico più letto in Italia. Noto per aver scoperto delle vulnerabilità nei siti di Google e Microsoft. Collabora con riviste di informatica e cura la rubrica tecnologica del quotidiano Il Messaggero. È il fondatore di Aranzulla.it, uno dei trenta siti più visitati d'Italia, nel quale risponde con semplicità a migliaia di dubbi di tipo informatico. Ha pubblicato per Mondadori e Mondadori Informatica.