Instant Messenger Konto für Telegram Messenger anlegen

Die folgenden Schritte geben Ihnen einen Überblick welche Schritte notwendig sind, um einen Bot mit dem Telegram BotFather anzulegen. Da das Benutzerinterface des Telegram BotFather Änderungen unterliegt, besteht kann Anspruch auf Vollständigkeit oder Richtigkeit der folgenden Schritte. Wir aktualisieren jedoch die Dokumentation regelmäßig und freuen uns auf Hinweise Ihrerseits.

Kurzüberblick: Die Einrichtung erfolgt in zwei Schritten:
  1. Neues Botkonto mit dem Telegram BotFather angelegen
  2. Neues Botkonto auf der Business Bot Plattform angelegen
  3. Einrichten des Webhook für den Telegram Bot

Schritt 1: Neues Botkonto mit dem Telegram BotFather anlegen

Der BotFather ist ein von Telegram bereitgestellter Bot zur Administration von Bot-Konten. Der BotFather ist über die Telegram Messenger App erreichbar.

Telegram BotFather: Zentrales Benutzer-Interface zur Verwaltung von Telegram Bots

Es wird davon ausgegangen, dass die Telegram App bereits auf dem mobilen Endgerät (z.B. Smartphone oder Tablet) installiert ist.

  1. Zunächst öffnet man auf dem mobilen Geräte den Browser und öffnet die URL: tg://resolve?domain=BotFather
  2. Die Telegram App mit dem BotFather Chat wird angezeigt
  3. Zum Anlegen eines Bot-Benutzerkontos sendet man folgende Nachricht an den BotFather: /newbot
  4. Anschließend vergibt man einen Namen für den Bot (Name muss mit Bot enden), z.B.: MyTLBot
  5. Sofern der Botname nicht bereits vergeben ist, wurde der Bot erfolgreich angelegt und man erhält den Bot-Token zum Zugriff auf die HTTP API, z.B.: 89797779:AKJKLujfeijJIoIlkkLIOI (Token besteht aus 31 Zeichen)

Schritt 2: Neues Botkonto auf der Business Bot Plattform angelegen

  1. Zunächst meldet man sich bei der Business Bot Plattform an
  2. Wählt Bot Administration -> Instant Messenger Konten -> Erstelle Bot-Konto. Folgenden Daten werden zum Anlegen des Bot-Kontos benötigt:
Feld Beispielwert
Name: MyTLBotKonto
Beschreibung: BotKonto für Abteilung Z
Instant Messenger: Telegram
  1. Das Bot-Konto wurde nun erstellt und muss noch mit dem Kontoinformationen des Instant Messengers konfiguriert werden. Dazu klickt man auf das Icon Einstellungen und modifiziert folgende Parameter:
Pflichtfelder Beschreibung Beispielwert
Telegram.Bot.BotToken Von Telegram bereitgestellt 8979:AKJKLulkkLIOI
Telegram.Bot.Username Verwendeter Botname bei der Registierung MyTLBot (Optional)
Messenger.WebhookId Diese Webhook-ID ist einzigartig und wird von der Business Bot-Plattform generiert (z.B. https://demo.mmgw.de/bbp/webhook/<webhook id>) 42da2023-0187-4ab7-94ec-c843153bb36a

Das Benutzerkonto für den Bot ist nun konfiguriert und wird später beim Anlegen einer Bot-Instanz für den Telegram Messenger verwendet.

Schritt 3: Einrichten des Webhook für den Telegram Bot

Als nächstes müssen wir die Nachrichten an die Business Bot Plattform weiterleiten. Dazu verwenden wir nicht die Methode getUpdates, da diese veraltet ist durch fortlaufende Anfrage an den Telegram Server ineffizient ist. Nur für bestimmte Anwendungsfälle sollten Sie diese Methode auf der Business Bot-Plattform verwenden. In den letzten Jahren hat sich eine bessere Methode etabliert, die sich setWebhook nennt.

Das einzige Erfordernis mit setWebhook ist, dass Telegram die Verwendung von SSL für die Business-Bot-Plattform SSL erzweingt, d.h. das die Business Bot Plattform über ein Zertifikat verfügt und die Weiseite über https://mysuffix.mmgw.de/ erreicht werden kann.

Dankenswerterweise ermöglicht es Ihnen Telegram seit August 2015, Ihr eigenes Zertifikat zu unterzeichnen, um kein teures Zertifikat kaufen zu müssen. Auf der anderen Seite können Sie dieses Zertifikat bei der Einrichtung des Webhooks einreichen. Wenn Ihre Business Bot-Plattform https verwendet, ist es ausreichend, Telegram nur die Webhook-Adresse dieser Plattform mitzuteilen. Das Bereitstellen des eigenen öffentlichen Zertifikats für Telegram stellt einen zusätzlichen Sicherheitmechanismus bei der Nachrichtenübermittlung dar (um zuerst das Zertifikat zu prüfen und anschließend die Nachricht zu versenden).

Schritt 1 (Optional): Erstellen Sie Ihr Zertifikat und richten Sie Ihre Business Bot-Plattform ein, um es zu verwenden

Note

Der Telegram Messenger akzepiert nur gesicherte Verbindungen (HTTPS), daher muss die Business Bot Plattform mit dem Webhook auf einem SSL-fähigen Server betrieben werden. HTTP wird vom Telegram Messenger nicht unterstützt. Dieser Schritt ist optional, wenn Sie bereits über die https-Adresse auf die Business Bot-Plattform zugreifen können.

Digital Ocean hat hier ein ausgezeichnetes und leicht zu befolgendes Tutorial (https://www.digitalocean.com/community/tutorials/how-to-create-an-ssl-certificate-on-nginx-for-ubuntu-14-04), wenn Ihre Business Bot-Plattform mit nginx gehostet wird. Eine Anmerkung für die Verwendung von Telegram-Bots ist jedoch, dass das Tutorial angibt, dass Sie für die Domain oder die IP-Adresse Ihres Servers verwenden können. Die IP-Adresse funktioniert jedoch nicht mit dem Telegram Bot Webhook. Sie müssen die Domain der Business Bot Plattform verwenden.

Schritt 2: Identifizieren Sie die Webhook-Adresse auf der Business Bot-Plattform

Um die Webhook-Adresse anzuzeigen, melden Sie sich auf der Business Bot Platform an, um navigieren zu: Chatbot Administration -> Bots. Bewegen Sie nun den Mauszeiger über den Bot-Namen, um die Webhook-Adresse des Bot anzuzeigen.

Bot Webhook Address

Schritt 3 (für Windows, ohne ein öffentliches Zertifikat an Telegram zu senden): Einrichten des Webhook über den Browser

Die Einrichtung eines Webhooks für Telegram (ohne das öffentliche Zertifikat der Business Bot Platform an den Telegram zu übermitteln) ist sehr einfach, da Sie alles im Webbrowser durchführen können. Öffnen Sie dazu einfach den Webbrowser und senden Sie die entsprechende URL. Zunächst überprüfen wir, ob ein Webhook für Ihren Bot eingerichtet ist. Anschließend legen wir die Webhook-Adresse fest, die der Telegram Server bei neuen Nachrichten aufrufen soll und zuletzt fragen wir den Webhook-Status ab. Dazu müssen Sie folgende URLs eingeben:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
1. GetWebhookInfo: Wenn der Webhook nicht festgelegt wurde:
URL Syntax: https://api.telegram.org/bot<Bot Token>/getwebhookinfo
URL Beispiel: https://api.telegram.org/bot261992120:AAE2DkORBm3G_T8t0DZGvE5_CCCCCCCCCCC/getwebhookinfo
Ergebnis: {"ok":true,"result":{"url":"","has_custom_certificate":false,"pending_update_count":0}}

2. SetWebhook: Setzen der Webhook-Adresse zur Business Bot Plattform
URL Syntax: https://api.telegram.org/bot<Bot Token>/setWebhook?url=<Business Bot Platform Webhook Address>
URL Beispiel: https://api.telegram.org/bot261992120:AAE2DkORBm3G_T8t0DZGvE5_CCCCCCCCCCC/setWebhook?url=https://my.mmgw.de/bbp/webhook/42da2023-0187-4ab7-94ec-c843153aaaaa
Ergebnis: {"ok":true,"result":true,"description":"Webhook was set"}

3. GetWebhookInfo: Webhook-Adresse auf dem Telegram Server überprüfen
Wenn der Webhook festgelegt wurde, lautet das Ergebnis:
URL Syntax: https://api.telegram.org/bot<Bot Token>/getwebhookinfo
URL Beispiel: https://api.telegram.org/bot261992120:AAE2DkORBm3G_T8t0DZGvE5_CCCCCCCCCCC/getwebhookinfo
Ergebnis: {"ok":true,"result":{"url":"https://my.mmgw.de/bbp/webhook/42da2023-0187-4ab7-94ec-c843153aaaaa","has_custom_certificate":false,"pending_update_count":0,"max_connections":40}}

-------- Optional url commands --------
Löschen des Webhook (um die Methode getUpdate (pull) -oder- eine neue Webhook-Adresse zu verwenden)
URL Syntax: https://api.telegram.org/bot<Bot Token>/setWebhook?url=
URL Beispiel: https://api.telegram.org/bot261992120:AAE2DkORBm3G_T8t0DZGvE5_CCCCCCCCCCC/setWebhook?url=
Ergebnis: {"ok":true,"result":true,"description":"Webhook was deleted"}
Bot Get Webhook Information from Telegram

Step 3 (für Linux mit Übergabe des Zertifikats an Telegram): Einrichten des Webhook auf der Linux-Befehlszeile

Wenn Ihre Business Bot-Plattform bereits signiert ist (ein validieres Zertifikat besitzt), dann können Sie die URL-Methode verwenden, um den Webhook einzurichten. Wenn Sie das Zertifikat jedoch selbst signiert haben, müssen Sie Ihr Zertifikat als Datei hochladen, da Telegram nicht das hochladen des Zertifikats als String (in der URL) akzeptiert. Dafür können Sie die Linux-Befehlszeile verwenden. Geben Sie dazu in einem Terminal folgendes ein:

Die generische Syntax ist:

1
curl -F "url=https://mysuffix.mmgw.de/bbp/webhook/<webhook ID>" -F "certificate=@</location/of/cert>/<myCertificate.crt>" https://api.telegram.org/bot<Telegram Bot Token Id>/setWebhook

Lauffähiges Beispiel:

1
curl -F "url=https://mysuffix.mmgw.de/bbp/webhook/42da2023-0187-4ab7-94ec-c843153aaaaa" -F "certificate=@/location/of/cert/nginx.crt" https://api.telegram.org/bot000000000:AAAAa0aAA_aaA-Aaaa0A0Aa_a0aa0A0AAAA/setWebhook

Die angegebene URL ist die Webhook-Adresse welche von der Business Bot Plattform bereitgestellt wird. Das Zertifikat sollte auf nginx.crt verweisen (wie es im Digital Ocean Tutorial genannt wurde). Die finale URL ruft die Telegram-Methode setWebhook für den angegebenen Bot-Token auf. Die Webhook-Konfiguration ist damit abgeschlossen. Sie können die getUpdates-Methode nun nicht mehr aufrufen, da der Webhook dies blockiert und nur eine Method für den Betrieb aktiviert sein kann.

Wir haben nun den Webhook auf der Business Bot Plattform eingerichtet und müssen den Webhook für den Betrieb nur noch starten. Dazu starten Sie einfach den Bot, der Webhook ist dann automatisch betriebsbereit.