Telegram (Chat)Bots

Telegram ist ein Messenger. Man schickt sich Nachrichten. Es gibt Gruppen, es gibt Channels und es gibt Bots!
Ein Bot ist eine Third-Party Application, also ein Programm, das nicht von Telegram stammt.
Die Idee ist die gleiche, wie bei Plugins in WordPress, Erweiterungen in Joomla und Modulen in Drupal.
Du kannst einem Telegram Bot Nachrichten schicken und der Bot kann auf unterschiedliche Art und Weise darauf reagieren. Die Nachrichten sind normalerweise Befehle die mit einem / beginnen, also so etwas wie /start.

Existierende Bots nutzen

Es gibt bereits zahlreiche Bots und in Verzeichnissen wie dem Telegram Bots Directory oder allgemeinen Verzeichnissen wie botfinder.io werden die Bots beschrieben. Telegram selbst stellt ebenfalls Bots zur Verfügung. Auf den ersten Blick wirkt das alles verspielt und man denkt sich vermutlich … „Hm, brauche ich das?“

Offizielle Telegram Bots

Wetterbot

Der Wetterbot (@weatherbot) ist ein einfaches Beispiel für einen Bot.

Wetterbot

Er ist in verschiedenen Sprachen verfügbar und gibt eine Dreitagesvorschau für definierte Orte. Du kannst beliebig viele Orte speichern. Unter dem Nachrichtenfenster erscheint ein kleines Menü mit dem der Bot bedient werden kann.

Der Shop Bot

Stell dir vor, du verkaufst Waren oder Dienstleistungen im Internet und du betreibst einen Telegram Channel oder eine Telegram Gruppe (siehe auch Live mit den Besuchern deiner Website chatten).
Der Shop Bot verkauft etwas. Das Demo kannst du einfach im Suchfeld von Telegram aufrufen.

Der Shop Bot ist ein vollständiger Demoshop. Du kannst dort eine „Zeitmaschine“ kaufen und mit der Kreditkartennummer 4242 4242 4242 4242 bezahlen. Echte Kreditkarten funktionieren nicht in diesem Bot. Die Lieferung der Zeitmaschine haut auch nicht so richtig hin, aber ansonsten ist das Demo schon beeindruckend.
Der Bot stellt sich vor und der Checkout Vorgang ist sehr übersichtlich.

Bot Begrüssung
Das Produkt
Versandkosten
Checkout

Der Shop Bot ist ein kompletter Online Shop innerhalb von Telegram, in dem du mit einer Kreditkarte bezahlen kannst. Das Interessante daran ist nicht so sehr der Shop an sich, sondern die Möglichkeit innerhalb eines Messenger einzukaufen ohne ihn verlassen zu müssen. Mit der Bot Payment API kannst du dir genau so einen Shop in Telegram selbst bauen.

Einen einfachen Bot erstellen

Bevor wir gleich einen Online Shop Bot bauen, erstmal ein einfacheres Beispiel um das Prinzip besser zu verstehen.

@botfather

Zunächst musst du den Bot @botfather hinzufügen und starten (/start).

Mit dem Kommando /newbot legst du einen neuen Bot an, mit /mybots wählst du einen existierenden Bot zum Bearbeiten aus.

Dialog mit dem BotFather

API Kommunikation

Nun kommt es darauf an, was du mit deinem Bot machen willst. Jegliche Kommunikation läuft ab jetzt über die Telegram Bot API. Der BotFather erstellt dir auf einen Buttonklick ein API Token, mit dem du auf die Befehle, die ein Nutzer deines Bots eingibt, reagieren kannst.

Um die Kommunikation in deinem Bot zu lesen, rufe diese URL in deinem Browser auf

https://api.telegram.org/bot[APITOKEN]/getUpdates

Anstelle [APITOKEN] setze das Token ein, das dir der BotFather angezeigt hat.

Wenn du nun tatsächlich deinen Bot in einem Chatfenster startest …

mein Bot

kannst du über https://api.telegram.org/bot[APITOKEN]/getUpdates dieses Ergebnis sehen.

{"ok":true,"result":[{"update_id":929140532,
"message":{"message_id":8,"from":{"id":39392766,"is_bot":false,"first_name":"Hagen","last_name":"Graf","username":"hagengraf","language_code":"en"},"chat":{"id":39392766,"first_name":"Hagen","last_name":"Graf","username":"hagengraf","type":"private"},"date":1565524470,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}]}

Wenn weitere Chats existieren, werden sie ebenfalls hier angezeigt. Du kannst nun, ebenfalls per URL Aufruf, antworten. Wichtig dabei ist die richtige CHAT-ID (39392766) und die Nachricht, die du an genau diesen Chat übermitteln willst („Funktioniert :)“).

Trage einfach das API-Token, die Chat-ID und deine Nachricht in die URL ein.

https://api.telegram.org/bot[HTTP-TOKEN]/sendMessage?chat_id=[CHAT-ID]&text=[NACHRICHT]

Die Anzeige im Browser zeigt den kompletten JSON String, der an die Telegram API geschickt wird.

{"ok":true,"result":{"message_id":9,"from":{"id":840899909,"is_bot":true,"first_name":"Hagens Bot","username":"hagengrafbot"},"chat":{"id":39392766,"first_name":"Hagen","last_name":"Graf","username":"hagengraf","type":"private"},"date":1565525505,"text":"Funktioniert :)"}}

Auf meinem Telefon, das neben dem PC liegt, erscheint diese Nachricht.

Die Nachricht kommt an

Der einfache Chatbot ist fertig aber natürlich sehr aufwendig zu bedienen.

Programmieren

Innerhalb der Telegram Community sind in den letzten Jahren zahlreiche freie Bibliotheken entstanden, beispielsweise für Node.ja, PHP, Python, Java, Ruby, Swift und weitere Sprachen. Eine Übersicht findest du unter https://core.telegram.org/bots/samples.

Du kannst deinem Telegram Bot mit diesen Bibliotheken das Chatten beibringen.

Fazit

Das Thema Chatbots ist in jeder Hinsicht interessant. Momentan besonders in den Bereichen News, Marketing und Sales. Chats sind bei jüngeren Menschen viel beliebter als telefonieren oder gar ein Anruf in einem Call Center. Da die Chats textbasiert sind, sind sie auch unter schlechten Empfangsbedingungen erreichbar. Sie sind darüberhinaus meistens erheblich schneller und oftmals einfacher zu bedienen als eine Website. Telegram bietet, verglichen mit anderen Messenger Plattformen, eine vergleichsweise offene und mächtige API Schnittstelle an.


tl;dr: Telegram bietet eine interessante Plattform für Bots


Beitrag veröffentlicht

in

, , ,

von

Schlagwörter:

Kommentare

2 Antworten zu „Telegram (Chat)Bots“

  1. Avatar von David
    David

    Sehr interessanter Artikel! Vielen Dank!

  2. Avatar von Sebastian

    Ich finde den Beitrag auch sehr interessant weil man hier schon erkennen kann zu was man bei der Bot-Programmierung imstande wäre wenn man sich etwas tiefer in die Materie einliest und das eine oder andere ausprobiert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert