Messenger: Einen eigenen Telegram-Bot erstellen
Daten, Bilder und Emojis aus dem Heimnetzwerk per Push-Nachricht erhalten: Wir erklären, wie man einen Telegram-Bot einrichtet, testet und einsetzt.

Telegram ist ein Nachrichtendienst, der sowohl auf dem Smartphone als auch auf dem PC oder Mac verwendet werden kann. Die App kann dabei gleichzeitig auf mehreren Geräten genutzt werden. Telegram wird von den beiden russischen Brüdern Pavel und Nikolai Durov unterstützt. Sie haben ein eigenes Datenprotokoll entwickelt, welches als offen und sicher gilt: Alle Chats werden bei Telegram verschlüsselt übertragen.
- Messenger: Einen eigenen Telegram-Bot erstellen
- Skripte mit Webhooks starten
Zusätzlich gibt es noch die Möglichkeit, geheime Chats einzurichten, die nur auf den jeweiligen Geräten gelesen werden können. Es wird dabei mittels RSA 2048 und dem Diffie-Hellmann-Verfahren ein symmetrischer AE-256-Schlüssel ausgetauscht. Dieser wird verwendet, um alle Nachrichten sicher zu verschlüsseln. Wenn viele kleine Datensätze verschlüsselt werden sollen, wird häufig ein symmetrisches Verschlüsselungsverfahren verwendet, da dieses schneller arbeitet.
Telegram wird ständig weiterentwickelt und bietet im Gegensatz zu anderen Messengern einige Alleinstellungsmerkmale. Unter anderem können dort animierte Emojis, Umfragen in Gruppenchats, Gruppenvideoanrufe, Livestreams und Zahlungen an Bots für Waren und Dienstleistungen vom Taxi bis hin zur Pizza genutzt werden.
Die API
Eines dieser Alleinstellungsmerkmal ist die API. Die Schnittstelle wird genutzt, um Informationen zwischen zwei Programmen auszutauschen. Dabei können Daten gesendet oder abgerufen werden. Oft lässt sich eine solche API auch mit einem normalen Webbrowser ansprechen und die Ergebnisse werden im JSON- oder XML-Format zurückgeliefert. Mithilfe der API lassen sich dann aus dem heimischen Netzwerk Informationen automatisiert als Telegram-Nachricht an das Smartphone senden.
Um dies durchführen zu können, wird in Telegram ein sogenannter Bot benötigt. Dieser nimmt die Nachrichten entgegen, sie können dann im Chatverlauf mit dem Bot am Smartphone angezeigt werden. Es lassen sich aber auch Nachrichten an den Bot senden. Diese gesendeten Nachrichten können durch ein Skript oder ein Programm zeitgesteuert oder ereignisbasiert abgerufen und weiterverarbeitet werden.
Bot erstellen
Um den Bot zu erstellen, suchen wir zunächst den Chat Botfather in der Telegram-App über das Lupensymbol in der oberen rechten Ecke und fügen ihn in der Chatliste als neuen Chat hinzu. Der Botfather ist quasi die zentrale Verwaltungsstelle für alle Bots. Über ihn lassen sich neue Bots erstellen oder bestehende bearbeiten.
Dann geben wir als Nachricht /newbot ein oder wählen über das Menü Create new bot. Damit wird ein neuer Bot erstellt.
Als nächstes muss ein Name für den Bot gewählt werden. Der Name wird später in der Telegram-Chatliste angezeigt. Danach folgt der Username des Bots. Dieser wird benötigt, um den Chat mit dem Bot zu suchen. Daher muss dieser Name auch Telegram-weit eindeutig sein.
Der Bot ist jetzt bereit. Es erscheinen einige Informationen, die helfen, den Bot zu verwenden. Wir benötigen in den späteren Schritten den API-Token. Daher notieren wir den Token und achten hierbei immer auf die richtige Schreibweise.
Als nächstes suchen wir den Bot über die Telegram-Suchfunktion und fügen ihn der Chatliste hinzu. Damit können wir später Nachrichten aus dem Heimnetzwerk entgegennehmen oder ins Heimnetzwerk versenden. Für meine Tests habe ich einen Raspberry Pi eingesetzt, um Nachrichten zeitgesteuert zu versenden. Ein Windows-PC oder ein Mac lassen sich aber ebenfalls verwenden.
Nachrichten via Browser versenden und empfangen
Nun überprüfen wir unseren Token, indem wir Folgendes in den Browser eingeben:
https://api.telegram.org/bot%DEIN_TOKEN%/getMe
Hier sehen wir dann die Chat-ID, den Namen und weitere Infos. Falls nicht, überprüfen wir nochmal den Token. Die Chat-ID wird nur als id angezeigt. Wir notieren die Chat-ID, um später dem Bot Nachrichten wie Texte, Bilder oder Emojis zu senden.
Mit der nachfolgenden URL senden wir die Nachricht "Hallo, das ist ein Test" über den Browser an den Bot:
https://api.telegram.org/bot%DEIN_TOKEN%/sendMessage?chat_id=5570494&text=Hallo%20das%20ist%20ein%20Test
Beim Versenden achten wir darauf, dass keine Leerzeichen in der URL stehen. Für Leerzeichen im Text verwenden wir %20, für einen Zeilenumbruch %0D%0A.
Wir können dem Bot nun auch Nachrichten über die Telegram-App schicken und sie dann über den Browser abrufen. Wir senden dem Bot eine Nachricht über die Telegram-App und rufen folgenden Link auf:
https://api.telegram.org/bot%DEIN_TOKEN%/getUpdates
Auf diese Weise können wir mit dem Bot kommunizieren. Die Nachrichten, die wir von unserem Smartphone an den Bot gesendet haben, können wir mit einem Skript auf dem Webserver abrufen und damit zum Beispiel auch Aktionen auslösen.
Die ausgelöste Aktion kann natürlich auch wiederum eine Antwort an den Bot sein. So könnten wir dem Bot die Nachricht Status senden. Ein Python-Script ruft dann in regelmäßigen Abständen die Nachrichten auf dem Webserver ab und wertet sie aus. Daraufhin könnte ein Skript die Werte "CPU-Leistung", "Freier Festplattenspeicher" und die Temperatur des Pi auslesen und die Antwort via Telegram zurücksenden. Da dies nicht Event-basiert funktioniert, dauert die Antwort eine Weile.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Skripte mit Webhooks starten |
- 1
- 2
Das Thema ist komplizierter als es mir lieb ist. Wenn die Server in einem Chain of trust...
Matrix bots, pfff... IRC-bots ftw!