Vuoi sviluppare un bot Telegram utilizzando Python? In questa guida dettagliata ti mostrerò ogni passaggio necessario, dalla creazione del bot su Telegram fino al rilascio su un server, includendo gestione dei comandi, invio di messaggi, gestione degli errori e suggerimenti per l’hosting.
Creazione del bot tramite BotFather
Telegram offre un’interfaccia ufficiale chiamata BotFather per la creazione e configurazione dei bot.
Apri l’app Telegram e cerca @BotFather
Avvia la conversazione e scrivi il comando /newbot
Segui le istruzioni per dare un nome visibile (es. “Assistente Mario”) e un nome utente univoco che termini con bot (es. “assistente_mario_bot”)
BotFather ti fornirà un token univoco, un codice simile a:
123456789:ABCdefGhIjKlMnOpQrStUvWxYz
Questo token è la chiave di accesso per interagire con le API Telegram. Salvalo in un luogo sicuro.
Preparazione dell’ambiente Python
Installa Python 3 se non lo hai già. Puoi verificarlo digitando:
python --version
Per lo sviluppo consigliamo di usare un ambiente virtuale. Crea una cartella e all’interno avvia il virtualenv:
python -m venv venv
source venv/bin/activate # su Linux/macOS
venv\Scripts\activate # su Windows
Installa la libreria ufficiale:
pip install python-telegram-bot==13.15
Nota: esistono anche versioni più recenti della libreria (v20+), ma richiedono una struttura asincrona diversa. La versione 13.15 è più semplice per iniziare.
Codice base del bot

Crea un file bot.py
e incolla il seguente codice di base:
from telegram.ext import Updater, CommandHandler
TOKEN = 'INSERISCI_IL_TUO_TOKEN'
def start(update, context):
update.message.reply_text("Ciao! Sono il tuo nuovo bot.")
def help_command(update, context):
update.message.reply_text("Usa /start per iniziare. A breve aggiungerò altri comandi!")
def main():
updater = Updater(TOKEN, use_context=True)
dp = updater.dispatcher
dp.add_handler(CommandHandler("start", start))
dp.add_handler(CommandHandler("help", help_command))
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
Per eseguire il bot, digita:
python bot.py
Apri Telegram, cerca il tuo bot e invia il comando /start
per ricevere una risposta automatica.
Aggiungere risposte personalizzate
Puoi creare handler per rispondere a messaggi non comandati (testo normale) usando MessageHandler
. Ecco un esempio per replicare tutto ciò che l’utente scrive:
from telegram.ext import MessageHandler, Filters
def echo(update, context):
update.message.reply_text(update.message.text)
dp.add_handler(MessageHandler(Filters.text & ~Filters.command, echo))
Questo farà sì che il bot ripeta ogni messaggio inviato dall’utente, tranne i comandi.
Gestione degli errori
È importante gestire gli errori per evitare che il bot si blocchi. Aggiungi questo handler:
def error(update, context):
print(f'Errore: {context.error}')
dp.add_error_handler(error)
Protezione del token
Per evitare di esporre il token nel codice, puoi salvarlo in un file .env
o in una variabile d’ambiente. Con il modulo python-dotenv
:
pip install python-dotenv
Crea un file .env
con:
BOT_TOKEN=123456789:ABCdefGhIjKlMnOpQrStUvWxYz
Nel tuo script:
import os
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv("BOT_TOKEN")
Eseguire il bot 24/7
Per mantenere il bot attivo:
- Usa un server VPS (es. Hetzner, Contabo, DigitalOcean)
- Oppure un hosting gratuito come Heroku (con limiti) o Render
- In alternativa, puoi utilizzare un Raspberry Pi con connessione stabile
Per avviarlo in background:
nohup python bot.py &
Esempi di comandi utili da implementare
Comando | Funzione |
---|---|
/info | Invia informazioni generali |
/orario | Invia l’orario locale |
/barzelletta | Invia una barzelletta random |
/stop | Chiude la sessione (se previsto) |
Suggerimenti finali
- Usa un database (es. SQLite o MongoDB) se vuoi salvare dati degli utenti
- Gestisci bene i permessi del bot, specialmente nei gruppi
- Aggiungi inline keyboard e callback per un’interazione avanzata
- Valuta l’uso di webhook anziché polling per maggiore efficienza in produzione
Questa guida ti ha fornito tutto ciò che serve per creare un bot Telegram funzionante con Python. Puoi ora estendere le sue funzionalità con creatività e logica.