Sådan hoster du en Telegram-bot
På denne side
En Telegram-bot svarer kun, mens dens kode kører. Bygger du den på din bærbare, bliver den tavs, så snart den bærbare går i dvale — så før eller siden har enhver bot brug for et hjem, der altid er tændt.
Denne guide dækker hele vejen: oprettelse af botten med BotFather, valget mellem polling og webhooks, et fungerende eksempel i Python og i JavaScript, de grænser og regler Telegram sætter, og hvordan du holder botten online 24/7.
Trin 1: Opret botten med BotFather
- Åbn @BotFather i Telegram, og send
/newbot. - Giv botten et visningsnavn og derefter et brugernavn: 5 til 32 tegn, latinske bogstaver, tal og understregninger, der slutter på
bot— for eksempelmy_shop_helper_bot. - BotFather svarer med tokenet, som ser ud som
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Alle, der har det, styrer din bot, så hold det ude af din kode, og del det aldrig. Hvis det slipper ud, så send/tokentil BotFather for at få et nyt.
To andre BotFather-kommandoer, der er værd at kende: /setcommands tilføjer den kommandoliste, brugerne ser, når de skriver /, og /setprivacy styrer, hvad botten ser i grupper. Som standard er privatlivstilstand slået til, så i en gruppe modtager botten kun kommandoer rettet til den og svar på dens egne beskeder — medmindre du gør den til administrator.
Polling eller webhooks?
En bot får sine beskeder fra Telegram på én af to måder — aldrig begge på samme tid:
| Long polling | Webhook | |
|---|---|---|
| Sådan virker det | Botten spørger løbende Telegram om nye beskeder over én åben forbindelse | Telegram sender hver opdatering til din HTTPS-adresse |
| Kræver | Kun udgående internetadgang | Et domæne, et gyldigt certifikat og port 443, 80, 88 eller 8443 |
| Bedst til | Næsten alle bots, og den letteste at hoste | Meget travle bots eller serverless-platforme |
Start med polling. Det kræver hverken domæne, certifikat eller åben port, og alle biblioteker understøtter det. Hvis der nogensinde er sat en webhook på tokenet, så kald deleteWebhook først — polling virker ikke, mens en webhook er aktiv.
Polling-bots kører på HytHost bot-hosting uden domæne eller åben port at sætte op — Python eller Node.js fra €0.89/md.
Se bot-hostingplanerTrin 2a: En bot i Python (python-telegram-bot)
python-telegram-bot 22 kræver Python 3.10 eller nyere. Installér det med pip install python-telegram-bot, og opret 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 er det andet populære valg i Python, også til Python 3.10 eller nyere.
Trin 2b: En bot i JavaScript (grammY)
grammY er det aktivt vedligeholdte Telegram-framework til Node.js. Kør npm install grammy, og opret 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();
Ældre vejledninger bruger Telegraf, som ikke har fået en udgivelse siden februar 2024; til en ny bot er grammY det sikreste valg.
Telegrams grænser og regler for bots
Grænser fra Telegrams bot-FAQ:
- Cirka én besked i sekundet i en enkelt chat, 20 beskeder i minuttet i en gruppe og cirka 30 beskeder i sekundet i alt.
- Filer: botten kan sende op til 50 MB og downloade op til 20 MB.
- Kun én kopi af botten må polle ad gangen. En anden får Conflict: terminated by other getUpdates request — brug et separat token til test.
Regler: Telegrams vilkår for bot-udviklere forbyder spam og uopfordrede beskeder samt omgåelse af hastighedsgrænser. En bot skal have en privatlivspolitik (Telegrams standardpolitik gælder, hvis du ikke skriver din egen) og skal slette en brugers data, når der bedes om det. At automatisere en personlig konto i stedet for en bot — en såkaldt userbot — er noget helt andet, og Telegram udelukker konti, der bruges til flooding eller spam.
Telegram-bot-hosting hos HytHost
Vores bot-hosting-planer kører Telegram-bots såvel som Discord-bots:
- Vælg en plan og runtime — Python til python-telegram-bot eller aiogram, Node.js til grammY. Vælg Python 3.10 eller nyere, eller en aktuel Node.js, under fanen Startup.
- Upload din kode med filhåndteringen eller SFTP sammen med
requirements.txtellerpackage.json. - Læg tokenet i en
.env-fil eller en miljøvariabel, ikke i koden. - Start den. Med polling kræver botten hverken domæne eller åben port; panelet genstarter den, hvis den går ned.
Hvad vores regler tillader: bots bygget på det officielle Bot API med et BotFather-token. Ikke tilladt: userbots, der automatiserer en personlig konto, uopfordrede massebeskeder, scraping af brugere eller grupper samt bots, der downloader og videregiver medier uden rettighederne til dem. En bot, der bryder disse regler, bliver suspenderet.
Planerne inkluderer en MySQL-database og backups. Laver du også en Discord-bot? Se sådan laver du en Discord-bot.
Hold din Telegram-bot online 24/7 uden din pc: bot-hosting til Python eller Node.js fra €0.89/md., genstarter inkluderet.
Se bot-hostingplanerOfte stillede spørgsmål
Du kan køre den gratis på din egen computer, men den går offline, hver gang computeren går i dvale eller genstarter. Gratis cloud-niveauer sætter ofte inaktive apps på pause eller begrænser deres forbrug. Til en bot, der skal blive online, er en lille betalt host den pålidelige løsning.
Polling til næsten alle bots: det kræver hverken domæne, certifikat eller åben port. Webhooks passer til meget travle bots eller serverless-platforme og kræver HTTPS på port 443, 80, 88 eller 8443. Et token kan ikke bruge begge på én gang.
Send /token til @BotFather, og vælg botten for at få et nyt token, og opdater det derefter overalt, hvor botten kører. Gem tokenet i en miljøvariabel eller en .env-fil, aldrig i kode, du deler.
To kopier af botten poller med det samme token, for eksempel én på din pc og én på serveren. Stop den ene af dem, og brug en separat bot og et separat token til test.
Meget lidt. En typisk Python- eller Node.js-bot, der svarer på kommandoer, kører som regel fint på 512 MB; bots, der behandler billeder eller holder store datamængder i hukommelsen, kræver mere.
Din Telegram-bot, online 24/7
HytHost bot-hosting kører din Telegram-bot i Python eller Node.js med automatiske genstarter, en MySQL-database og backups — fra €0.89/md.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursVar denne guide en hjælp?