Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord
abonneren

Bouw je eigen Telegram-chatbot

Inhoudsopgave

  1. > Inleiding
  2. > Lees verder op pagina 2
Er is een hele hype rond chatbots, die op steeds meer plaatsen opduiken. In dit artikel laten we zien wat je er zelf mee kunt. We bouwen onze eigen Telegram-chatbot en vertellen wat je daar allemaal mee kunt doen.

Er zijn diverse websites met tools om een bot te bouwen. Leerzamer is het om er zelf eentje te maken. Om inspiratie op te doen kun je kijken op storebot.me van Telegram of het bredere botlist.co. Ook Microsoft zet vol in op bots, de website bots.framework.com geeft een goede indruk. In deze masterclass gebruiken we een bot als ‘communicatiekanaal’.

Vanaf een server kunnen we hier bijvoorbeeld teksten en foto’s naar versturen. De meldingen lees je via de Telegram-app, waar en wanneer je maar wilt. We laten ook zien hoe je die bot gebruikt voor het afvangen van meldingen van de home automation software Domoticz. Hierna maken we de chatbot zodat deze op commando’s kan reageren.

BotFather

Telegram maakt het bouwen en gebruiken van een bot relatief eenvoudig. Er is prima documentatie, een relatief eenvoudige api en de BotFather waarmee je in een paar stappen zelf een chatbot maakt. Alle berichten die de chatbot verstuurt en ontvangt lopen via Telegram. Daarom heb je een (gratis) Telegram-account nodig. Je kunt je eenvoudig registreren via web.telegram.org door het opgeven van je mobiele telefoonnummer. Je ontvangt dan een sms-bericht en kunt via de instructies op het scherm het account maken.

Heb je al een Telegram-account, dan kun je dat gebruiken voor de stappen in deze masterclass via het bovengenoemde webadres. Je kunt ook een van de vele Telegram-apps gebruiken. Telegram heeft een eigen bot genaamd BotFather die je gebruikt voor het registreren van je nieuwe chatbot. Een conversatie met BotFather kun je starten via telegram.me/botfather.

Een bot bij Telegram kan behalve berichten ook specifieke commando’s ontvangen die met een slash (/) beginnen. Het maken van een bot gaat ook met commando’s. Stuur

/newbot

naar de BotFather om een bot te maken. Kies een naam gevolgd door een (unieke) gebruikersnaam. Wij kiezen PCM_DemoBot. Kies voor je eigen bot een andere gebruikersnaam. Je ontvangt hierna meteen een bevestiging met een token die je nodig hebt bij het gebruik van de api. De eenvoudigste manier om de api te gebruiken is via een browser. Blader naar de url https://api.telegram.org/bot<jouw-bot-token>/getme waarbij je op de plaats van

<jouw-bot-token>

je token invult. De letters bot voor de token zijn belangrijk, maar worden vaak vergeten. De token dient voor het vinden van je bot én voor autorisatie dus houd de token geheim. De respons is nu bijvoorbeeld

{"ok":true,"result":{"id":309266712,"first_name":"PCM Demo Bot","username":"PCM_DemoBot"}}

Door in de aanroep de opdracht getme te vervangen door getUpdates krijg je (in het json-formaat) een respons met alle berichten die naar de bot zijn verstuurd. Omdat het een nieuwe bot is zie je nu nog geen berichten. Daarom gaan we eerst een conversatie opzetten met de bot.

Chatten

Om een conversatie met je bot te starten blader je naar https://telegram.me/<gebruikersnaam> of zoek je naar @<gebruikersnaam> in een van de Telegram-apps. Klik daarna op Begin. Stuur een willekeurige tekst naar je bot (bijvoorbeeld Hallo). Als je nu de url https://api.telegram.org/bot<jouw-bot-token>/getUpdates opent zie je wél berichten.

Om de respons beter leesbaar te maken selecteer je alle tekst in de browser met Control+A. Kopieer de tekst met Control+C en plak het in een venster van de online tool JSONLint (http://jsonlint.com). Druk dan op Validate JSON. We zijn op dit moment alleen geïnteresseerd in de id die onder chat wordt genoemd in de sectie result. Dat is de chat-id. In ons voorbeeld is dat 58332350. Je kunt nu een antwoord via de api versturen met die chat-id. Om een antwoord te sturen open je de url https://api.telegram.org/bot<jouw-bot-token>/sendMessage?chat_id=<chat-id>&text=<jouw-tekst> in de browser waarbij je <chat-id> vervangt door de correcte chat-id en <jouw-tekst> door de gewenste tekst. In de Telegram-app zie je vervolgens deze reactie van de bot in de chat. We zullen nu andere manieren verkennen om tekst en afbeeldingen via de bot te versturen.

Curl

Het openen van een url in de browser kun je zien als een http-get actie. Voor het versturen van bestanden, zoals een afbeelding, is een http-post actie nodig. Een handige en veelgebruikte tool voor http-get en http-post via de opdrachtprompt is curl. Zeker in Linux-omgevingen is dit meestal standaard geïnstalleerd en anders kun je de tool onder Debian/Ubuntu gemakkelijk met

apt-get install curl

installeren. Om een tekst naar de chat te sturen met een http-get gebruik je onderstaande commando waarbij je uiteraard weer de correcte chat-id en gewenste tekst invoert.

curl -i -X GET "https://api.telegram.org/bot<jouw-bot-token>/sendMessage?chat_id=<chat-id>&text=<jouw-tekst>

Wil je een foto versturen dan kun je een http-post doen inclusief afbeelding met onderstaande commando, waarbij je achter @ het volledige pad naar de foto opgeeft.

curl -s -X POST "https://api.telegram.org/bot<jouw-bot-token>/sendPhoto" -F chat_id=<chat-id> -F photo="@/pad/naar/foto"

Geschreven door: Redactie PCM op

Category: Nieuws, Programmeren

Tags: python, Programmeren, Chatbot, Telegram

Nieuws headlines

donderdag 09 november

Laatste reactie