Introduzione: perché un bot per notifiche automatiche
Configurare un bot Telegram per l'invio automatico di notifiche è tra le richieste più frequenti per amministratori che gestiscono server, pipeline CI/CD o sistemi di monitoraggio. Invece di controllare manualmente dashboard o email, un bot può inviare messaggi istantanei su un canale o gruppo Telegram, garantendo visibilità in tempo reale. Questa guida ti accompagna passo dopo passo: dalla creazione del bot tramite BotFather fino al deployment del codice per l'invio programmatico, con attenzione a sicurezza, gestione degli errori e scelta tra webhook e polling.
L'intero processo si basa sulle API ufficiali di Telegram, accessibili a chiunque abbia un account. Non servono conoscenze avanzate di programmazione, ma è utile avere familiarità con un linguaggio di scripting (Python, Node.js, PHP) per scrivere il codice di invio. Tutte le tecnologie menzionate sono quelle disponibili con l'ultima versione stabile di Telegram al momento della scrittura.
Creazione del bot e ottenimento del token
Il punto di partenza: BotFather
Ogni bot Telegram nasce da BotFather, il bot ufficiale per creazione e gestione. Per avviare la procedura, cerca @BotFather nella barra di ricerca di Telegram (su mobile o desktop) e avvia una chat con lui. Digita il comando /newbot e segui le istruzioni: ti verrà chiesto un nome visualizzato (es. Notifiche Team) e un username univoco che deve terminare con 'bot' (es. notifiche_team_bot).
Prerequisiti per l'invio automatico
ID chat per l'invio programmatico. Puoi ottenerlo inviando un messaggio al bot e visitando https://api.telegram.org/bot<TOKEN>/getUpdates — cerca il campo chat.id. In alternativa, usa bot come @userinfobot per chat private.
Scegliere tra webhook e polling
polling (long polling) prevede che il client esegua richieste periodiche all'API per chiedere nuovi messaggi. È semplice e adatto a bot con basso traffico o sviluppo locale. Lo webhook, invece, fa sì che Telegram invii una richiesta HTTP a un tuo endpoint pubblico ogni volta che arriva un messaggio. È più efficiente per bot in produzione, ma richiede un server HTTPS accessibile pubblicamente (Telegram esige HTTPS con certificato valido).
Quando usare il polling
Quando usare il webhook
https://tuodominio.it/webhook. Attenzione: l'URL deve usare HTTPS e porta 443. Telegram verifica il certificato. Dopo aver impostato il webhook, disabilita il polling per evitare conflitti.
Attenzione: imposta il webhook con https://api.telegram.org/bot<TOKEN>/setWebhook?url=<URL_HTTPS>. Verifica lo stato con /getWebhookInfo.
Configurazione pratica del bot
Esempio con Python e polling
Usiamo Python con python-telegram-bot (consulta la documentazione ufficiale per l'ultima versione). Installa con pip install python-telegram-bot. Crea bot.py con questo codice minimale per invio programmatico:
import asyncio
from telegram import Bot
from telegram.constants import ParseMode
TOKEN = "IL_TUO_TOKEN"
CHAT_ID = "ID_CHAT"
async def invia_notifica(messaggio):
bot = Bot(token=TOKEN)
await bot.send_message(chat_id=CHAT_ID, text=messaggio, parse_mode=ParseMode.HTML)
# Esempio di utilizzo
asyncio.run(invia_notifica("Notifica: Il server è stato riavviato."))Questo script invia un singolo messaggio formattato in HTML. Per usi ricorrenti, puoi inserire la funzione in un cron job o trigger da un'applicazione esterna.
Configurazione del webhook su un server HTTPS
from flask import Flask, request
import asyncio
from telegram import Bot
app = Flask(__name__)
TOKEN = "IL_TUO_TOKEN"
CHAT_ID = "ID_CHAT"
bot = Bot(token=TOKEN)
@app.route('/webhook', methods=['POST'])
def webhook():
update = request.get_json()
if 'message' in update:
# Se il bot riceve un comando, lo ignori (per questo scenario)
pass
return 'OK'
if __name__ == '__main__':
app.run(ssl_context=('/etc/letsencrypt/live/tuodominio.it/fullchain.pem', '/etc/letsencrypt/live/tuodominio.it/privkey.pem'), port=443)sendMessage via HTTP.
Invio automatico di notifiche senza interazione utente
API diretta via HTTP
https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=<CHAT_ID>&text=<MESSAGGIO>. Puoi anche inviare messaggi formattati con &parse_mode=HTML. Questo approccio è ideale per script shell, cron job o pipeline CI/CD.
Esempio pratico
import requests TOKEN = "IL_TUO_TOKEN" CHAT_ID = "ID_CHAT" url = f"https://api.telegram.org/bot{TOKEN}/sendMessage" payload = { "chat_id": CHAT_ID, "text": "Notifica: Il server è stato riavviato.", "parse_mode": "HTML" } requests.post(url, json=payload)
Aspettative per versioni future e buone pratiche
Integrare un bot Telegram per notifiche automatiche è un modo semplice ed efficace per migliorare la visibilità operativa. Con pochi passaggi puoi avere un sistema di alert funzionante, sia per progetti personali che per team aziendali.
📺 Related Video Tutorial
Guida Automazione Telegram + Make: Creare Bot per PMI e Professionisti
