Jak hostovat Telegram bota
Na této stránce
Telegram bot odpovídá jen tehdy, když jeho kód běží. Postavíte-li ho na notebooku, ztichne ve chvíli, kdy notebook usne — a tak dříve či později potřebuje každý bot místo, které zůstává zapnuté.
Tento návod pokrývá celou cestu: vytvoření bota přes BotFather, volbu mezi pollingem a webhooky, funkční příklad v Pythonu i v JavaScriptu, limity a pravidla, která Telegram stanovuje, a jak udržet bota online 24/7.
Krok 1: Vytvořte bota přes BotFather
- V Telegramu otevřete @BotFather a pošlete
/newbot. - Zadejte zobrazované jméno bota a pak uživatelské jméno: 5 až 32 znaků, latinková písmena, číslice a podtržítka, zakončené na
bot— napříkladmy_shop_helper_bot. - BotFather odpoví tokenem, který vypadá jako
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Kdo ho má, ovládá vašeho bota, takže ho nedávejte do kódu a nikdy ho nesdílejte. Pokud unikne, pošlete BotFatherovi/tokena získáte nový.
Další dva příkazy BotFathera, které se hodí znát: /setcommands přidá seznam příkazů, který uživatelé uvidí po napsání /, a /setprivacy určuje, co bot vidí ve skupinách. Režim soukromí je ve výchozím stavu zapnutý, takže ve skupině bot dostává jen příkazy určené jemu a odpovědi na své vlastní zprávy — pokud z něj neuděláte správce.
Polling, nebo webhooky?
Bot dostává zprávy od Telegramu jedním ze dvou způsobů — nikdy oběma zároveň:
| Long polling | Webhook | |
|---|---|---|
| Jak to funguje | Bot se přes jedno otevřené spojení neustále ptá Telegramu na nové zprávy | Telegram posílá každou aktualizaci na vaši HTTPS adresu |
| Potřebuje | Jen odchozí přístup k internetu | Doménu, platný certifikát a port 443, 80, 88 nebo 8443 |
| Nejlepší pro | Téměř každého bota a nejsnáze se hostuje | Velmi vytížené boty nebo serverless platformy |
Začněte s pollingem. Nepotřebuje doménu, certifikát ani otevřený port a podporuje ho každá knihovna. Pokud byl na tokenu někdy nastaven webhook, nejdřív zavolejte deleteWebhook — dokud je webhook aktivní, polling nefunguje.
Boti s pollingem běží na bot hostingu HytHost bez nastavování domény či otevřeného portu — Python nebo Node.js od €0.89/měs.
Zobrazit tarify bot hostinguKrok 2a: Bot v Pythonu (python-telegram-bot)
python-telegram-bot 22 vyžaduje Python 3.10 nebo novější. Nainstalujte ho příkazem pip install python-telegram-bot a vytvořte 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()
Druhou oblíbenou volbou v Pythonu je aiogram 3, rovněž pro Python 3.10 nebo novější.
Krok 2b: Bot v JavaScriptu (grammY)
grammY je aktivně udržovaný Telegram framework pro Node.js. Spusťte npm install grammy a vytvořte 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();
Starší návody používají Telegraf, který od února 2024 nedostal žádné vydání; pro nového bota je grammY bezpečnější volba.
Limity a pravidla Telegramu pro boty
Limity podle FAQ Telegramu pro boty:
- Zhruba jedna zpráva za sekundu v jednom chatu, 20 zpráv za minutu ve skupině a celkem zhruba 30 zpráv za sekundu.
- Soubory: bot může odesílat až 50 MB a stahovat až 20 MB.
- Polling smí v jednu chvíli provádět jen jedna kopie bota. Druhá dostane Conflict: terminated by other getUpdates request — na testování používejte samostatný token.
Pravidla: podmínky Telegramu pro vývojáře botů zakazují spam a nevyžádané zprávy i obcházení limitů. Bot musí mít zásady ochrany soukromí (pokud nenapíšete vlastní, platí standardní zásady Telegramu) a na žádost musí smazat data uživatele. Automatizace osobního účtu místo bota — takzvaný userbot — je něco úplně jiného a Telegram blokuje účty používané k zahlcování nebo spamu.
Hosting Telegram bota na HytHost
Na našich tarifech bot hostingu běží Telegram boti stejně jako Discord boti:
- Vyberte tarif a runtime — Python pro python-telegram-bot nebo aiogram, Node.js pro grammY. Na kartě Startup zvolte Python 3.10 nebo novější, případně aktuální Node.js.
- Nahrajte svůj kód přes správce souborů nebo SFTP, spolu s
requirements.txtnebopackage.json. - Token uložte do souboru
.envnebo do proměnné prostředí, ne do kódu. - Spusťte ho. S pollingem bot nepotřebuje doménu ani otevřený port; když spadne, panel ho restartuje.
Co naše pravidla povolují: boty postavené na oficiálním Bot API s tokenem od BotFathera. Nepovoleno: userboti automatizující osobní účet, nevyžádané hromadné zprávy, scrapování uživatelů nebo skupin a boti, kteří stahují a dál šíří média bez práv k nim. Bot, který tato pravidla poruší, bude pozastaven.
Tarify zahrnují databázi MySQL a zálohy. Děláte i Discord bota? Podívejte se na jak vytvořit Discord bota.
Udržte svého Telegram bota online 24/7 bez vlastního PC: bot hosting pro Python nebo Node.js od €0.89/měs., včetně restartů.
Zobrazit tarify bot hostinguČasto kladené otázky
Zdarma ho můžete provozovat na vlastním počítači, ale přejde do offline pokaždé, když počítač usne nebo se restartuje. Bezplatné cloudové tarify často nečinné aplikace uspávají nebo omezují jejich využití. Pro bota, který zůstane online, je spolehlivou volbou malý placený hosting.
Polling pro téměř každého bota: nepotřebuje doménu, certifikát ani otevřený port. Webhooky se hodí pro velmi vytížené boty nebo serverless platformy a potřebují HTTPS na portu 443, 80, 88 nebo 8443. Jeden token nemůže používat obojí zároveň.
Pošlete /token na @BotFather, vyberte bota a získáte nový token; pak ho aktualizujte všude, kde bot běží. Token držte v proměnné prostředí nebo v souboru .env, nikdy v kódu, který sdílíte.
Se stejným tokenem pollují dvě kopie bota, například jedna na vašem PC a jedna na serveru. Jednu z nich zastavte a na testování používejte samostatného bota a token.
Velmi málo. Typický bot v Pythonu nebo Node.js, který odpovídá na příkazy, obvykle bez problémů běží na 512 MB; boti, kteří zpracovávají obrázky nebo drží v paměti velká data, potřebují víc.
Váš Telegram bot, online 24/7
Bot hosting HytHost provozuje vašeho Telegram bota v Pythonu nebo Node.js s automatickými restarty, databází MySQL a zálohami — od €0.89/měs.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursByl tento návod užitečný?