ACLClouds
ACLClouds

Bot Telegram 24/7: hosting e limiti

Polling o webhook, memoria, riavvio: cosa prevedere perché un bot Telegram resti raggiungibile giorno e notte, e i suoi limiti.

Un bot Telegram risponde ai suoi utenti a qualsiasi ora. Per restare disponibile deve girare in continuo su una macchina sempre accesa. La scelta più importante è come riceve i messaggi: con interrogazioni periodiche (polling) oppure con un webhook.

  • Il polling non richiede una porta pubblica; il webhook richiede un indirizzo HTTPS raggiungibile.
  • Un webhook attivo blocca il polling: eliminatelo prima di tornare al polling.
  • Telegram limita la velocità di invio: distanziate i messaggi e gestite i rifiuti.

Polling o webhook

Con il polling il bot chiede periodicamente a Telegram se ci sono nuovi messaggi. Non ha bisogno di alcuna porta aperta verso l’esterno. Con un webhook, Telegram invia ogni messaggio a un indirizzo HTTPS che indicate voi: serve quindi un indirizzo pubblico che risponda.

  • Polling: la soluzione più semplice per un bot su un server, senza porta pubblica.
  • Webhook: utile per un’integrazione web o un traffico elevato, con un indirizzo HTTPS raggiungibile da Internet.
  • Un webhook attivo blocca il polling (getUpdates): eliminatelo prima di tornare al polling.

Tenere vivo il processo

Un bot avviato sul vostro PC si ferma con lui. Su un server, il processo deve riavviarsi da solo dopo un errore. Il codice deve quindi gestire le interruzioni di rete invece di chiudersi alla prima.

  • Intercettate le eccezioni nel ciclo di ricezione e registratele invece di uscire.
  • Tenete il token nelle variabili d’ambiente: potrete cambiarlo senza toccare il codice.
  • Dopo un riavvio, leggete i log per verificare che il bot abbia ripreso a ricevere messaggi.

Limiti da conoscere

Telegram limita la velocità degli invii. Un bot che pubblica troppo in fretta nello stesso gruppo riceve rifiuti temporanei. Prevedete una coda di invio e una pausa tra due messaggi.

  • Invii troppo ravvicinati possono essere rifiutati per un certo tempo: distanziateli e gestite l’errore.
  • Un bot che tiene in memoria una cronologia lunga consuma RAM: conservate questi dati in un database.
  • Il piano gratuito offre 315 MB di RAM: sufficienti per un bot di comandi, meno per un bot che elabora file pesanti.

Perché ospitare un bot Telegram da ACLClouds

Un bot Telegram è un processo leggero, adatto al piano gratuito. Scrivetelo in Node.js o in Python, poi caricatelo in SFTP sulla porta 2222.

  • Piano gratuito: 1 bot, 315 MB di RAM, 0,25 vCPU, 715 MB di spazio, 4 giorni, rinnovabile gratuitamente.
  • Accesso SFTP per bot sulla porta 2222, per inviare il vostro codice.
  • Le immagini Node.js e Python includono ffmpeg, yt-dlp e deno.

Domande frequenti

Un bot Telegram consuma molta RAM?

Con comandi semplici, no. A far salire il consumo sono i dati tenuti in memoria e l’elaborazione dei file. Misuratelo per una settimana prima di concludere.

Il bot può funzionare senza webhook?

Sì. Il polling basta per la maggior parte dei bot e non richiede un indirizzo pubblico.

Quale linguaggio scegliere?

Node.js e Python sono i due linguaggi offerti per i bot su ACLClouds. Scegliete quello che conoscete: bastano entrambi per un bot Telegram.