Bot telegram: un’introduzione generale

Pubblicato in GuideTaggato
Pubblicato il: 05-05-2021 18:54

Bot Telegram

I bot telegram sono dei software la cui funzione è quella di interagire automaticamente fornendo il servizio per il quale sono stati programmati. Gli utenti impartiscono al bot dei comandi sotto forma di richieste http, tramite chat. Alcuni bot sono ufficiali, creati direttamente dal team Telegram, la maggior parte però sono creati da sviluppatori terzi. Chiunque può cimentarsi nell’impresa, sfruttando le API fornite da Telegram, per la creazione del proprio bot. I campi di applicazione di questa tecnlogia, sono molteplici, spaziano dal gioco, agli incontri, alle notifiche meteo e molto altro ancora.

Come creare un BOT

La creazione di un BOT non  è un’operazione complessa. Per iniziare bisogna rivolgersi proprio a un bot, che Telegram facendo un gioco di parole (che non rende in italiano) ha chiamato  BotFather.  Basta cercarlo utilizzando l’apposita barra e lasciarci guidare nella procedura.

Una volta avviata la conversazione, digitiamo il comando /newbot. Ora seguiamo le istruzioni di Botfather scegliendo un nome e una username per il bot. Uno screen vale più di mille parole, in figura trovate tutta la conversazione con Bothfather.

Come potete vedere, è stato creato un bot dal nome my1stbot e username generic_example_bot. Se nome e username non sono validi, vi verrà chiesto di reinserirli, ricordate che la username deve terminare con bot.

Terminata la procedura vi verrà fornito il token per le HTTP API. Custoditelo gelosamente perché sarà la chiave di accesso per gestire e programmare il BOT.

Se volete eliminare il bot o cambiarne il profilo, potrete farlo attraverso i seguenti comandi:

  • /setname – Cambia il nome del BOT.
  • /setdescription — Cambia la descrizione del BOT.
  • /setabouttext — Cambia le informazioni sul BOT.

Programmare il BOT

Entriamo ora nel vivo, programmiamo il bot affinchè esegua il compito desiderato. In questa breve guida, userò il linguaggio python, ma non è l’unico linguaggio utile a questo fine, potete anche ricorrere a Javascript o altro.

Utilizzerò la libreria telepot, che consente di implementare bot con semplici passaggi. Installiamola con pip install telepot.
Creiamo il file my1stbot.py, apriamolo e inseriamo il codice del nostro bot.

Importiamo la libreria e creaiamo la funzione on_chat_message che riceverà in input il messaggio che è stato inviato al bot, contenuto nel parametro msg:


import telepot

nome = msg["from"]["first_name"]

def on_chat_message(msg):
    content_type, chat_type, chat_id = telepot.glance(msg)
    if content_type == 'text':
        bot.sendMessage(chat_id, 'Hello %s'%nome)

All’interno della funzione vengono create tre variabili:

  • content_type restituisce il  tipo di dati sono contenuti nel messaggio (testo, immagine,  messaggio vocale, o altro);
  • chat_type contiene informazioni sul tipo di chat: se privata, gruppo, ecc.
  • chat_id contiene un identificativo univoco alla chat.

Controlliamo poi che il messaggio inviato sia di tipo testuale, verificando appunto che la variabile content_type sia di tipo text. Se questo risulta vero, il bot invia nella un messaggio. Con la variabile nome estrapoliamo il nome dell’utente con il qule il bot sta dialogando, supponiamo si chiami UtenteX, gli verrà inviato il messaggio “Hello UtenteX”

Per inizializzare il bot si usano le seguenti stringhe di codice:

TOKEN ='*** token fornito da Botfather nel momento della creazione ***'
bot = telepot.Bot(TOKEN)

Dal nostro bot richiamiamo la funzione on_chat_message in modo che risponda ogni volta che riceve un messaggio.

Siamo giunti alla fine di questo semplice programma


print('Listening ...')

import time
while 1:
    time.sleep(10)

Queste ultime stringhe servono per fare in modo che il programma venga eseguito in loop, senza che termini l’esecuzione. Il ciclo while, per come è stato scritto,  è un ciclo infinito, senza di esso il programma terminerebbe e il bot non risponderebbe alla chat.

Hosting del codice del BOT

Per rendere quanto fatto fino ad ora effettivamente funzionante, bisogna trovare un servizio hosting che ospiti il codice del nostro bot. In rete esistono vari servizi del genere. Dal momento che è stato utilizzato python, se siete alla ricerca di un servizio gratuito, vi consiglio di fare il deploy del codice su heroku  una piattaforma cluod per applicazioi di varia natura, una PaaS (Platform as a Structure). Heroku consente di fare il deploy di un massimo di 5 applicazioni in maniera gratuita ma con funzionalità limitate. Per fare il deploy non basta prendere il codice nudo e crudo e metterlo su heroku, ci sono una serie di altri passaggi volti a creare una vera e propria app. Chiaramente heroku, non consente solo di fare il deploy di codice python, potete usare un qualsiasi altro linguaggio. Esistono molti altri servizi del genere, citarli tutti sarebbe impossibile.

Per chi volesse usare Javascript, una soluzione gratuita può essere quella di creare un account sulla piattaforma autocode.com che funzionerà da hosting.

Per i bot scritti in php invece, potrete ricorrre all’hosting gratuito Hostinger.

Nessun voto disponibile

Che te ne pare?

Grazie per aver letto Bot telegram: un’introduzione generale di Carmelo Marasco su Trovalost.it
Bot telegram: un’introduzione generale (Guide, Messaggistica Istantanea)

Articoli più letti su questi argomenti:
Trovalost.it è gestito, mantenuto, ideato e (in gran parte) scritto da Salvatore Capolupo