Come ospitare un bot Telegram
In questa pagina
Un bot Telegram risponde solo finché il suo codice è in esecuzione. Se lo crei sul portatile, tace appena il portatile va in sospensione: prima o poi ogni bot ha bisogno di una casa che resti accesa.
Questa guida copre tutto il percorso: creare il bot con BotFather, scegliere tra polling e webhook, un esempio funzionante in Python e in JavaScript, i limiti e le regole fissati da Telegram e come tenere il bot online 24/7.
Passo 1: crea il bot con BotFather
- In Telegram, apri @BotFather e invia
/newbot. - Dai al bot un nome visualizzato e poi uno username: da 5 a 32 caratteri, lettere latine, cifre e trattini bassi, che termini con
bot, per esempiomy_shop_helper_bot. - BotFather risponde con il token, che ha questo aspetto:
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Chi lo possiede controlla il tuo bot, quindi tienilo fuori dal codice e non condividerlo mai. Se trapela, invia/tokena BotFather per ottenerne uno nuovo.
Altri due comandi di BotFather da conoscere: /setcommands aggiunge l'elenco dei comandi che gli utenti vedono digitando /, e /setprivacy controlla cosa vede il bot nei gruppi. La modalità privacy è attiva per impostazione predefinita, quindi in un gruppo il bot riceve solo i comandi rivolti a lui e le risposte ai suoi messaggi, a meno che tu non lo renda amministratore.
Polling o webhook?
Un bot riceve i messaggi da Telegram in uno di due modi, mai entrambi contemporaneamente:
| Long polling | Webhook | |
|---|---|---|
| Come funziona | Il bot chiede continuamente a Telegram nuovi messaggi tramite una connessione aperta | Telegram invia ogni aggiornamento al tuo indirizzo HTTPS |
| Requisiti | Solo l'accesso a internet in uscita | Un dominio, un certificato valido e la porta 443, 80, 88 o 8443 |
| Ideale per | Quasi tutti i bot, ed è il più facile da ospitare | Bot molto trafficati o piattaforme serverless |
Inizia con il polling. Non richiede dominio, certificato né porta aperta, e tutte le librerie lo supportano. Se sul token è mai stato impostato un webhook, chiama prima deleteWebhook: il polling non funziona finché un webhook è attivo.
I bot in polling girano sul bot hosting di HytHost senza dominio né porta aperta da configurare: Python o Node.js da €0.89/mese.
Vedi i piani di bot hostingPasso 2a: un bot in Python (python-telegram-bot)
python-telegram-bot 22 richiede Python 3.10 o successivo. Installalo con pip install python-telegram-bot e crea bot.py:
import os
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes, MessageHandler, filters
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text("Hi! Send me a message and I will echo it.")
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text(update.message.text)
def main() -> None:
application = Application.builder().token(os.environ["TELEGRAM_TOKEN"]).build()
application.add_handler(CommandHandler("start", start))
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
application.run_polling(allowed_updates=Update.ALL_TYPES)
if __name__ == "__main__":
main()
aiogram 3 è l'altra scelta popolare in Python, anch'essa con Python 3.10 o successivo.
Passo 2b: un bot in JavaScript (grammY)
grammY è il framework Telegram per Node.js mantenuto attivamente. Esegui npm install grammy e crea bot.js:
const { Bot } = require("grammy");
const bot = new Bot(process.env.TELEGRAM_TOKEN);
bot.command("start", (ctx) => ctx.reply("Welcome! Up and running."));
bot.on("message:text", (ctx) => ctx.reply(ctx.message.text));
process.once("SIGINT", () => bot.stop());
process.once("SIGTERM", () => bot.stop());
bot.start();
I tutorial più vecchi usano Telegraf, che non ha più rilasci da febbraio 2024; per un nuovo bot, grammY è la scelta più sicura.
Limiti e regole di Telegram per i bot
Limiti secondo le FAQ di Telegram sui bot:
- Circa un messaggio al secondo in una singola chat, 20 messaggi al minuto in un gruppo e circa 30 messaggi al secondo in totale.
- File: il bot può inviare fino a 50 MB e scaricare fino a 20 MB.
- Solo una copia del bot alla volta può fare polling. Una seconda riceve Conflict: terminated by other getUpdates request: usa un token separato per i test.
Regole: i termini di Telegram per gli sviluppatori di bot vietano lo spam, i messaggi non richiesti e l'aggiramento dei limiti di invio. Un bot deve avere un'informativa sulla privacy (se non ne scrivi una tua vale quella standard di Telegram) e deve cancellare i dati di un utente quando lo richiede. Automatizzare un account personale invece di un bot, il cosiddetto userbot, è tutt'altra cosa, e Telegram banna gli account usati per flood o spam.
Hosting di bot Telegram su HytHost
I nostri piani di bot hosting eseguono bot Telegram oltre ai bot Discord:
- Scegli un piano e il runtime: Python per python-telegram-bot o aiogram, Node.js per grammY. Seleziona Python 3.10 o successivo, oppure un Node.js recente, nella scheda Startup.
- Carica il tuo codice con il file manager o via SFTP, insieme a
requirements.txtopackage.json. - Metti il token in un file
.envo in una variabile d'ambiente, non nel codice. - Avvialo. Con il polling il bot non ha bisogno di dominio né di porta aperta; il pannello lo riavvia se va in crash.
Cosa consentono le nostre regole: bot creati con la Bot API ufficiale e un token di BotFather. Non sono consentiti: userbot che automatizzano un account personale, messaggi di massa non richiesti, lo scraping di utenti o gruppi e bot che scaricano e ridistribuiscono contenuti multimediali senza averne i diritti. Un bot che viola queste regole viene sospeso.
I piani includono un database MySQL e i backup. Stai creando anche un bot Discord? Leggi come creare un bot Discord.
Tieni il tuo bot Telegram online 24/7 senza il tuo PC: bot hosting per Python o Node.js da €0.89/mese, riavvii inclusi.
Vedi i piani di bot hostingDomande frequenti
Puoi eseguirlo gratis sul tuo computer, ma va offline ogni volta che il computer va in sospensione o si riavvia. I piani cloud gratuiti spesso mettono in pausa le app inattive o ne limitano l'uso. Per un bot che resti online, un piccolo hosting a pagamento è la scelta affidabile.
Polling per quasi tutti i bot: non richiede dominio, certificato né porta aperta. I webhook sono adatti a bot molto trafficati o a piattaforme serverless e richiedono HTTPS sulla porta 443, 80, 88 o 8443. Un token non può usarli entrambi contemporaneamente.
Invia /token a @BotFather e scegli il bot per ottenere un nuovo token, poi aggiornalo ovunque il bot sia in esecuzione. Tieni il token in una variabile d'ambiente o in un file .env, mai nel codice che condividi.
Due copie del bot stanno facendo polling con lo stesso token, per esempio una sul tuo PC e una sul server. Fermane una e usa un bot e un token separati per i test.
Pochissima. Un tipico bot in Python o Node.js che risponde ai comandi di solito funziona bene con 512 MB; i bot che elaborano immagini o tengono molti dati in memoria ne richiedono di più.
Il tuo bot Telegram, online 24/7
Il bot hosting di HytHost esegue il tuo bot Telegram in Python o Node.js con riavvii automatici, un database MySQL e i backup, da €0.89/mese.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursQuesta guida ti è stata utile?