Hoe maak je in minder dan 10 minuten een Telegram-bot met Python?

Laatste update: 28/01/2026
Auteur: Isaac
  • Een Telegram-bot is een applicatie die via de Bot API met gebruikers communiceert, ideaal voor het automatiseren van taken, het bieden van ondersteuning en het verspreiden van content.
  • met Python En met de python-telegram-bot-bibliotheek kun je binnen enkele minuten een functionele bot maken, beginnend met een eenvoudig /start-commando en uitbreidend met menu's en statussen.
  • De architectuur is gebaseerd op het ontvangen van updates via polling of webhooks, waardoor de bot kan worden ingezet op cloudservices zoals AWS en 24/7 beschikbaar is.
  • Door goede beveiligings-, gebruikerservaring- en monitoringpraktijken toe te passen, wordt ervoor gezorgd dat de bot betrouwbaar, schaalbaar en op de lange termijn nuttig is.

Telegram-bot met Python

Als je Telegram dagelijks gebruikt, heb je waarschijnlijk al vaker gedacht hoe handig een bot zou zijn die taken voor je kan uitvoeren. Medicatieherinneringen, antwoorden op veelgestelde vragen of automatische meldingen zijn slechts enkele voorbeelden van wat je zonder veel moeite kunt automatiseren. Het goede nieuws is dat je met Python binnen enkele minuten een werkende bot aan de praat kunt krijgen.

In dit artikel leer je hoe je in minder dan 10 minuten een Telegram-bot maakt met Python , helemaal vanaf nul, en hoe je elke stap begrijpt. We behandelen alles, van het maken van de bot met BotFather en het installeren van bibliotheken tot praktijkvoorbeelden en opties voor het implementeren ervan in de cloud (zoals AWS of gratis services), zodat je je computer niet de hele dag aan hoeft te laten staan.

Wat is een Telegram-bot precies en waarom is het de moeite waard om er een te maken?

Een Telegram-bot is in feite een programma dat binnen Telegram draait en op berichten reageert volgens regels die je in de code definieert. Het is geen menselijke gebruiker, maar een "speciaal account" dat wordt beheerd door een backend die je ontwikkelt, meestal gehost op een server of cloudservice.

Deze bots kunnen zo simpel zijn als een systeem dat altijd met hetzelfde bericht reageert, of zo geavanceerd als een AI- assistent die natuurlijke taal begrijpt , betalingen beheert, meerdere talen spreekt en verbinding maakt met externe diensten (API's, databases , IoT- systemen , enz.). Telegram biedt een open en goed gedocumenteerde Bot API die de ontwikkeling aanzienlijk vereenvoudigt.

Bovendien zijn bots niet beperkt tot privéchats : ze kunnen actief zijn in groepen, supergroepen en kanalen, gesprekken modereren, samenvattingen, polls en allerlei soorten multimedia-inhoud versturen. Daarom zijn ze een essentieel hulpmiddel geworden voor het automatiseren van taken, het beheren van communities en het aanbieden van diensten zonder dat de gebruiker de app hoeft te verlaten.

Technisch gezien communiceert een bot met Telegram via HTTPS-verzoeken aan de Bot API . Je schrijft de code (bijvoorbeeld in Python), Telegram geeft je een geheim token, en vanaf dat moment verloopt alles via de uitwisseling van JSON tussen jouw scripts en de servers van Telegram.

Voorbeeld van een Telegram-bot

Praktische toepassingen: waarvoor worden Telegram-bots tegenwoordig gebruikt?

Voordat we beginnen met programmeren, is het handig om te begrijpen welke problemen je met een Telegram-bot kunt oplossen . Dit helpt je om de logica van je bot beter te ontwerpen en, belangrijker nog, ervoor te zorgen dat het niet bij een simpel experiment blijft.

Veel bedrijven gebruiken bots als eerste aanspreekpunt voor klantenservice . Een bot kan veelgestelde vragen beantwoorden, de orderstatus controleren, boekingen beheren of gepersonaliseerde help-links versturen. Als het ingewikkeld wordt, kan de bot het gesprek doorverbinden naar een medewerker, maar in eerste instantie bespaart het veel repetitief werk.

Een andere veelvoorkomende toepassing is contentdistributie . Er zijn bots die RSS-feeds, blogs, YouTube-kanalen of sociale media lezen en nieuws, berichten of video's in realtime naar gebruikers of kanalen sturen. Dit is ideaal voor mediabedrijven, contentmakers of iedereen die informatie wil centraliseren zonder tussen apps te hoeven wisselen.

Op persoonlijk vlak maken productiviteitsbots een wereld van verschil: herinneringen, takenlijsten, meldingen over gebeurtenissen en slimme alarmen . Een bot kan zinnen begrijpen zoals "Herinner me eraan om morgen om 8 uur mijn medicijnen in te nemen" en een melding voor het juiste tijdstip inplannen, zonder dat je een andere app hoeft te openen.

Er zijn ook bots gericht op vrije tijd en nuttige toepassingen: het downloaden van multimediacontent (altijd met respect voor auteursrecht), reismanagers die vluchten en hotels aanbevelen , bots voor het bekijken van kaarten, het beheren van persoonlijke financiën, het ontvangen van meldingen van industriële systemen of serverbewaking, enzovoort. De combinatie van 24/7 beschikbaarheid en gebruiksgemak maakt de mogelijkheden enorm.

Hoe de architectuur van een Telegram-bot werkt

Om volledig te begrijpen wat je gaat programmeren, is het handig om een ​​helder beeld te hebben van de basisarchitectuur. Aan de ene kant is er Telegram, met zijn servers en de Bot API , en aan de andere kant is er jouw applicatie (de code in Python, Node.js of de taal van je keuze) die ergens draait: op je pc, een virtuele machine, een serverloze service, een container, enzovoort.

Wanneer een gebruiker een bericht naar je bot stuurt, genereert Telegram een ​​'update' in JSON-formaat . Deze update bereikt je programma op twee mogelijke manieren: je kunt hem ophalen door te pollen met de getUpdates-methode , of Telegram stuurt hem automatisch naar je via een HTTPS-webhook die je eerder hebt geconfigureerd.

In de pollingmodus stuurt je script periodiek verzoeken naar Telegram om te vragen of er nieuwe berichten zijn. Dit is perfect voor lokale ontwikkeling en snelle tests , omdat je je computer niet aan het internet hoeft bloot te stellen of certificaten hoeft te configureren. Voer gewoon het script uit en je kunt aan de slag.

  Tips voor het maken van een Microsoft-account met Gmail

In de webhook-modus stuurt Telegram updates rechtstreeks naar een HTTPS-URL die u beheert. Dit is het meest geschikt voor productieomgevingen , omdat het de latentie vermindert, constante verzoeken voorkomt en u in staat stelt de applicatie te schalen achter een webserver, proxy of load balancer. Een openbare URL en een geldig SSL-certificaat zijn essentieel voor deze configuratie.

In beide gevallen ontvangt je bot de JSON, verwerkt deze volgens de logica die je hebt gedefinieerd en reageert met behulp van Bot API-methoden zoals sendMessage, sendPhoto, answerCallbackQuery en vele andere. Bibliotheken op hoog niveau (zoals python-telegram-bot of Telegraf in Node.js) bundelen deze details, zodat je alleen hoeft te werken met functies en commandohandlers.

Telegram bot-architectuur

Vereisten voor het maken van een bot met Python in een paar minuten

Om je eerste bot op te zetten, heb je geen enorme bedrijfsomgeving nodig, maar wel een aantal duidelijke minimumvereisten . Door deze op orde te hebben, bespaar je tijd en voorkom je domme fouten tijdens de configuratie.

De basisvereiste is dat Python 3 op uw systeem is geïnstalleerd . Elke moderne versie (3.8 en hoger) is meestal meer dan voldoende. Het is ook aan te raden om pip beschikbaar te hebben voor het installeren van pakketten, hoewel dit in de meeste huidige Python-distributies al is opgenomen.

De volgende stap is het installeren van een bibliotheek die het werken met de Bot API vereenvoudigt. In dit geval gebruiken we python-telegram-bot , een van de populairste en best onderhouden bibliotheken in de Python-community. Om deze te installeren, voert u eenvoudigweg de volgende opdracht uit in uw terminal :

pip3 install python-telegram-bot

Naast de technische installatie moet je de bot zelf ook registreren op Telegram. Hiervoor gebruik je @BotFather , de officiële Telegram-bot die fungeert als controlepaneel voor al je bots. Daar kun je de bot aanmaken, een naam geven en het toegangstoken verkrijgen. Dit token is de sleutel waarmee je script het account kan beheren.

Maak een Telegram-bot met BotFather.

Het uitgangspunt is altijd hetzelfde: registreer je bot en verkrijg het token . Zonder dit token kan je code niet communiceren met de Bot API of berichten versturen, omdat het token je bot uniek identificeert.

Open Telegram en zoek naar de gebruiker. @BotVaderHet is een officiële, geverifieerde bot, dus je kunt er geen fout mee maken. Zodra je hem hebt, start je een chat ermee en typ je het commando in. /newbotBotFather zal je stap voor stap begeleiden.

Eerst moet u een specificatie geven een "vriendelijke" naam voor je botDit is wat gebruikers te zien krijgen (bijvoorbeeld "Medicatieherinnering"). Vervolgens wordt u gevraagd om een ​​gebruikersnaam, die uniek moet zijn en moet eindigen op . bot, zoals bijvoorbeeld recordatorio_meds_bot of iets dergelijks.

Zodra het proces is voltooid, retourneert BotFather een API-token in een formaat dat lijkt op dit: 123456789:ABC-DEF… . Dit token is heilig: behandel het als een zeer sterk wachtwoord. Publiceer het niet op GitHub, kopieer het niet naar forums en als je ooit vermoedt dat het is gecompromitteerd, kun je het opnieuw genereren via BotFather met behulp van tokenrotatiecommando's.

Daarmee heb je de basis in huis: een Telegram-botaccount en de inloggegevens om deze vanuit je Python-code te beheren . Nu is het tijd om een ​​klein script te schrijven dat de verschillende onderdelen met elkaar verbindt.

De python-telegram-bot installeren en de omgeving voorbereiden

Met het token in handen is de volgende stap ervoor te zorgen dat je Python-omgeving klaar is om met de Telegram API te werken. Zoals gezegd is de handigste optie het gebruik van de python-telegram-bot- bibliotheek , die klassen en functies op hoog niveau biedt voor het definiëren van commando's, het beheren van gesprekken en het verzenden van berichten.

Als je dat nog niet hebt gedaan, installeer de bibliotheek dan door de volgende opdracht in je terminal of console uit te voeren:

pip3 install python-telegram-bot

Op veel systemen werkt het wellicht ook gewoon als je maar één versie van Python hebt:

pip install python-telegram-bot

Hiermee kun je nu een Python-bestand aanmaken, bijvoorbeeld bot_telegram.py , waarin je de code voor je bot gaat schrijven. Je kunt elke teksteditor of IDE gebruiken: VS Code, PyCharm, Sublime Text of zelfs Kladblok als je dat prettiger vindt. Het belangrijkste is niet de tool, maar de inhoud van het script.

De minimale structuur van een bot met python-telegram-bot bestaat uit het importeren van de benodigde klassen, Configureer de applicatie met uw token. en definieer ten minste één handlerfunctie voor de opdracht /startwat doorgaans de toegangspoort is tot elke bot.

Eerste voorbeeld: minimale bot met /start-commando

Laten we eens kijken naar een praktisch voorbeeld van een heel eenvoudige bot die reageert met een basisbericht wanneer de gebruiker het commando verzendt. /startHiermee kunt u controleren of alles correct is aangesloten: of het juiste token is gebruikt, of de bibliotheek is geïnstalleerd en of de communicatie met Telegram werkt.

In je bot_telegram.py- bestand kun je een moderne versie maken op basis van de huidige python-telegram-bot (asynchrone) architectuur met code die lijkt op deze, maar aangepast is aan een recentere stijl:

from telegram.ext import ApplicationBuilder, CommandHandler

async def start(update, context):
await update.message.reply_text("Hallo! Ik ben je voorbeeldbot op Telegram.")

TOKEN = "UW_TOKEN_HIER"

def main ():
app = ApplicationBuilder().token(TOKEN).build()
app.add_handler(CommandHandler("start", start))
app.run_polling()

if __name__ == "__main__":
hoofd()

In dit fragment, ApplicationBuilder maakt de hoofdapplicatie voor de bot aan.waaraan je een handler voor het commando koppelt. /start. Functie start Het is verantwoordelijk voor het beantwoorden van de gebruiker met een eenvoudige tekst, en run_polling() Activeer de modus voor langdurig pollen, zodat de bot Telegram continu om nieuwe updates blijft vragen.

  Tips om te voorkomen dat apps uw training op de iPhone volgen

Om het te starten, voer je simpelweg het volgende commando in de terminal in:

python3 bot_telegram.py

Als alles naar behoren werkt, zie je consoleberichten die aangeven dat de bot actief is. Open Telegram, zoek je bot op met de gebruikersnaam die je in BotFather hebt ingesteld, open de chat en stuur een bericht. /start. Je zou het welkomstbericht moeten ontvangen. die je in de code hebt gedefinieerd.

De bot nuttiger maken: menu's, statusupdates en gesprekken.

Beginnend met het eenvoudige "hello world", wordt het pas echt leuk om er meer aan toe te voegen. Geavanceerdere logica: menu's, knoppen, verschillende gespreksstromen en statusbeheer. Dit is waar de ware kracht van python-telegram-bot tot uiting komt, met tools zoals ReplyKeyboardMarkup, InlineKeyboardMarkup of ConversationHandler.

Stel dat je een bot wilt maken om incidenten of rampen te melden , vergelijkbaar met projecten zoals DisAtBot. Het idee zou zijn om een ​​beginmenu weer te geven met opties zoals 'Rapport indienen', 'Kaart bekijken', 'Veelgestelde vragen' of 'Over'. Hiervoor kun je een aangepast toetsenbord definiëren met knoppen die de gebruiker kan indrukken, in plaats van hem te dwingen handmatig tekst in te typen.

Met behulp van een snel reagerend toetsenbord definieer je in Python een lijst van lijsten, waarbij elke sublijst een rij knoppen vertegenwoordigt. Vervolgens gebruik je Gebruik de functie `ReplyKeyboardMarkup` om het toetsenbord te bouwen. en jij doet alsof het een argument is om reply_text of vergelijkbare methoden, zodat Telegram die knoppen boven het tekstvak weergeeft.

Deze techniek is ideaal wanneer u sterk begeleide workflows nodig hebt, zoals bijvoorbeeld: stapsgewijze formulieren, vragenlijsten of kritische processen waarbij je wilt voorkomen dat de gebruiker typefouten maakt. Bovendien kun je dit combineren met een toestandsmachine. ConversationHandlerwaarbij elke fase van de workflow is gekoppeld aan een of meer verschillende handlers (bijvoorbeeld het kiezen van een taal, het kiezen van een rapporttype, het opvragen van geolocatiegegevens, het bevestigen van gegevens, enz.).

Met deze bibliotheek kunt u een woordenboek van statussen definiëren, waarbij elke sleutel een geheel getal is (de status-ID) en de waarde een lijst is van handlers die op dat moment geactiveerd worden. Op deze manier behoudt u de context tussen berichten en kunt u complexe dialogen opbouwen zonder vast te lopen in if/else-instructies.

Praktisch voorbeeld: een bot die je eraan herinnert om medicijnen in te nemen (om de dag).

Een heel specifiek en nuttig voorbeeld is eraan denken om medicijnen in te nemen , afwisselend 's middags en 's avonds, om de dag. De eerste aanpak, namelijk controleren of de kalenderdag even of oneven is, lijkt eenvoudig, maar werkt niet meer als je met maanden te maken krijgt (30, 31 dagen, februari, schrikjaren, enz.).

De meest robuuste manier om dit op te lossen is om niet te vertrouwen op de dag van de maand, maar op een vaste referentiedatum . Je kunt bijvoorbeeld ergens (in een bestand, een database of zelfs een permanente variabele op de server) de datum van de eerste dag waarop je de medicatie hebt ingenomen opslaan en die dag definiëren als "dag van de middagdosis". Vanaf dat moment bereken je hoeveel dagen er sinds die eerste datum zijn verstreken.

Met de huidige datum en de startdatum kunt u het verschil in dagen berekenen met behulp van de functies in de standaardbibliotheek van Python (module). datetimeVervolgens doe je een modulo 2 (rest bij deling door 2)Als het restant 0 is, krijg je één soort maaltijd (bijvoorbeeld de lunch); als het restant 1 is, krijg je de andere (bijvoorbeeld het avondeten). Omdat de berekening gebaseerd is op het totale aantal verstreken dagen, hebben de maandwisseling en het aantal dagen in elke maand geen invloed op je.

Je bot kan vervolgens een klein script uitvoeren dat elke dag op een specifiek tijdstip berekent of het lunch- of avondetenstijd is en je het bijbehorende bericht stuurt. Om het automatisch verzenden in te plannen, kun je Python-planningsbibliotheken zoals `schedule` of `apscheduler` integreren , of externe systemen gebruiken zoals cronjobs, geplande Lambda-functies of geplande taken van de service die de bot host.

Waar kunt u uw bot hosten: gratis en cloudgebaseerde opties?

Een veelgestelde vraag is: Moet ik mijn computer de hele dag aan laten staan ​​zodat de bot werkt? Het antwoord is nee, zolang je hem maar implementeert op een cloudservice of online platform dat het proces voor je draaiende houdt.

Diensten zoals PythonAnywhere stellen je in staat om Python-scripts in de cloud uit te voeren en kunnen een goede optie zijn voor testen of eenvoudige bots. Gratis abonnementen hebben echter vaak beperkingen wat betreft continue looptijd, uitgaande verbindingen of beschikbaarheid. Het is belangrijk om de algemene voorwaarden te bekijken om er zeker van te zijn dat je bot actief blijft zonder constante monitoring.

Als je iets robuuster wilt, maar ook met zeer betaalbare opties (of bijna gratis voor kleine volumes), is een interessant alternatief om AWS te gebruiken met een serverloze aanpak . Je kunt je bot bijvoorbeeld instellen met een webhook die wordt aangeboden door AWS Lambda, beschikbaar gesteld via Amazon API Gateway. In dit model wordt je code alleen uitgevoerd wanneer Telegram een ​​update stuurt en hoef je je geen zorgen te maken over het draaiende houden van een server. Als je extra beveiliging nodig hebt, kun je diensten zoals Cloudflare overwegen.

Bij deze aanpak definieer je een Lambda-functie die de JSON ontvangt die Telegram naar je webhook stuurt, het geheime token valideert, het bericht verwerkt en reageert door de Bot API aan te roepen via HTTPS-verzoeken. De kosten zijn bij weinig verkeer meestal erg laag en je hoeft geen machines, patches of herstarts te beheren.

  Methoden om notities op de iPhone te vergrendelen met behulp van Contact ID

Voor grotere bots met meer verkeer of zwaardere afhankelijkheden kunt u kiezen voor containers op ECS Fargate in combinatie met een Application Load Balancer (ALB) . In dit geval draait u uw bot (bijvoorbeeld een FastAPI-applicatie geïntegreerd met python-telegram-bot in webhook-modus) in een Docker-container, en de ALB ontvangt HTTPS-verzoeken en stuurt deze door naar uw Fargate-taken. Het is complexer, maar ook zeer schaalbaar en flexibel.

Long polling versus webhooks: welke te kiezen en wanneer?

Telegram biedt twee elkaar uitsluitende methoden voor het ontvangen van updates: getUpdates (polling) of webhooks . Je kunt ze niet allebei tegelijk gebruiken; of je bot peilt Telegram, of Telegram stuurt de updates naar je server.

El lange peiling Het is de eenvoudigste manier om te beginnen. Je code roept periodiek een functie aan. getUpdatesDit geeft een time-outperiode aan om de verbinding open te houden totdat er nieuwe berichten zijn ontvangen. Het is ideaal voor lokale ontwikkeling, omdat je de bot op je laptop kunt draaien zonder poorten aan de buitenwereld bloot te stellen. De python-telegram-bot-bibliotheek regelt deze details met methoden zoals: run_polling().

De webhooksAan de andere kant zijn ze de optie die is ontworpen voor productie. Je configureert een HTTPS-URL (bijvoorbeeld een endpoint in API Gateway, een Flask/FastAPI-server of een route in een Node-framework zoals Express of Telegraf) en roept de methode aan. setWebhook U kunt updates ontvangen via de Bot API door de opgegeven URL te specificeren. Vanaf dat moment wordt elke update die Telegram ontvangt, als een POST-verzoek in JSON-formaat naar uw endpoint verzonden.

Met webhooks kun je een extra beveiligingslaag met behulp van de parameter secret_tokenBij het definiëren van de webhook geef je een geheim token mee, waarna je op je server de header valideert. X-Telegram-Bot-Api-Secret-Token Dit komt overeen met de verwachte waarde. Op deze manier accepteer je alleen verzoeken die daadwerkelijk van Telegram afkomstig zijn.

Onthoud in ieder geval dat zolang een webhook is geconfigureerd, Je kunt getUpdates niet gebruiken.Als je terug wilt naar de pollingmodus, moet je eerst de webhook uitschakelen door deze te verwijderen of leeg te maken. Daarna kun je je bot lokaal uitvoeren met run_polling() zonder conflict.

Beste werkwijzen voor beveiliging, gebruikerservaring en onderhoud.

Wanneer je bot door meer mensen gebruikt wordt, is het belangrijk om verder te gaan dan experimenteren en na te denken over best practices om ervoor te zorgen dat de bot veilig, prettig in gebruik en op de lange termijn gemakkelijk te onderhouden is.

Vanuit een beveiligingsperspectief is het cruciaal om het token van de bot te beschermen . Bewaar het token altijd in omgevingsvariabelen of secret managers (zoals AWS Secrets Manager) en vermijd het rechtstreeks opnemen ervan in de broncode, vooral als die code in openbare repositories wordt geplaatst. Als u vermoedt dat het token is gecompromitteerd, genereer het dan onmiddellijk opnieuw in BotFather.

Als je webhooks gebruikt, profiteer dan van het geheime token en valideer altijd de header die Telegram verzendt. Beperk bovendien de blootgestelde poorten (zoals 443, 80, 88 en 8443, de poorten die Telegram ondersteunt voor webhooks) en configureer de firewallregels of beveiligingsgroepen van je cloudprovider om alleen noodzakelijk verkeer toe te staan.

Vanuit het oogpunt van gebruikerservaring is het cruciaal dat uw bot duidelijke commando's, verklarende berichten en gebruiksvriendelijke foutafhandeling gebruikt . Als er iets misgaat, laat de gebruiker dan niet in het ongewisse; stuur een bericht waarin u uitlegt dat er problemen zijn en geef, indien mogelijk, suggesties voor mogelijke oplossingen. Knoppen, aangepaste toetsenborden en goed ontworpen menu's maken de interactie aanzienlijk sneller.

Ten slotte wordt het aanbevolen Prestaties monitoren en fouten registrerenMaak gebruik van de systemen van logs van uw provider (bijvoorbeeld CloudWatch in AWS) om uitzonderingen, trage reactietijden of verkeerspieken te detecteren. U kunt ook feedback van gebruikers zelf verzamelen met opdrachten zoals /feedback of gerichte enquêtes, om de meest gebruikte functies te verbeteren.

Met al het bovenstaande is het opzetten van een Telegram-bot met Python in minder dan 10 minuten geen magie meer; het wordt een eenvoudig proces: registreer de bot bij BotFather, installeer python-telegram-bot, schrijf een kort script met /start, kies tussen polling of webhook en bepaal waar je de bot wilt hosten . Van daaruit kun je lagen toevoegen: menu's, statussen, integraties met externe API's of slimme herinneringen zoals medicatieherinneringen, totdat je een echt nuttige assistent hebt die is afgestemd op je dagelijkse leven.

Berichten plannen in Telegram-4
Gerelateerd artikel:
Hoe je berichten plant op Telegram: een complete gids met alle trucs
Isaac

Isaac

Gepassioneerd schrijver over de wereld van bytes en technologie in het algemeen. Ik deel mijn kennis graag door te schrijven, en dat is wat ik in deze blog ga doen: je de meest interessante dingen laten zien over gadgets, software, hardware, technologische trends en meer. Mijn doel is om u te helpen op een eenvoudige en onderhoudende manier door de digitale wereld te navigeren.