Torna al blog
Guides

Webhook per Bot Telegram: La Guida Completa all'Installazione (2026)

Padroneggia i webhook per bot Telegram nel 2026. Scopri le differenze con il polling, come configurarli in sicurezza, risolvere errori comuni e scalare la tua infrastruttura bot con TeleClaw.

Webhook per Bot Telegram: La Guida Completa all'Installazione (2026)

Webhook per Bot Telegram: La Guida Completa all’Installazione (2026)

Se hai mai sviluppato un bot Telegram, avrai quasi certamente incontrato due termini: polling e webhook. Il polling è il punto di partenza più semplice – il tuo codice esegue un ciclo e chiede a Telegram “ci sono nuovi messaggi?” ogni secondo – ma non scala bene e consuma risorse inutilmente. I webhook ribaltano il modello: Telegram chiama il tuo server ogni volta che succede qualcosa, rendendo il tuo bot più veloce, più economico da gestire e molto più adatto per la produzione.

Questa guida copre tutto ciò che devi sapere sui webhook per bot Telegram nel 2026: come funzionano, come configurarli in sicurezza, come risolvere i problemi comuni e come piattaforme come TeleClaw eliminano la maggior parte della complessità operativa.

Punti Chiave

  • I webhook sono “push”, il polling è “pull”. I webhook eliminano chiamate API non necessarie e riducono la latenza quasi a zero.
  • L’HTTPS è obbligatorio. Telegram richiede un certificato TLS valido sul tuo endpoint. Let’s Encrypt e Cloudflare lo rendono gratuito e semplice.
  • Un bot, un URL webhook. Telegram consegna gli aggiornamenti a un solo endpoint. Se registri un nuovo URL, il vecchio smette immediatamente di ricevere aggiornamenti.
  • Restituisci 200 rapidamente. Telegram attende fino a 60 secondi per un 200 OK. Se il tuo endpoint va in timeout o restituisce un errore, Telegram ritenterà, portando a elaborazioni duplicate se non fai attenzione.
  • TeleClaw automatizza tutto questo. Le piattaforme gestite si occupano della registrazione del webhook, del TLS e della logica di retry, così tu scrivi la logica invece di occuparti dell’infrastruttura.

Come Funzionano i Webhook per Bot Telegram

Quando un utente invia un messaggio al tuo bot, l’infrastruttura di Telegram lo riceve e invia immediatamente una richiesta HTTP POST all’URL del tuo webhook registrato. Il corpo della richiesta è un oggetto Update codificato in JSON, che può contenere un messaggio, un messaggio modificato, una callback query da una tastiera inline, un pagamento e molto altro.

Il tuo server deve:

  1. Parsare il JSON in arrivo.
  2. Determinare il tipo di aggiornamento e instradarlo al gestore appropriato.
  3. Rispondere con HTTP 200 OK (il corpo può essere vuoto o una semplice risposta API).
  4. Opzionalmente chiamare l’API Bot di Telegram per inviare una risposta o intraprendere altre azioni.

L’intero ciclo di andata e ritorno si completa tipicamente in meno di 100 millisecondi per risposte semplici, offrendo agli utenti un’esperienza quasi istantanea.

L’Oggetto Update

Ogni payload del webhook inizia con un update_id – un intero che aumenta monotonicamente e che puoi usare per rilevare duplicati – seguito da esattamente un campo opzionale che descrive il tipo di evento:

CampoAttivato da
messageNuovo messaggio in una chat privata o di gruppo
edited_messageL’utente modifica un messaggio esistente
channel_postNuovo post in un canale dove il bot è amministratore
callback_queryL’utente tocca un pulsante della tastiera inline
inline_queryL’utente digita @tuobot in qualsiasi chat
pre_checkout_queryL’utente conferma un pagamento (Telegram Payments)
my_chat_memberLo stato di appartenenza del bot cambia

Capire quale campo è presente ti permette di instradare gli aggiornamenti al gestore giusto senza parsare l’intero payload.

Configurare un Webhook per Bot Telegram: Passo Dopo Passo

Passo 1: Ottieni il Tuo Token Bot

Se non hai ancora creato un bot, apri BotFather su Telegram e invia /newbot. Segui le istruzioni per dare un nome al tuo bot e ricevere un token nel formato 123456789:ABCdef.... Mantieni questo token segreto: chiunque lo possieda può impersonare il tuo bot.

Passo 2: Prepara un Endpoint HTTPS

I server di Telegram invieranno gli aggiornamenti tramite POST al tuo URL, quindi deve essere raggiungibile pubblicamente tramite HTTPS sulla porta 443, 80, 88 o 8443. In pratica, la maggior parte degli sviluppatori usa la porta 443.

Le tue opzioni per ottenere un certificato TLS valido:

  • Let’s Encrypt — gratuito, ampiamente affidabile, rinnovabile automaticamente tramite Certbot o strumenti simili.
  • Cloudflare Proxy — metti la tua origine dietro Cloudflare e ottieni la terminazione TLS gratuitamente. Gli intervalli IP di Telegram possono raggiungere l’edge di Cloudflare senza configurazioni speciali.
  • Piattaforme gestite come TeleClaw — se distribuisci il tuo bot tramite TeleClaw, la piattaforma fornisce automaticamente un endpoint HTTPS sicuro. Nessuna gestione di certificati richiesta.
  • Certificato auto-firmato — tecnicamente supportato da Telegram, ma devi caricare il file .pem quando chiami setWebhook. Evitalo in produzione; aggiunge complessità e non è affidabile per i browser.

Passo 3: Registra il Webhook

Chiama il metodo setWebhook usando una semplice richiesta HTTPS GET o POST, o tramite qualsiasi libreria API Bot di Telegram:

https://api.telegram.org/bot<TOKEN>/setWebhook?url=https://yourdomain.com/webhook/<TOKEN>

Includere il tuo token nel percorso (ad esempio, /webhook/123456789:ABCdef) è un pattern di sicurezza comune: agisce come un segreto condiviso, assicurando che solo Telegram possa attivare il tuo endpoint. Mantieni sempre questo URL privato.

Parametri aggiuntivi utili:

ParametroScopo
urlIl tuo endpoint HTTPS (obbligatorio)
certificateFile PEM per certificati auto-firmati
max_connectionsNumero massimo di connessioni simultanee (1–100, predefinito 40)
allowed_updatesArray di tipi di aggiornamento da ricevere (omettere eventi indesiderati)
drop_pending_updatesCancella il backlog quando si registra un nuovo URL
secret_tokenValore dell’header che Telegram aggiunge a ogni richiesta per la verifica

Il parametro secret_token (disponibile dall’API Bot 6.0) è particolarmente utile. Se impostato, Telegram include un header X-Telegram-Bot-Api-Secret-Token su ogni consegna. Il tuo endpoint può validare questo header prima di elaborare il payload, difendendosi da richieste spoofate.

Passo 4: Verifica la Registrazione

Chiama getWebhookInfo per confermare che tutto sia configurato correttamente:

https://api.telegram.org/bot<TOKEN>/getWebhookInfo

Una risposta di successo appare così:

{
  "ok": true,
  "result": {
    "url": "https://yourdomain.com/webhook/123456789:ABCdef",
    "has_custom_certificate": false,
    "pending_update_count": 0,
    "last_error_date": null,
    "last_error_message": null,
    "max_connections": 40,
    "allowed_updates": ["message", "callback_query"]
  }
}

Se last_error_message contiene qualcosa, quello è il tuo primo indizio per il debug.

Passo 5: Scrivi e Distribuisci il Tuo Gestore

Ecco un gestore webhook minimale in Python usando Flask come esempio:

import hmac
import hashlib
from flask import Flask, request, jsonify

app = Flask(__name__)
BOT_TOKEN = "YOUR_TOKEN"
SECRET_TOKEN = "YOUR_SECRET_TOKEN"

@app.route(f"/webhook/{BOT_TOKEN}", methods=["POST"])
def webhook():
    # Validate secret token
    incoming = request.headers.get("X-Telegram-Bot-Api-Secret-Token", "")
    if not hmac.compare_digest(incoming, SECRET_TOKEN):
        return jsonify({"error": "Unauthorized"}), 403

    update = request.get_json()
    if update.get("message"):
        chat_id = update["message"]["chat"]["id"]
        text = update["message"].get("text", "")
        # ... handle the message
    return "", 200  # Always respond 200 quickly

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=443)

La regola fondamentale: rispondi 200 il più velocemente possibile. Se la tua elaborazione è lenta (chiamare un LLM, interrogare un database), scaricala su una coda in background e rispondi immediatamente. Telegram ritenterà qualsiasi aggiornamento che non riceve un 200 entro 60 secondi, e i retry seguono un back-off esponenziale fino a 25 secondi di distanza, continuando per un massimo di 24 ore.

Errori Comuni dei Webhook e Come Risolverli

”Risposta errata dal webhook: 403 Forbidden”

Il tuo endpoint sta rifiutando gli indirizzi IP di Telegram. Controlla le regole del tuo firewall. Telegram pubblica i suoi intervalli IP — consentili esplicitamente, oppure consenti tutto il traffico in entrata sulla porta del tuo webhook e affidati all’header secret_token per l’autenticazione.

”Handshake SSL fallito”

Il tuo certificato TLS è scaduto, auto-firmato senza essere caricato, o utilizza una suite di cifratura che Telegram non supporta. Telegram richiede TLS 1.2 o superiore. Rinnova il tuo certificato, o passa a una CDN come Cloudflare che gestisce il TLS automaticamente.

Gli aggiornamenti arrivano ma compaiono duplicati

Stai impiegando più di 60 secondi per restituire 200, quindi Telegram ritenta. Sposta l’elaborazione pesante su un worker in background e rispondi immediatamente. Rendi anche il tuo gestore idempotente controllando update_id rispetto a una cache o un database prima di elaborare.

”Webhook configurato, ma nessun aggiornamento arriva”

Verifica se un altro processo o deployment ha sovrascritto la tua registrazione del webhook. Chiama getWebhookInfo per vedere l’URL corrente. Conferma anche che allowed_updates non stia filtrando il tipo di aggiornamento che ti aspetti — se allowed_updates omette message, non riceverai mai messaggi semplici.

Scalare l’Infrastruttura dei Webhook

Per bot a basso traffico, un singolo server gestisce tutto. Man mano che la tua base utenti cresce, incontrerai nuove sfide.

La scalabilità orizzontale è semplice con i webhook: esegui più istanze del tuo gestore dietro un load balancer. Poiché il parametro max_connections di Telegram controlla quante connessioni simultanee Telegram apre al tuo endpoint, puoi regolarlo per adattarlo alla tua capacità. Impostalo troppo alto e sovraccarichi un singolo server; impostalo troppo basso e gli aggiornamenti si accodano dal lato di Telegram.

L’elaborazione basata su code disaccoppia la ricezione degli aggiornamenti dall’azione su di essi. Il tuo gestore webhook inserisce ogni Update in una coda di messaggi (Redis, RabbitMQ, SQS), risponde 200 immediatamente, e un pool di processi worker preleva gli elementi al proprio ritmo. Questo pattern previene completamente i timeout e ti permette di scalare i worker indipendentemente dal ricevitore del webhook.

L’idempotenza diventa essenziale su larga scala. Archivia i valori update_id elaborati in un archivio chiave-valore veloce come Redis e salta qualsiasi aggiornamento che hai già gestito. Combinato con operazioni atomiche, questo previene risposte duplicate anche quando si verificano retry.

La distribuzione geografica può ridurre la latenza per basi utenti globali. Distribuisci i ricevitori webhook in più regioni e usa il routing basato su DNS o una CDN globale per indirizzare la consegna di Telegram all’endpoint più vicino.

Perché TeleClaw Semplifica Tutto Questo

Gestire l’infrastruttura dei webhook – certificati TLS, load balancer, gestione dei retry, liste di IP consentiti – è un lavoro pesante e indifferenziato. TeleClaw lo elimina completamente.

Quando connetti il tuo token bot a TeleClaw:

  • Registrazione automatica del webhook. TeleClaw registra un endpoint HTTPS sicuro e conforme a Telegram per il tuo bot. Non tocchi mai setWebhook manualmente.
  • TLS integrato. Tutti gli endpoint sono serviti tramite HTTPS con certificati gestiti dall’infrastruttura di TeleClaw. Nessuna configurazione di Let’s Encrypt, nessun cron job di Certbot.
  • Monitoraggio della consegna. TeleClaw traccia ogni aggiornamento in arrivo, registra gli errori di consegna e li mostra nella tua dashboard in modo da poter diagnosticare i problemi senza interrogare manualmente getWebhookInfo.
  • Visibilità dei retry. Quando Telegram ritenta un aggiornamento fallito, TeleClaw ti mostra perché è fallito e quanti retry si sono verificati.
  • Scalabile per impostazione predefinita. L’infrastruttura edge di TeleClaw scala per gestire i picchi di traffico senza alcuna configurazione da parte tua.

Per gli sviluppatori che vogliono concentrarsi sulla logica del bot piuttosto che sulle operazioni, il livello webhook gestito di TeleClaw è il percorso più veloce per un bot Telegram pronto per la produzione. Per maggiori informazioni sulla creazione di bot avanzati con TeleClaw, consulta le nostre guide sulla gestione della comunità Telegram e sul bot Telegram per le aziende.

Passare dal Polling ai Webhook

Se hai già un bot che usa il polling e vuoi migrare:

  1. Elimina il ciclo di polling dal tuo codice. Se usi getUpdates, smetti di chiamarlo.
  2. Prepara il tuo endpoint HTTPS e distribuisci la tua logica di gestione esistente dietro di esso.
  3. Chiama setWebhook con il tuo nuovo URL. Questo annulla automaticamente qualsiasi polling attivo.
  4. Imposta drop_pending_updates: true se vuoi scartare il backlog accumulato invece di elaborare i vecchi messaggi all’avvio.
  5. Verifica con getWebhookInfo e invia un messaggio di prova per confermare che gli aggiornamenti arrivano.

La migrazione è solitamente reversibile: chiamare deleteWebhook elimina la configurazione del webhook e ti permette di riprendere il polling tramite getUpdates.

I webhook per bot Telegram sono il modo di livello produttivo per ricevere aggiornamenti. Eliminano il sovraccarico del polling, riducono la latenza e scalano in modo pulito. La configurazione richiede un endpoint HTTPS, un certificato valido e una chiamata a setWebhook – tutto gestibile con gli strumenti moderni. Le insidie più comuni (tempi di risposta lenti, certificati scaduti, regole firewall mancanti) hanno soluzioni ben note una volta che sai dove cercare.

Per i team che vogliono saltare completamente il lavoro di infrastruttura, TeleClaw gestisce automaticamente la registrazione del webhook, il TLS, il monitoraggio e la scalabilità – permettendoti di rilasciare un bot Telegram affidabile e veloce senza diventare un esperto DevOps.


Pronto a distribuire un bot Telegram in produzione senza gestire i webhook da solo?

Inizia a costruire con TeleClaw oggi stesso.

Visita TeleClaw.bot o Interagisci con @claw direttamente su Telegram

FAQ

Domande frequenti

Qual è la differenza tra un webhook e il polling per un bot Telegram?
Con il polling, il tuo bot interroga ripetutamente i server di Telegram per nuovi aggiornamenti a intervalli regolari, sprecando risorse quando il traffico è basso e introducendo latenza. Un webhook inverte questo meccanismo: Telegram invia gli aggiornamenti al tuo server non appena arrivano. I webhook sono più efficienti, hanno una latenza inferiore e sono l'approccio raccomandato per qualsiasi bot Telegram in produzione.
È necessario l'HTTPS per un webhook di un bot Telegram?
Sì. Telegram consegna i payload dei webhook solo tramite HTTPS e richiede un certificato TLS valido. I certificati auto-firmati sono accettati solo se fornisci il file del certificato quando chiami setWebhook. Per semplicità, la maggior parte degli sviluppatori utilizza un dominio con un certificato di Let's Encrypt o una CDN come Cloudflare, che gestisce automaticamente la terminazione TLS.
Come posso risolvere i problemi di un webhook Telegram che non riceve aggiornamenti?
Inizia chiamando il metodo getWebhookInfo tramite l'API Bot. Restituisce l'URL del webhook corrente, l'ultimo messaggio di errore e il numero di aggiornamenti in sospeso. I problemi comuni includono un certificato TLS scaduto o non valido, un firewall che blocca gli intervalli IP di Telegram, una mancata corrispondenza tra il percorso del webhook e la rotta del tuo server, o la restituzione di un codice di stato HTTP diverso da 200 dal tuo endpoint.
TeleClaw può gestire i webhook automaticamente?
Sì. TeleClaw gestisce la registrazione del webhook, la terminazione TLS e la scalabilità dell'infrastruttura per te. Quando connetti un token di bot Telegram a TeleClaw, la piattaforma configura automaticamente un endpoint webhook sicuro, monitora lo stato di consegna e ritenta gli aggiornamenti falliti, così puoi concentrarti sulla logica del tuo bot anziché sulla gestione dell'infrastruttura del server.
Altri Articoli

Continua a leggere