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.

Eine Anleitung von Thomas Hahn veröffentlicht am
Der Bot nimmt die Nachrichten entgegen. Sie können im Chatverlauf am Smartphone angezeigt werden.
Der Bot nimmt die Nachrichten entgegen. Sie können im Chatverlauf am Smartphone angezeigt werden. (Bild: ntram Sketchfab/Montage: Golem.de/CC-BY 4.0)

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.

Inhalt:
  1. Messenger: Einen eigenen Telegram-Bot erstellen
  2. 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.

Stellenmarkt
  1. IT-Projektleiter/-in (m/w/d) Langzeitarchiv und Workflow Managementsystem
    Stadt Regensburg, Regensburg
  2. Specialist (m/w/d) Modern Workplace
    IT4IPM GmbH, München
Detailsuche

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.

Handbuch für Softwareentwickler: Das Standardwerk für professionelles Software Engineering

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:

  1. 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:

  1. 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:

  1. 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.

Bitte aktivieren Sie Javascript.
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. 1
  2. 2
  3.  


Ein Leser aus... 15. Mär 2022

Das Thema ist komplizierter als es mir lieb ist. Wenn die Server in einem Chain of trust...

oleid 09. Mär 2022

Matrix bots, pfff... IRC-bots ftw!



Aktuell auf der Startseite von Golem.de
Cariad
Aufsichtsrat greift bei VWs Softwareentwicklung durch

Die Sorge um die Volkswagen-Softwarefirma Cariad hat den Aufsichtsrat veranlasst, ein überarbeitetes Konzept für die ehrgeizigen Pläne vorzulegen.

Cariad: Aufsichtsrat greift bei VWs Softwareentwicklung durch
Artikel
  1. Delfast Top 3.0: Ukrainische Armee setzt E-Motorräder zur Panzerjagd ein
    Delfast Top 3.0
    Ukrainische Armee setzt E-Motorräder zur Panzerjagd ein

    Ukrainische Infanteristen nutzen E-Motorräder, um leise und schnell zum Einsatz zu gelangen und die Panzerabwehrlenkwaffe NLAW zu transportieren.

  2. Überwachung: Polizei setzt Handy-Erkennungskamera gegen Autofahrer ein
    Überwachung
    Polizei setzt Handy-Erkennungskamera gegen Autofahrer ein

    In Rheinland-Pfalz werden Handynutzer am Steuer eines Autos automatisch erkannt. Dazu wird das System Monocam aus den Niederlanden genutzt.

  3. Love, Death + Robots 3: Mal spannend, mal tragisch, mal gelungen, mal nicht so
    Love, Death + Robots 3
    Mal spannend, mal tragisch, mal gelungen, mal nicht so

    Die abwechslungsreichste Science-Fiction-Serie unserer Zeit ist wieder da - mit acht neuen Folgen der von David Fincher produzierten Anthologie-Reihe.
    Von Peter Osteried

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Borderlands 3 gratis • CW: Top-Rabatte auf PC-Komponenten • Inno3D RTX 3070 günstig wie nie: 614€ • Ryzen 9 5900X 398€ • Top-Laptops zu Tiefpreisen • Edifier Lautsprecher 129€ • Kingston SSD 2TB günstig wie nie: 129,90€ • Samsung Soundbar + Subwoofer günstig wie nie: 228,52€ [Werbung]
    •  /