Ich arbeite gerade für einen Kunden mit Chatbots. Umgesetzt haben wir die Chatbots mit https://botman.io/ einer PHP-Library um Chatbots zu stellen.
Wir unterstützen Facebook Messenger Bots und Telegram Chatbots.
So werden Telegram Chatbots angelegt
Sprich mit dem BotFather
Der „BotFather“ ist der Vater alle Telegram-Bots. Er ist selbst ein Chatbot. Klicke mit einen Gerät, auf dem du Telegram schon nutzt, auf diesen Link:

Der BotFather begrüßt dich. Klick auf den Button um in deinem Telegram-Programm mit dem BotFather zu interagieren.

Klick „Start“ und starte das Gespräch mit dem BotFather – so werden deine Nutzer*innen evtl. auch mit deinem Chatbot interagieren.

Du bekommst direkt die Übersicht aller Befehle. Die Befehle kannst du auch einsehen indem du einen Slash/Schrägstrich tipps („/“).
Klicke oder tippe /newbot („neuer Bot“) und lasse dich vom BotFather leiten.
Der BotFather fragt dich nach einem Namen. Namen müssen immer auf „bot“ enden. Das macht später für die User klar, dass sie mit einer Machine interagieren.
Wenn dein Botname erfolgreich eingegeben ist, erhältst du eine Bestätigung in der deine API-Key enthalten ist. Das ist das zentrale Verbindungsstück mit dem Telegram-Bot-System. Bei mir sieht die fast so aus: 86758094:AAHuBjzFssifneomoCYIS680lRf8pJ2rfc
(Ich habe zwei Zeichen gelöscht, damit niemand damit Unfug anstellen kann.
Weitere relevante Befehle
Du kannst mittels /token jederzeit einen neuen API-Key generieren, muss dann aber alle verbundenen Tools mit den neuen Code versorgen.
Du willst mit /setname deinem Bot einen schöneren Namen verpassen.
Du willst mit /setabouttext deinem Bot eine attraktivere Beschreibung geben. Wenn du hoch scrollst siehst du Bot-Namen und Bot-Beschreibung von BotFather. Ähnlich wird dein Bot auch irgendwann angezeigt werden. Das soll gut aussehen.
Mit /setdescription kannst du den Text ändern, der angezeigt wird, wenn der Bot das erste mal gestartet wird. Hier kannst du mit einem guten Text weiter Vertrauen schaffen.
/setuserpic ermöglicht das Anzeigebild zu ändern.
/setcommands wird später wichtig. Dein Bot wird vermutlich auf unterschiedliche Kommandos hören können. Du verwendest hier gerade die Kommandos von BotFather – sie starten alle mit „/“ (Schrägstrich). Und mit /setcommands kannst du die Kommandos hinterlegen, die für deinen Bot gelistet werden sollen (wenn du im Bot anfängst „/“ zu tippen kommt die Liste.) Kommandos die nicht hier gelistet sind funktionieren trotzdem – sind aber nicht so leicht zu finden.
Wenn du mehrere Bots hast, fragt dich BotFather bei jedem Kommando, auf welchen Bot es angewendet werden soll.
Mit /mybots kannst du auf all deine Bots zugreifen und dich durch ein Menü klicken. „Api Token“ und „Edit Bot“ sind hier besonders relevant und decken die Kommandos ab, die ich hier beschrieben habe.
„Bot Settings“ sind für mich nicht relevant, „Payments“ und „Delete Bot“ will ich auch bisher nicht einsetzen. Aber vielleicht lohnt es sich für dich, dich durch zu klicken.
Der nächste Schritt ist es jetzt in deinem Code den Api-Key zu hinterlegen und dann einen HTTP-Request abzusetzen, der Telegram sagt, wohin dieser Chatbot verbinden soll.
In der Botman Suite geht das einfach über die Laravel-Console. Da wir Botman mit WordPress nutzen, habe ich mir dafür eine kleine Oberfläche fürs Backend gebaut.
In der rudimentärsten Version rufst du folgenden Link auf:
https://api.telegram.org/botDEIN-API-KEY/setWebhook?url=DEINE-CHATBOT-URL
Das „bot“ nach „.org/“ ist nicht Teil des API-Keys und muss da stehen.
Deine Chatbot-URL ist die URL/der Endpunkt an die Telegram die Requests des Chatbots schickt. In meinem Fall ist das eine .php-Datei.
Mehr dazu: https://core.telegram.org/bots/api#setwebhook
Wichtig zu wissen zu Telegram Chatbots
Wie ich beim Support erfahren habe, sind Chatbots nicht übertragbar. Wer den Chatbot erstellt, ist für immer „Vater“ (oder „Mutter“) des chatbots. Adoption ist nicht möglich.
Von daher ist es relevant genau zu überlegen, wer den Chatbot registiert. Als Freelancer übernehme ich oft die Aufgabe Dinge für Kunden anzulegen. Im Falle von Telegram-Chatbots wäre das aber problematisch, weil ich Kunden an meine Telegram-Account binden würde. Einer meiner Werte als Freelancer ist es aber, dass meine Kunden mich wählen, weil sie meine Fertigkeiten und/oder mich als Person im Projekt haben wollen – nicht, weil ich mich unabdingbar gemacht habe.
Hi there,
is it possible to have multiple admins for a bot.
Or transfer a bot to another user/admin?
Meine Frage im Support
Hi!
No and no, sorry.
You can release a name of your bot, so another person can register it. Then arrange all the server side business. But users would need to start the bot again to use it.
Antwort des Supports
Chatbots testen
Um den Code zu testen, der den Chatbot lebendig macht, habe ich bisher drei Chatbots. Einen für keine lokale Version in der ich entwickle. Einen für unser Staging, auf dem wir auf Server-Umgebung testen können und eine Version die unsere User sehen. Da ein Chatbot via Api-Key mit genau einer Codebasis verbunden ist, kenne ich bisher keinen anderen Weg das zu tun.
Hilfreiche Links
https://core.telegram.org/bots
Nils Dannemann meint
Wonderful Article, thank you!