Kako hostati Telegram bota
Na ovoj stranici
Telegram bot odgovara samo dok mu se kod izvršava. Napravite ga na laptopu i utihnut će čim laptop ode u stanje mirovanja — zato prije ili kasnije svaki bot treba dom koji ostaje uključen.
Ovaj vodič pokriva cijeli put: izradu bota s BotFatherom, izbor između pollinga i webhooka, ispravan primjer u Pythonu i u JavaScriptu, ograničenja i pravila koja postavlja Telegram te kako bota održati online 24/7.
1. korak: Izradite bota s BotFatherom
- U Telegramu otvorite @BotFather i pošaljite
/newbot. - Zadajte botu ime za prikaz, a zatim korisničko ime: 5 do 32 znaka, latinična slova, znamenke i podvlake, a mora završavati na
bot— na primjermy_shop_helper_bot. - BotFather odgovara tokenom koji izgleda ovako:
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Tko god ga ima, upravlja vašim botom, zato ga držite izvan koda i nikad ga ne dijelite. Ako procuri, pošaljite BotFatheru/tokenda dobijete novi.
Još dvije korisne BotFather naredbe: /setcommands dodaje popis naredbi koji korisnici vide kad upišu /, a /setprivacy određuje što bot vidi u grupama. Način privatnosti je prema zadanim postavkama uključen, pa u grupi bot prima samo naredbe namijenjene njemu i odgovore na vlastite poruke — osim ako ga ne postavite za administratora.
Polling ili webhook?
Bot dobiva poruke od Telegrama na jedan od dva načina — nikad oba istovremeno:
| Long polling | Webhook | |
|---|---|---|
| Kako radi | Bot preko jedne otvorene veze stalno pita Telegram za nove poruke | Telegram šalje svako ažuriranje na vašu HTTPS adresu |
| Potrebno | Samo odlazni pristup internetu | Domena, valjani certifikat i port 443, 80, 88 ili 8443 |
| Najbolje za | Gotovo svakog bota, i najlakše za hostanje | Vrlo opterećene botove ili serverless platforme |
Počnite s pollingom. Ne treba mu domena, certifikat ni otvoreni port, a podržava ga svaka biblioteka. Ako je na tokenu ikad bio postavljen webhook, najprije pozovite deleteWebhook — polling ne radi dok je webhook aktivan.
Polling botovi rade na HytHost hostingu za botove bez domene ili otvorenog porta za postavljanje — Python ili Node.js od €0.89/mj.
Pogledajte pakete za botove2a. korak: Bot u Pythonu (python-telegram-bot)
python-telegram-bot 22 zahtijeva Python 3.10 ili noviji. Instalirajte ga s pip install python-telegram-bot i napravite 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 drugi je popularan izbor u Pythonu, također za Python 3.10 ili noviji.
2b. korak: Bot u JavaScriptu (grammY)
grammY je aktivno održavan Telegram framework za Node.js. Pokrenite npm install grammy i napravite 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();
Stariji vodiči koriste Telegraf, koji nije imao novo izdanje od veljače 2024.; za novog bota grammY je sigurniji izbor.
Telegramova ograničenja i pravila za botove
Ograničenja iz Telegramovih čestih pitanja o botovima:
- Otprilike jedna poruka u sekundi u jednom razgovoru, 20 poruka u minuti u grupi i ukupno otprilike 30 poruka u sekundi.
- Datoteke: bot može slati do 50 MB i preuzimati do 20 MB.
- Istovremeno smije pollati samo jedna kopija bota. Druga dobiva Conflict: terminated by other getUpdates request — za testiranje koristite zaseban token.
Pravila: Telegramovi uvjeti za developere botova zabranjuju spam i neželjene poruke te zaobilaženje ograničenja brzine. Bot mora imati pravila privatnosti (vrijede Telegramova standardna ako ne napišete vlastita) i mora izbrisati podatke korisnika na zahtjev. Automatizacija osobnog računa umjesto bota — takozvani userbot — nešto je sasvim drugo, a Telegram blokira račune koji se koriste za flooding ili spam.
Hosting Telegram botova na HytHostu
Naši paketi hostinga za botove pokreću Telegram botove kao i Discord botove:
- Odaberite paket i okruženje — Python za python-telegram-bot ili aiogram, Node.js za grammY. Na kartici Startup odaberite Python 3.10 ili noviji, odnosno aktualnu verziju Node.js-a.
- Prenesite kod preko upravitelja datoteka ili SFTP-a, zajedno s
requirements.txtilipackage.json. - Stavite token u datoteku
.envili u varijablu okruženja, ne u kod. - Pokrenite ga. Uz polling botu ne treba domena ni otvoreni port; panel ga ponovno pokreće ako se sruši.
Što naša pravila dopuštaju: botove izrađene na službenom Bot API-ju s BotFather tokenom. Nije dopušteno: userbotovi koji automatiziraju osobni račun, neželjene masovne poruke, prikupljanje podataka o korisnicima ili grupama te botovi koji preuzimaju i dalje prosljeđuju medije bez prava na njih. Bot koji krši ova pravila bit će suspendiran.
Paketi uključuju MySQL bazu podataka i sigurnosne kopije. Radite i Discord bota? Pogledajte kako napraviti Discord bota.
Neka vaš Telegram bot bude online 24/7 bez vašeg računala: hosting za botove u Pythonu ili Node.js-u od €0.89/mj., ponovna pokretanja uključena.
Pogledajte pakete za botoveČesto postavljana pitanja
Možete ga besplatno pokretati na vlastitom računalu, ali ide offline svaki put kad računalo ode u mirovanje ili se ponovno pokrene. Besplatni cloud paketi često pauziraju neaktivne aplikacije ili ograničavaju korištenje. Za bota koji ostaje online, mali plaćeni hosting pouzdana je opcija.
Polling za gotovo svakog bota: ne treba mu domena, certifikat ni otvoreni port. Webhookovi odgovaraju vrlo opterećenim botovima ili serverless platformama i trebaju HTTPS na portu 443, 80, 88 ili 8443. Jedan token ne može koristiti oboje istovremeno.
Pošaljite /token botu @BotFather i odaberite bota da dobijete novi token, a zatim ga ažurirajte svugdje gdje bot radi. Token držite u varijabli okruženja ili datoteci .env, nikad u kodu koji dijelite.
Dvije kopije bota pollaju s istim tokenom, na primjer jedna na vašem računalu i jedna na serveru. Zaustavite jednu od njih, a za testiranje koristite zasebnog bota i token.
Vrlo malo. Tipičan Python ili Node.js bot koji odgovara na naredbe obično sasvim dobro radi na 512 MB; botovi koji obrađuju slike ili drže velike podatke u memoriji trebaju više.
Vaš Telegram bot, online 24/7
HytHost hosting za botove pokreće vašeg Telegram bota u Pythonu ili Node.js-u s automatskim ponovnim pokretanjem, MySQL bazom podataka i sigurnosnim kopijama — od €0.89/mj.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursJe li ti ovaj vodič pomogao?