Mange brugere af Telegramfør eller siden opstår de Opret din egen bot for at automatisere opgaverDu kan svare på beskeder eller blot rode med kode. Den gode nyhed er, at du ikke behøver at være ingeniør eller have en megaserver derhjemme. Opret en Telegram-bot med Python Det kræver bare lidt tålmodighed og dedikation.
I denne vejledning lærer du Sådan opretter du en Telegram-bot med Python trin for trin Fra bunden. Vi gennemgår præcis, hvad en bot er, hvordan man får den berømte token med BotFather, hvordan man konfigurerer miljøet på sin computer, hvordan man får sin bot til at sende sin første besked, hvordan man programmerer kommandoer, og endda hvordan man udtrækker realtidsdata (for eksempel prisen på Bitcoin) og automatisk sender dem til din chat hver dag.
Hvad er en Telegram-bot, og hvilke typer findes der?
En Telegram-bot er dybest set en en særlig konto, der styres af et program i stedet for en personDette program opretter forbindelse til Telegrams servere via dets API og er i stand til at læse, hvad der er skrevet i de chats, hvor det er til stede, og svare med beskeder, knapper, afstemninger, filer eller enhver handling, du har programmeret.
Ideen er, at botten kan reagere på kommandoer eller beskeder og udføre specifikke opgaver uden menneskelig indgriben: sende påmindelser, vise oplysninger fra en database, administrere reservationer, moderere grupper, lege med gifs, styre smarte lys eller fungere som assistent døgnet rundt for en onlinevirksomhed.
I Telegram er der to primære måder at interagere med bots på, som du måske vil vide mere om:
- "Normale" kommandobaserede bots. Brugeren skriver kommandoer, der starter med "/", f.eks.
/start,/helpo/list_languagesog botten reagerer med en specifik handling. De er perfekte til menuer, ofte stillede spørgsmål, bookingsystemer eller enhver guidet arbejdsgang. - Indlejrede bots. I stedet for at bruge “/” skriver brugeren
@nombre_del_botdirekte i enhver chat, efterfulgt af en sms. Botten svarer "online" og foreslår resultater, for eksempel @gif for at søge efter animerede GIF'er relateret til et søgeord.
Udover disse kan du også have bots, der De reagerer "spontant" til det, der skrives i en gruppe. For eksempel at opdage fornærmelser for at fungere som anti-spam, hilse på nye medlemmer eller anvende moderationsregler uden at nogen skriver en eksplicit kommando.

Hvorfor Telegram-bots er blevet så populære
En af grundene til, at Telegram-bots er steget voldsomt, er, at platformen tilbyder en Meget åben API med stort set ingen begrænsninger for udviklereDu behøver ikke at anmode om særlige tilladelser eller gennemgå endeløse anmeldelser som i andre beskedapps. Du taler blot med BotFather, opretter din bot, og på få sekunder har du en token klar til brug.
Den frihed har gjort det muligt for bots at trives til næsten alt: administrere grupper og kanaler, lancere undersøgelser, kontrollere e-handelsprocesser, oprette forbindelse til eksterne tjenester, modtage data i realtid eller endda håndtere interne virksomhedsopgaver (onboarding, teamnotifikationer, supportworkflows osv.).
Det hjælper også, at bot-API'en er meget let at forståDu kan arbejde på lavt niveau ved hjælp af HTTPS-anmodninger til https://api.telegram.org/botTOKEN/METHOD_NAME eller stole på boghandlere som f.eks. python-telegram-bot, pyTelegramBotAPI eller lignende biblioteker i Node.js, der abstraherer en masse kompleksitet.
I den virkelige verden kan dette omsættes til en bred vifte af anvendelser. Fra vejr- eller kryptovalutaprisbots til komplette kundeservicesystemer, uddannelsesbots, aktiemarkedsnotifikationer eller integrationer med værktøjer som Google Kalender, Trello, virksomheds-CRM'er og meget mere.
Opret en bot med BotFather og få tokenet
Før du berører en eneste linje kode, skal du give Telegram besked om, at din bot eksisterer. Dette gøres ved hjælp af @BotFather, som er den officielle Telegram-bot til registrering og konfiguration af botsHele processen udføres inde fra selve appen, både på mobil og desktop.
De grundlæggende trin til at registrere din bot er meget enkle og involverer altid denne rækkefølge af beskeder med BotFather, som håndteres, som om du chatter med en anden bruger:
- Åbn Telegram, skriv i søgefeltet @BotFader og gå ind i den bekræftede samtale (den har et blåt flueben).
- Tryk på "Start" eller skriv
/startfor at se listen over tilgængelige kommandoer. - Start kommandoen
/newbotBotFather vil først bede dig om en visningsnavn (hvad brugerne vil se på profilen) og derefter en brugernavn som skal ende ibotog den kan ikke starte med et tal.
For eksempel kan du bruge "Btc Price" som navn og noget i retning af btc_daily_update_botNår du har gennemført trinnene, sender BotFather dig en besked med flere anbefalinger, URL'en t.me/tu_usuario_bot og frem for alt en API-adgangstoken.
Det token har et format som dette: 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw Og det er nøglen, der tillader din kode at udgive sig for at være din bot på Telegrams servere, så Behandl det som en hemmelighed: Udgiv det ikke på GitHub, og del det ikke andre steder..
Fra BotFather kan du også Tilpas din bot med andre nyttige kommandoer:
/setdescriptionfor at tilføje en kort beskrivelse, der vil blive vist, når bottens chat åbnes./setabouttextfor biografien, der er synlig i profilen./setuserpicat uploade et profilbillede, der ikke ser så kedeligt ud./mybotsfor at se alle de bots, du har oprettet, og redigere dem./setcommandseller "Rediger kommandoer" for at definere listen over kommandoer, som din bot vil forstå (f.eks.start - Inicia la conversación).
Med dette har du nu oprettet "skallen". E-botten findes på Telegram, har et navn, en beskrivelse, et billede og, vigtigst af alt, et unikt token til at oprette forbindelse fra din kodeDet næste skridt er at bringe det til live med Python.
Forbered Python-miljøet og opret projektet
Selvom du kan programmere Telegram-bots på mange sprog, Python er en af de mest bekvemme muligheder Takket være dens enkle syntaks og antallet af tilgængelige biblioteker. For at følge denne vejledning skal du have installeret Python 3 på din computer og selvfølgelig Telegram-applikationen (på mobil eller desktop).
Som bedste praksis er det ideelt altid at arbejde inden for en virtuelt miljø (venv)På denne måde undgår du at blande afhængigheder mellem projekter. Fra den mappe, hvor du skal oprette din bot, kan du gøre noget i retning af dette i Windows:
py -m venv venv
.\venv\Scripts\activate
På macOS eller Linux ændres aktiveringskommandoen en smule, men ideen er den samme: Opret en isoleret boble, hvor du kun kan installere de biblioteker, som din bot vil bruge.Når miljøet er aktiveret, er det tid til at installere de nødvendige pakker med pip.
Afhængigt af den ønskede tilgang er der to ret almindelige veje til at komme i gang med Telegram-bots i Python, og det er værd at kende dem for at vælge den, der passer bedst til dit projekt:
- Arbejder direkte med anmodninger og HTTP API'en. Du konstruerer manuelt URL'er af typen
https://api.telegram.org/botTOKEN/sendMessageDu sender GET- eller POST-anmodninger medrequestsog du behandler svarene i JSON. - Brug et bibliotek som python-telegram-bot. Dette bibliotek abstraherer API'en og giver dig objekter på højt niveau som f.eks.
Updater,Dispatcher,CommandHandleroCallbackContextat arbejde med kommandoer og beskeder på en langt mere organiseret måde.
Hvis du ønsker en mere struktureret bot med kommandoer som f.eks. /start Og for et skalerbart design bør du også tilføje biblioteket python-telegram-botsom er installeret med en simpel:
pip install python-telegram-bot
Få botten til at sende sin første besked ved hjælp af Telegram API'en
Lad os starte med det grundlæggende: Få din bot til at sende en besked til din egen Telegram-chat Brug af HTTP API'en direkte. Dette vil hjælpe dig med at forstå, hvordan anmodninger er konstrueret, før du komplicerer tingene med flere funktioner.
For at botten kan skrive til dig, har den brug for to vigtige ting: token som BotFather gav dig og du chat-IDDet er meget nemt at få fat i dit chat-ID, hvis du følger denne proces omhyggeligt:
- Åbn chatten med din bot i Telegram via linket
t.me/tu_usuario_boteller ved at søge efter ham via hans brugernavn. - Skriv kommandoen
/startså der er mindst én besked i historikken. - Indtast URL'en i din browser:
https://api.telegram.org/botTU_TOKEN/getUpdates
Ved at tilgå den adresse returnerer API'en et JSON-objekt, der indeholder de seneste beskeder, der er knyttet til din bot. Indeni vil du se felter som "update_id", "message_id" og, meget vigtigt, den felt "chat" med "id"Det nummer (noget i den stil) 68xxxxxxx) er dit private chat-ID, som vi bruger til at sende beskeder direkte til din samtale.
Med tokenet og chat-ID'et i hånden kan du definere i din fil .py en minimal funktion, der konstruerer den relevante URL og starter anmodningen med requests.getMetoden vi skal kalde i Telegram API'en er sendMessagesom accepterer parametre som f.eks. chat_id, text og formattilstanden (for eksempel parse_mode=Markdown).
Den typiske struktur for den funktion, forenklet, ville være nogenlunde sådan her, hvor man tydeligt kan se, hvordan URL'en er konstrueret, og hvordan API-kaldet foretages med de nødvendige data:
def bot_send_text(bot_message):
bot_token = 'YOUR_TOKEN'
bot_chatID = 'YOUR_CHAT_ID'
send_text = 'https://api.telegram.org/bot' + bot_token + '/sendMessage?chat_id=' + bot_chatID + '&parse_mode=Markdown&text=' + bot_message
response = requests.get(send_text)
return response
Uden for funktionen kan du prøve at sende en testbesked ved at oprette en variabel og køre filen med Python. Hvis alt er konfigureret korrekt, Du vil se en besked som "Hej, Telegram!" i din bots chat. i løbet af få sekunder.
test_bot = bot_send_text('¡Hola, Telegram!')
Planlæg tilbagevendende beskeder med tidsplan
Det næste du sikkert vil gøre er automatiser afsendelsen af rapporten, så den ankommer hver dag på et fast tidspunkt uden at skulle køre noget manuelt. Biblioteket er meget praktisk til det. schedule, hvilket giver dig mulighed for at planlægge opgaver på en meget overskuelig måde.
med schedule Du kan fortælle dit script ting som "udfør funktionen report En gang om dagen kl. 08:00, og lad den derefter køre i et uendeligt loop og tjekke for ventende opgaver. Så længe programmet kører, vil din bot handle på det angivne tidspunkt.
Den typiske scriptindtastningsblok, der bruger mønsteret if __name__ == '__main__'Det ville se sådan ud for at holde botten tændt og opmærksom på planlagte opgaver:
if __name__ == '__main__':
schedule.every().day.at("08:00").do(report)
while True:
schedule.run_pending()
Det er vigtigt, at du bruger denne type automatisering med Brug lidt sund fornuft for at undgå at misbruge den hjemmeside, du scraper.Det giver ingen mening at anmode hvert sekund om data, der f.eks. kan tilgås én gang om dagen eller endda hver time. Hvis du overbelaster destinationsserveren, ender du med at blive blokeret.
Husk, at hvis du arbejder på denne måde, vil din bot kun fungere, så længe du har scriptet kører på din egen computerHvis du lukker terminalen eller slukker computeren, stopper botten med at sende planlagte beskeder. For at holde den aktiv 24/7 er det bedst at uploade koden til en server eller en cloudtjeneste.
Design en struktureret bot ved hjælp af python-telegram-bot-biblioteket
Efterhånden som dit projekt vokser, kan det blive kaotisk udelukkende at arbejde med HTTP-anmodninger. Det er her, biblioteket kommer ind i billedet. python-telegram-bot, som organiserer koden omkring objekter og kommandohåndterere og det gør dit liv meget lettere.
Dette bibliotek er baseret på et par nøglebegreber: objektet Updater, som er ansvarlig for at kommunikere med Telegrams servere og sende svar, og den dispatcherhvilket ville være noget i retning af bottens "øre", der altid lytter til indgående beskeder og beslutter, hvilken funktion der skal udføres, når en specifik kommando eller tekst indtastes.
Den reneste måde at arbejde med dit token på er at isolere det i et konfigurationsmodul, for eksempel i en pakke kaldet config hvor du gemmer en fil auth.py med en variabel token. Dermed, Du uploader ikke tokenet til repository'et, og du kan tilføje filen til din .gitignore. for at undgå bange.
Et meget minimalt første skelet af din fil bot.pyVed hjælp af biblioteket kunne det se nogenlunde sådan ud, hvor oprettelsen af Updater og hvordan er den opnået dispatcher tilknyttet:
from telegram.ext import Updater
from config.auth import token
hvis __navn__ == '__main__':
opdatering = Opdaterer(token=token, brug_kontekst=Sand)
dispatcher = updater.dispatcher
Hvis du kører filen som den er, vil du se, at scriptet simpelthen afsluttes uden fejl, men det gør stadig ikke noget nyttigt, fordi du ikke har fortalt det, hvordan det skal reagere på beskederne. Det næste trin er at tilføje hændelseslogning og definere funktioner, der fungerer som "håndterere" for de kommandoer, du vil understøtte, normalt startende med /start.
Python-standardbiblioteket logging Det giver dig detaljeret kontrol over, hvad der sker i din bot: hvilke kommandoer der modtages, om der opstår fejl osv. Opsætningen er så simpel som at definere et outputformat og et minimumsniveau for meddelelser:
import logging
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
logger = logging.getLogger('MiPrimerBot')
Med den indstilling angiver du, at du ønsker at se niveaumeddelelser på skærmen. INFO fra nu af (INFO, ADVARSEL, FEJL, KRITISK), og at hver linje indeholder datoen, loggerens navn, niveauet og den forklarende tekst til den hændelse, du registrerer.
Besvar /start-kommandoen med en brugerdefineret handler
For at gøre din bot til mere end blot en dekorativ figur, skal du bruge definerer funktioner, der udføres, når en specifik kommando ankommerDisse funktioner kaldes "handlere" og modtager altid et objekt som et argument. update og en context.
Parameter update Dette repræsenterer den indgående besked (uanset om det er en kommando, almindelig tekst osv.) og inkluderer data såsom chatten, brugeren og beskedens indhold. context Den repræsenterer selve botten med metoder til at reagere, sende billeder osv. Den logger typisk, når en kommando modtages, og svarer med en tekstbesked.
Et meget simpelt eksempel på en handler til kommandoen /start Det ville være noget i retning af dette, hvor loggene registrerer, at kommandoen blev modtaget, og et svar sendes til den samme chat, som den blev sendt fra:
from telegram.ext import CallbackContext
def start(opdatering: Opdaterer, kontekst: Tilbagekaldskontekst):
logger.info('Jeg har modtaget en startkommando')
kontekst.bot.send_besked(
chat_id=opdatering.besked.chat_id,
tekst="Jeg er fra Jerez de la Frontera, fødestedet for fino sherry, karteuserheste og verdens hovedstad for motorcykelkørsel"
)
Nu hvor du har defineret funktionen, skal du fortælle dispatcher at den bruger den, når kommandoen ankommer /startDet er det, objektet bruges til. CommandHandler, som knytter en kommandotekst (uden skråstreg) til den funktion, der er ansvarlig for at håndtere den.
Det er meget ligetil og let at registrere sig i dispatcheren: "Når du modtager startkommandoen, skal du udføre startfunktionen"Koden, der er nødvendig for at registrere den adfærd, ville se nogenlunde sådan ud i hovedblokken:
from telegram.ext import CommandHandler
hvis __navn__ == '__main__':
opdatering = Opdaterer(token=token, brug_kontekst=Sand)
dispatcher = updater.dispatcher
dispatcher.add_handler(CommandHandler('start', start))
updater.start_polling()
updater.idle()
De sidste to linjer er ekstremt vigtige: start_polling() Dette får botten til regelmæssigt at spørge Telegrams servere om nye beskeder (en metode kendt som polling), og idle() Det holder programmet kørende, indtil du manuelt stopper det med Ctrl+C i konsollen.
Hvis du nu løber python bot.py og på Telegram skriver du /start Din bot skal vise den besked, du har programmeret i handleren, udover de tilsvarende logposter for hver modtaget kommando.
Muligheder for at hoste og køre din bot døgnet rundt
En vigtig detalje, der ofte overses, er, at Telegram udfører ikke din kodeDeres servere gemmer kun beskeder og leverer API'en, men det program, der styrer din bot, skal køre et sted, uanset om det er din egen computer, en VPS eller en cloud-hostingtjeneste.
Hvis du bare tester, kan du Hold botten kørende på din lokale maskine Så længe du har konsollen åben. Men hvis du vil have den tilgængelig for brugerne døgnet rundt, bliver du før eller siden nødt til at uploade den til et miljø, der altid er tændt og har god forbindelse.
Blandt de mest almindelige muligheder for små og mellemstore projekter finder du platforme som f.eks. Gentag, gengive o DigitalOceanHver af dem har sine fordele med hensyn til brugervenlighed og pris. Generelt set kan du støde på en situation, der ligner denne:
| Gentag | Ja | Simpelt, det er fantastisk til begyndere |
| gengive | Ja | Medier |
| DigitalOcean | Ingen | Enkel, kraftfuld og rummelig |
For simple og læringsbaserede bots er de gratis niveauer af nogle tjenester normalt tilstrækkelige, selvom det er tilrådeligt at overvåge begrænsninger på udførelsestid, CPU-forbrug eller udgående forbindelser, så botten ikke går ned uden at du bemærker det.
På teknologistakniveau er den normale tilgang at vælge Python med biblioteker som python-telegram-bot, hvis du foretrækker klarhed og omfattende dokumentation, eller ved node.js med løsninger som Telegraf.js eller node-telegram-bot-api, hvis du allerede kommer fra JavaScript-verdenen og ønsker at integrere med andre projekter i det økosystem.
Alternativer uden kode og professionel brug af bots
Hvis programmering ikke er din ting, eller du bare gerne vil Byg en fungerende bot i fuld fart For at validere en idé har du flere no-code platforme til rådighed, der giver dig mulighed for at oprette samtaleflows med visuelle blokke uden at røre en eneste linje i Python.
Værktøjer som Manybot, Chatfuel, Tars, Make (tidligere Integromat), n8n eller integrationer med Google Sheets og Airtable giver dig mulighed for at Definer spørgsmål- og svarlogik, formularer, navigationsmenuer eller forbindelser til andre tjenester ved hjælp af grafiske grænseflader. De er perfekte til MVP'er, hurtige tests eller projekter, hvor botten ikke behøver at gøre alt for avancerede ting.
Den primære forskel i forhold til at udvikle med din egen kode er, at du med disse løsninger ofrer noget fleksibilitet til gengæld for hastighed og enkelhed. Når du har brug for mere komplekse funktionaliteter, meget specifikke integrationer eller total kontrol over logikken, er den sædvanlige tilgang tag springet til en seriøst programmeret bot.
På forretningsniveau kan en Telegram-bot blive et centralt værktøj for betjene kunder døgnet rundt, automatisere gentagne processer eller indsamle strukturerede data uden at overvælde teamet. Tænk på opgaver som at besvare ofte stillede spørgsmål, administrere ordresporing, lancere tilfredshedsundersøgelser, onboarde nye studerende i et online akademi eller håndtere reservationer på en restaurant.
Du kan også udforske forretningsmodeller omkring bots: premium adgang til bestemte funktioner via abonnement, betalte uddannelsesbots, eksklusivt indhold, integration med e-handel eller affiliate-anbefalinger med trackinglinks, altid respekt for databeskyttelsesregler og Telegrams brugsbetingelser.

