Guida per creare un Bot per Telegram con Python

Come creare un bot Telegram con Python

    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

    ComandoFunzione
    /infoInvia informazioni generali
    /orarioInvia l’orario locale
    /barzellettaInvia una barzelletta random
    /stopChiude 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.

    x0xShinobix0x

    x0xShinobix0x