Creare un semplice Bot Telegram in PHP [ITA]
Spesso realizzare un Bot può sembrare un impresa difficile e costosa. In quest’articolo parlerò di come è possibile creare un Bot Telegram con funzionalità molto semplici utilizzando un hosting PHP che supporta HTTPS. E’ possibile trovare un hosting di questo tipo spendendo veramente poco.
Cosa è un Bot Telegram
Telegram definisce un Bot come un’ applicazione di terze parti che vengono eseguite all’interno di telegram. L’utente può interagire con i bot inviando messaggi, comandi e altri tipi di richieste. L’interazione tra l’applicazione e Telegram avviene utilizzando richieste HTTPS e il formato è utilizzato è definito dalla Bot API di Telegram (https://core.telegram.org/bots/api).
Ovviamente la complessità del Bot dipende dalla complessità della sua implementazione e può andare dalla semplice risposta automatica a programmi complessi che utilizzano l’intelligenza artificiale. Lo scopo di quest’articolo è quello di raggiungere in breve tempo un risultato accettabile con un bot che implementa le API di base per ricevere i messaggi degli utenti e inviare risposte.
Telegram permette di interagire con le proprie API in due modalità:
- webhook: Telegram invoca il nostro BOT ogni qualvolta ci sarà un nuovo "evento". Per questa modalità è indispensabile HTTPS.
- long polling: Il nostro BOT chiede periodicamente a Telegram se ci sono nuovi eventi da gestire.
In questo articolo utilizzeremo la modalità “webhook”, andremo a definire una pagina php che servirà le richieste provenienti da Telegram. Nell’immagine che segue vediamo il tipico scenario che segue l’invio di un messaggio da parte dell’utente che da smartphone scrive qualcosa al bot. L’app di telegram comunica ai propri server che un determinato utente ha inviato un messaggio a sua volta inoltra la richiesta al nostro servizio che dovrà gestire l’evento. A questo punto il servizio php elabora la risposta le la inoltra al server Telegram che la inoltra all’applicazione dello smartphone.
Passiamo alla pratica e creiamo il nostro bot.
Come creare un nuovo Bot
Telegram permette di creare nuovi Bot utilizzando un Bot speciale chiamato “BotFather”. Per questo motivo è indispensabile avere un account Telegram. L’account ci tornerà utile anche per fare qualche test e verificare il funzionamento del nostro Bot.
Accediamo a Telegram da smartphone o da web (https://web.telegram.org/) e seguiamo questi passi:
- creiamo una nuova conversazione con l'utente BotFather oppure clicca qui: Botfather
- digitiamo il comando /newbot
- Inseriamo il nome del nostro bot, io sceglierò Botzellette
- Inseriamo lo username del bot che deve terminare per "bot", io sceglierò Botzellette_bot, voi sceglietene un altro perchè non possono esistere più bot con lo stesso username.
A questo punto, BotFather genera un token che ci sarà utile più avanti per utilizzare le API. NOTA: custodite il token al sicuro perchè permette a chiunque di controllare il vostro BOT.
A questo punto abbiamo un token e possiamo definire il servizio PHP.
Sviluppo
A questo punto possiamo cominciare a scrivere codice, come avrete capito dal nome del bot, vedremo come creare un bot che risponde a richieste dell’utente con alcune barzellette. Per semplicità, l’applicazione non applica logiche complesse, ne fa accessi a database ne implementa intelligenze artificiali. L’esempio che andremo a scrivere ascolterà due comandi:
- /menu: per mostrare il menu
- /next: per richiedere una barzelletta in modo randomico da un insieme predefinito
A questo punto non ci resta che pubblicare la pagina php e prenderne il path compreso https. Nel mio caso sarà: https://www.rmarcello.it/Botzellette/index.php.
Impostare il Webhook
Come abbiamo detto nei passaggi precedenti la “connessione” tra i server Telegram e il servizio che abbiam implementato è il Webhook. Bisogna dire alla API di tegram che può gestire tutti i messaggi destinati al nostro bot tramite il nostro link. Apriamo un semplice browser al link:
https://api.telegram.org/bot
se otterrete:
allora possiamo provare il nostro bot, accediamo a t.me/Botzellette_bot.
Test
Per testare il nostro bot, basta aprire una finestra di chat e inviare messaggi:
Oppure guarda questo:
Conclusioni
L’articolo è molto semplice ed ha come scopo quello di mostrare come è possibile utilizzare un semplice dominio PHP per realizzare un BOT Telegram sempre online e senza spendere un capitale per hosting complessi.
L’esempio trattato è molto “casareccio” e implementa manualmente le API base di Telegram. Per la realizzazione di logiche complesse vi consiglio di utilizzare qualche libreria che vi semplificherà la vita sulla gestione degli eventi, immagini, accessi a database e molto altro.