Slik hoster du en Telegram-bot
På denne siden
En Telegram-bot svarer bare mens koden dens kjører. Bygger du den på den bærbare, blir den stille i det øyeblikket maskinen går i dvale — så før eller siden trenger hver bot et hjem som alltid er på.
Denne guiden dekker hele veien: å opprette boten med BotFather, å velge mellom polling og webhooks, et fungerende eksempel i Python og i JavaScript, grensene og reglene Telegram setter, og hvordan du holder boten online 24/7.
Steg 1: Opprett boten med BotFather
- Åpne @BotFather i Telegram og send
/newbot. - Gi boten et visningsnavn og deretter et brukernavn: 5 til 32 tegn, latinske bokstaver, sifre og understreker, som slutter på
bot— for eksempelmy_shop_helper_bot. - BotFather svarer med tokenet, som ser ut som
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Alle som har det, styrer boten din, så hold det utenfor koden og del det aldri. Hvis det lekker, send/tokentil BotFather for å få et nytt.
To andre BotFather-kommandoer som er verdt å kjenne til: /setcommands legger til kommandolisten brukerne ser når de skriver /, og /setprivacy styrer hva boten ser i grupper. Som standard er personvernmodus på, så i en gruppe mottar boten bare kommandoer ment for den og svar på sine egne meldinger — med mindre du gjør den til administrator.
Polling eller webhooks?
En bot får meldingene sine fra Telegram på én av to måter — aldri begge samtidig:
| Long polling | Webhook | |
|---|---|---|
| Slik fungerer det | Boten spør Telegram fortløpende om nye meldinger over én åpen tilkobling | Telegram sender hver oppdatering til HTTPS-adressen din |
| Krever | Bare utgående internettilgang | Et domene, et gyldig sertifikat og port 443, 80, 88 eller 8443 |
| Best for | Nesten alle boter, og den enkleste å hoste | Svært travle boter eller serverless-plattformer |
Start med polling. Det krever verken domene, sertifikat eller åpen port, og alle biblioteker støtter det. Hvis det noen gang er satt en webhook på tokenet, kall deleteWebhook først — polling fungerer ikke mens en webhook er aktiv.
Polling-boter kjører på HytHost bothosting uten domene eller åpen port å sette opp — Python eller Node.js fra €0.89/md.
Se bothostingplanerSteg 2a: En bot i Python (python-telegram-bot)
python-telegram-bot 22 krever Python 3.10 eller nyere. Installer det med pip install python-telegram-bot og opprett 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 andre populære valget i Python, også for Python 3.10 eller nyere.
Steg 2b: En bot i JavaScript (grammY)
grammY er det aktivt vedlikeholdte Telegram-rammeverket for Node.js. Kjør npm install grammy og opprett 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();
Eldre veiledninger bruker Telegraf, som ikke har fått noen utgivelse siden februar 2024; for en ny bot er grammY det tryggere valget.
Telegrams grenser og regler for boter
Grenser fra Telegrams bot-FAQ:
- Omtrent én melding per sekund i en enkelt chat, 20 meldinger per minutt i en gruppe og omtrent 30 meldinger per sekund totalt.
- Filer: boten kan sende opptil 50 MB og laste ned opptil 20 MB.
- Bare én kopi av boten kan polle om gangen. En kopi nummer to får Conflict: terminated by other getUpdates request — bruk et separat token til testing.
Regler: Telegrams vilkår for botutviklere forbyr spam og uønskede meldinger og omgåelse av hastighetsgrenser. En bot trenger en personvernerklæring (Telegrams standarderklæring gjelder hvis du ikke skriver din egen) og må slette en brukers data på forespørsel. Å automatisere en personlig konto i stedet for en bot — en såkalt userbot — er noe helt annet, og Telegram utestenger kontoer som brukes til flooding eller spam.
Telegram-bothosting hos HytHost
Våre bothosting-planer kjører Telegram-boter så vel som Discord-boter:
- Velg en plan og runtime — Python for python-telegram-bot eller aiogram, Node.js for grammY. Velg Python 3.10 eller nyere, eller en aktuell Node.js, i fanen Startup.
- Last opp koden din med filbehandleren eller SFTP, sammen med
requirements.txtellerpackage.json. - Legg tokenet i en
.env-fil eller en miljøvariabel, ikke i koden. - Start den. Med polling trenger boten verken domene eller åpen port; panelet starter den på nytt hvis den krasjer.
Hva reglene våre tillater: boter bygget på det offisielle Bot API med et token fra BotFather. Ikke tillatt: userboter som automatiserer en personlig konto, uønskede massemeldinger, skraping av brukere eller grupper, og boter som laster ned og videreformidler medier uten rettighetene til dem. En bot som bryter disse reglene, blir suspendert.
Planene inkluderer en MySQL-database og sikkerhetskopier. Lager du også en Discord-bot? Se slik lager du en Discord-bot.
Hold Telegram-boten din online 24/7 uten PC-en din: bothosting for Python eller Node.js fra €0.89/md., omstarter inkludert.
Se bothostingplanerOfte stilte spørsmål
Du kan kjøre den gratis på din egen datamaskin, men den går offline hver gang maskinen går i dvale eller starter på nytt. Gratisnivåer i skyen setter ofte inaktive apper på pause eller begrenser bruken. For en bot som skal holde seg online, er en liten betalt host det pålitelige alternativet.
Polling for nesten alle boter: det krever verken domene, sertifikat eller åpen port. Webhooks passer for svært travle boter eller serverless-plattformer og krever HTTPS på port 443, 80, 88 eller 8443. Et token kan ikke bruke begge samtidig.
Send /token til @BotFather og velg boten for å få et nytt token, og oppdater det deretter overalt der boten kjører. Oppbevar tokenet i en miljøvariabel eller en .env-fil, aldri i kode du deler.
To kopier av boten poller med samme token, for eksempel én på PC-en din og én på serveren. Stopp den ene, og bruk en separat bot og et separat token til testing.
Svært lite. En typisk Python- eller Node.js-bot som svarer på kommandoer, kjører vanligvis fint på 512 MB; boter som behandler bilder eller holder store datamengder i minnet, trenger mer.
Telegram-boten din, online 24/7
HytHost bothosting kjører Telegram-boten din i Python eller Node.js med automatiske omstarter, en MySQL-database og sikkerhetskopier — fra €0.89/md.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursVar denne guiden til hjelp?