Come utilizzare la funzionalità di invio automatico tramite bot su Telegram?

Introduzione: perché automatizzare l'invio di messaggi su Telegram
Gestire manualmente l'invio di messaggi su canali o chat di gruppo può diventare rapidamente un peso, specialmente quando il volume di contenuti supera qualche decina di post al giorno. Immagina di dover pubblicare ogni ora un aggiornamento meteo, un promemoria per il team o una notifica di sistema: farlo a mano è inefficiente e soggetto a errori. La soluzione è una funzionalità di invio automatico tramite bot, che sfrutta le API ufficiali di Telegram per programmare l'invio di messaggi in modo affidabile e scalabile. Questo non solo riduce il carico operativo, ma garantisce anche una maggiore puntualità rispetto all'intervento manuale.
In questo articolo esploreremo i due approcci principali – long polling e webhook – e vedremo come integrarli con uno scheduler esterno per ottenere un sistema di pubblicazione automatica. Non inventeremo funzionalità inesistenti: tutto ciò che descriveremo si basa su API documentate, BotFather (il bot ufficiale di Telegram per la creazione di bot) e strumenti di automazione comuni come cron o servizi cloud. Ogni passo sarà corredato da criteri di scelta, limiti noti e metodi di verifica, in modo che tu possa decidere se questa strada è adatta al tuo caso. Al termine, avrai le conoscenze per implementare una soluzione su misura per le tue esigenze.
Posizionamento e confini della funzionalità
Prima di addentrarci nei dettagli operativi, è importante delimitare cosa si intende per “invio automatico tramite bot”. Telegram mette a disposizione una Bot API che consente a un bot di inviare messaggi in qualsiasi chat in cui è membro. Tuttavia, non esiste un comando o un’impostazione nativa per programmare l’invio differito (come invece accade su piattaforme come Slack con i messaggi programmati). L’automazione deve essere implementata dallo sviluppatore: il bot, una volta creato, può essere istruito per inviare messaggi in risposta a eventi (comandi, webhook esterni) o tramite chiamate API pianificate da un sistema esterno. Questo significa che hai il controllo completo su quando e come inviare i messaggi, ma richiede una configurazione iniziale.
La soluzione si compone di due parti: un bot Telegram (registrato tramite BotFather) e un server o un cron job che effettui le chiamate all’API di Telegram secondo un calendario. Non esiste un “bot Telegram schedulatore” preconfezionato ufficialmente; esistono bot di terze parti (es. @SchedulerBot) ma non li tratteremo in dettaglio per non incorrere in informazioni non verificabili. Ci concentreremo sul percorso fai-da-te che ti dà controllo completo, dalla scelta dell'infrastruttura alla gestione degli errori. Questo approccio è ideale per chi ha esigenze specifiche o vuole evitare dipendenze esterne.
Cosa puoi automatizzare
- Invio di messaggi testuali, immagini, documenti, sondaggi e altre tipologie supportate dall’API.
- Pubblicazione su canali (se il bot è amministratore) o su chat private/gruppi (se il bot è membro).
- Risposte automatiche a comandi specifici (es. /start, /aiuto) – ma questo è un caso diverso dall’invio programmato.
Queste possibilità coprono la maggior parte degli scenari comuni, dalla distribuzione di notizie alla gestione di promemoria interni. Tuttavia, ci sono anche dei limiti da considerare attentamente per evitare sorprese durante l'operatività.
Cosa non puoi fare (o richiede accorgimenti)
- Inviare messaggi a utenti che non hanno avviato una conversazione con il bot (a meno che il bot non sia amministratore di un canale a cui l'utente è iscritto).
- Eliminare il limite di 30 messaggi al secondo per bot (limite di rate limiting dell’API).
- Garantire l’invio in tempo reale se il server downstream è lento o la rete è instabile.
Con queste premesse, possiamo passare alla fase operativa. La chiarezza sui vincoli ti aiuterà a progettare un sistema robusto fin dall'inizio, evitando falsi miti sull'invio automatico. Ricorda: la documentazione ufficiale di Telegram è sempre la fonte più affidabile per verificare i limiti attuali.
Albero decisionale: scegliere l’approccio giusto
La prima scelta da fare è tra webhook e long polling per ricevere aggiornamenti dal bot (ad esempio per sapere quando un utente invia un comando). Per il semplice invio automatico, potresti non aver bisogno di ricevere aggiornamenti; ma se il bot deve anche rispondere a comandi, devi impostare un meccanismo di ascolto. Ecco una tabella riassuntiva per orientarti:
| Scenario | Approccio consigliato | Motivazione |
|---|---|---|
| Solo invio programmato (nessuna risposta ai comandi) | Nessun ascolto necessario; usa solo API sendMessage | Non serve installare webhook o polling |
| Invio programmato + risposta a comandi | Webhook (se hai un server pubblico) o long polling (se server privato) | Webhook è più efficiente, ma richiede SSL; long polling è più semplice per ambienti di sviluppo |
| Bot su server con risorse limitate | Long polling | Evita la configurazione di un endpoint HTTPS pubblico |
Per il nostro obiettivo – inviare messaggi automaticamente a orari prestabiliti – possiamo saltare del tutto la parte di ricezione aggiornamenti e concentrarci sulla generazione delle chiamate API. Tuttavia, se il bot deve anche intercettare comandi per attivare o disattivare l’invio automatico, avrai bisogno di un ascoltatore. In questo articolo ti mostreremo entrambi i casi, partendo dal più semplice: l'invio senza ascolto attivo, che richiede solo uno scheduler esterno.
Passaggi operativi: creare il bot e ottenere il token
Il primo passo, comune a tutte le implementazioni, è la creazione del bot tramite BotFather. Segui questi passaggi:
- Apri Telegram e cerca @BotFather. Avvia una chat con il bot.
- Invia il comando
/newbot. BotFather ti chiederà un nome (es. “Il mio bot automatico”) e uno username univoco che termini con “bot” (es. “mio_bot_automatico_bot”). Scegli un nome che rifletta lo scopo del bot, così sarà più facile riconoscerlo in futuro. - Al termine, riceverai un token (una stringa del tipo
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11). Conservalo in un luogo sicuro. Questo token è la chiave di accesso per tutte le API del bot; non condividerlo pubblicamente. - Se intendi inviare messaggi su un canale, aggiungi il bot come amministratore del canale (vai nel canale > Impostazioni > Amministratori > Aggiungi amministratore e cerca il tuo bot). Senza questo passo, il bot non potrà pubblicare nel canale.
Ora hai un bot pronto. La prossima sezione spiega come inviare un messaggio utilizzando l’API, per verificare che tutto sia configurato correttamente prima di passare all'automazione vera e propria.
Inviare un messaggio manualmente con l’API (verifica preliminare)
Prima di automatizzare, verifichiamo che il bot funzioni inviando un messaggio tramite una semplice richiesta HTTP. Puoi farlo da qualsiasi client (es. curl, browser, strumento come Postman). L’endpoint è:
https://api.telegram.org/bot<TOKEN>/sendMessageSostituisci <TOKEN> con il token del tuo bot. Aggiungi i parametri chat_id (ID del canale o della chat) e text. Esempio con curl (su terminale Linux/macOS):
curl -X POST