Attenzione!!!
I contenuti di questo articolo potrebbero essere non aggiornati e pertanto risultare obsoleti, consulta la nuova guida su come creare un bot in python
https://www.fabiobiffi.it/sito/crea-il-tuo-primo-bot-telegram-in-meno-di-30-minuti-con-python/
Bentornato sul mio Blog, in questo articolo vado a spiegarti passo passo come creare un BOT per Telegram usando il linguaggio Python e la libreria “pyTelegramBotAPI“.
1. Cos’è un BOT per Telegram?
Il termine “BOT” sta ad indicare “Robot” e in ambito Telegram intendiamo un software che tramite i messaggi comunica con l’utente che può impartirgli comandi da eseguire. Detta così può sembrare complicato ma in realtà è molto semplice di quanto si creda.
2. Cosa può fare un BOT?
Potenzialmente un BOT per Telegram può fare letteralmente di tutto, ci sono BOT che monitorano le offerte su Amazon, quelli che ti notificano il meteo, ci sono bot che permettono il download di video da YouTube e BOT in grado di ascoltare messaggi vocali e trascriverli in testo per noi … Potrei andare avanti all’infinito ad elencare BOT famosi ma non è l’intento di questo articolo. Se vuoi conoscere i migliori BOT Telegram ti consiglio di guardare uno dei video qui sotto.
3. Consigli di lettura per imparare Python
Qui di seguito trovi alcuni libri che ritengo possano tornarti molto utili per imparare le basi di Python e cominciare in autonomia lo sviluppo dei tuoi primi BOT per Telegram.
Qui invece un libro dedicato allo sviluppo di BOT Telegram, in molti linguaggi di programmazione, non solo Python!
4. Python e la libreria “pyTelegramBotAPI”
Come accennato in precedenza andremo a sviluppare un BOT utilizzando il linguaggio di programmazione Python e più in particolare la libreria “pyTelegramBotAPI” che va a semplificare di molto la gestione delle chiamate GET e POST per i vari messaggi. Prima di iniziare con l’effettiva creazione del BOT è bene capire come funziona l’architettura di Telegram e dei sui BOT.

Come potete vedere nell’immagine non avviene mai una comunicazione diretta tra BOT e client, di mezzo è sempre presente il Server di Telegram che si occupa di raccogliere i messaggi provenienti dal client e di tenerli in memoria.
Deve essere il nostro BOT, ogni tot tempo, ad interrogare il server di Telegram per chiedere se sono presenti nuovi messaggi ed eventualmente inoltrare le risposte a tali messaggi.
La libreria “pyTelegramBotAPI” ci viene incontro fornendo allo sviluppatore i metodi necessari a compiere tutte le operazioni di sincronizzazione con il Server Telegram.
5. Registriamo il nostro BOT su Telegram
La primissima operazione da compiere consiste nell’aprire l’app di Telegram (possibilmente da pc) e cercare l’utente chiamato “BotFather“, andremo a finire sul BOT ufficiale per registrare nuovi BOT sulla piattaforma.
digitiamo il comando “/newbot” e seguiamo la procedura guidata.

Una volta creato il nostro BOT ci viene fornita una API key, salviamola e non pubblichiamola da nessuna parte, è una chiave privata da NON condividere con nessuno in quanto è la chiave d’accesso al server Telegram per leggere i messaggi inviati al nostro BOT.
Fatto ciò avrai registrato il tuo BOT correttamente, infatti potrai ricercarlo nella lista degli utenti di Telegram e iniziare ad impartirgli comandi, chiaramente al momento il BOT non fa nulla in quanto non siamo ancora andati a scrivere il codice per farlo funzionare.
6. Passiamo al codice
Come prima cosa mi creo un file “bot.py” sul Desktop del mio computer, lo apro e vado ad incollare il seguente codice:
#!/usr/bin/python
# This is a simple echo bot using the decorator mechanism.
# It echoes any incoming text messages.
import telebot
API_TOKEN = '<api_token>'
bot = telebot.TeleBot(API_TOKEN)
# Handle '/start' and '/help'
@bot.message_handler(commands=['help', 'start'])
def send_welcome(message):
bot.reply_to(message, """\
Hi there, I am EchoBot.
I am here to echo your kind words back to you. Just say anything nice and I'll say the exact same thing to you!\
""")
# Handle all other messages with content_type 'text' (content_types defaults to ['text'])
@bot.message_handler(func=lambda message: True)
def echo_message(message):
bot.reply_to(message, message.text)
bot.polling()
Al posto di “<api_token>” devi incollare il codice che BotFather ti aveva fornito in fase di registrazione del BOT.
Fatto ciò puoi salvare il file ed aprire un terminale, da qui dovrai lanciare i seguenti comandi:
pip install pyTelegramBotAPI
Per scaricare ed installare la libreria e poi successivamente:
python bot.py
Per far partire il BOT, se hai fatto tutto correttamente il terminale si troverà nel seguente stato:

Se adesso provassimo a scrivere un messaggio al nostro BOT lui ci risponderà semplicemente con una copia del nostro stesso messaggio.

Adesso sai che il tuo BOT funziona e puoi quindi andare ad ampliarne le sue funzionalità. Modifica il tuo codice sostituendolo con questo:
#!/usr/bin/python
# This is a simple echo bot using the decorator mechanism.
# It echoes any incoming text messages.
import telebot
API_TOKEN = '<inserisci il tuo token qui>'
bot = telebot.TeleBot(API_TOKEN)
# Handle '/start' and '/help'
- questa funzione viene eseguita quando si scrive /start
@bot.message_handler(commands=['help', 'start'])
def send_welcome(message):
bot.reply_to(message, """\
Benvenuto nel primo BOT di prova
""")
# Handle all other messages with content_type 'text' (content_types defaults to ['text'])
- questa funzione viene eseguita quando si scrive qualsiasi messaggio
@bot.message_handler(func=lambda message: True)
def echo_message(message):
bot.reply_to(message, 'Ciaoooooooo')
bot.polling()
Adesso il tuo BOT risponderà sempre “ciaoooo” a qualsiasi cosa gli venga scritto.
7. Dai sfogo alla creatività
Adesso hai un tuo BOT che funziona, sta a te decidere cosa fargli fare. Tieni a mente che appena chiudi il terminale il BOT non sarà più in esecuzione, ti consiglio di caricare il tuo codice su un server locale oppure online, io solitamente uso un Raspberry che tengo sempre acceso così che il mio BOT funzioni h24.
8. BOT personalizzati su richiesta
Hai una idea e poco tempo / voglia per svilupparla? Contattami e realizzerò personalmente il tuo BOT Telegram, visita la pagina per saperne di più
Oppure lascia un commento qui sotto. Ti saluto, alla prossima 🙂
scusate se mi intrometto .. sto cercando uno script python per un bot di Telegram, in pratica scarica automaticamente un file pdf dal bot. chi mi aiuti. grazie
Ciao, se mi fornisci qualche dettaglio in più posso aiutarti 🙂
Sto cercando di creare un bot che pubblichi le offerte Amazon su un canale telegram.
Avendo un codice di affiliazione Amazon vorrei sfruttarlo al meglio.
Grazie e buona giornata
Salve, sarebbe possibile fare dei messagi programmati che vengono inviati ogni ora tipo?, se si come?
grazie della risposta
Ciao, si sarebbe possibile. Spiegare in un commento come farlo penso sia molto difficile, ti spiego la logica che adotterei io in questo caso (in realtà sarebbe tutto da testare). Praticamente io farei una sorta di ciclo “while” con una condizione sempre a true, dentro il ciclo inserirei il comando per inviare il messaggio e subito dopo una funzione “sleep” con il tempo che desidero. Così facendo il BOT continuerebbe a lavorare in loop intervallato dal tempo che decidi di impostare. Spero si sia capito un po’ cosa intendo :).
In ogni caso se poi hai ulteriore bisogno scrivimi pure una mail o usa i metodi di contatto presenti nel sito.
Scusate il disturbo, sto cercando di capire come si crea un bot telegram che modifichi automaticamente i link che li mando, mi spiego meglio. Vorrei poter mandare un link di Amazon a questo bot che automaticamente crei un offerta telegram pronta da mandare su un canale delle offerte
Es. Io mando questo link: https://amzn.to/3gqizMm
E lui mi risponde mandandomi:
ASUS TUF Gaming VG259Q, Monitor Gaming 25” (24.5”) FHD (1920×1080) IPS, 1ms, Refresh rate 144Hz, DP, HDMI, Super Narrow Bezel, FreeSync & G-Sync Compatible, Low Blue Light, Flicker Free
-> In offerta a 239,99€ (da 349,99€)
~ https://amzn.to/3gqizMm
Purtroppo non so se è realizzabile visto che devo ancora iniziare a programmare 😅
il bot in se non è complicato da realizzare, purtroppo se non hai mai programmato potrebbe risultare difficile. fammi sapere se hai bisogno di aiuto.
Purtroppo credo sia meglio aspettare che io impari a programmare a scuola prima di addentrarmi in questo mondo, ho provato ad aprire un editor di testo e non sapevo proprio da cosa iniziare o cosa fare 😅
Sto cercando di creare un bot che pubblichi le offerte Amazon su un canale telegram.
Avendo un codice di affiliazione Amazon vorrei sfruttarlo al meglio.
Grazie e buona giornata
Credo mi convenga aspettare di imparare a programmare a scuola 😅 ho aperto un editor di testo e non sapevo nemmeno da dove iniziare, purtroppo per me è ancora un mondo sconosciuto questo
Per sbaglio ho mandato un altro commento invece di rispondere 🤭
Non mi funziona ottengo questo errore:
@bot.message_handler(func=lambda message: True)
AttributeError: ‘TeleBot’ object has no attribute ‘message_handler’
Non capisco come caricare il codice sul bot, io ho già il bot fatto e il codice scritto, ma come glielo carico sul bot??
Cosa intendi con “come lo carico sul bot?” il codice è il tuo bot.
Devi riportare nel file compilato il TOKEN del bot comunicato da BotFather
Ciao, sapete dove posso hostare il bot gratuitamente senza pagare una VPS?
Ciao, puoi hostare gratuitamente il tuo BOT qui: https://www.pythonanywhere.com/
Ciao, ma per far funzionare il bot devo tenere il codice aperto (ad esempio su powershell)? se lo chiudo il bot non funziona più
esatto devi tenere powershell aperto
Buonasera, io vorrei far in modo che quando interrogo il bot installato su un raspberry installato su un presepio questo possa inviermi lo stato si alcuni parametri e magari poter modificare qualche impostazione.
Credi che sia possibile ?
Grazie
Ciao piacere Dani
Sto cercando di capire come collegare il mio wallet al mio bot telegram in modo da poter fare operazioni .
Cioè sono collegato ad un bot trading nel mio bot ci sono degli utenti che depositano come faccio a creare il prelievo automatico dei loro guadagni tramite il mio wallet ?
E come faccio ad inserire un calcolatore di guadagni automatico in base ai loro depositi?