Telegram Messenger und die Bot API

Telegram ist im Prinzip ein Messenger ähnlich Whatsapp oder Threema , kostenlos und leicht zu bedienen. Ich möchte nicht sagen das dieser besser oder schlechter ist als andere Messenger, allerdings gefällt mir die Telegram Bot API sogut, dass ich an dieser Stelle ein kleines Tutorial dazu schreiben möchte.

Aber zunächst ein paar Randinformationen. Telegram ist wie gesagt komplett kostenlos, und auch die API kann man ohne Kosten nutzen. Der Telegram Messenger verschlüsselt alle Daten laut Herstellerangabe. Hierbei kommt eine Kombination aus 256-bit symmetrischer AES Verschlüsselung, 2048-bit RSA Verschlüsselung und dem sicheren Diffie-Hellman Schlüsselaustauschverfahren zum Einsatz. Die App ist für alle gängigen Betriebssysteme verfügbar: Windows, Mac, Linux, iOS (iPhone, iPad), Android und WindowsPhone. Der Messenger kann optional auch einfach über einen Webbrowser Plattformunabhängig betrieben werden.

Das wirklich schöne an Telegram ist die einfach zu nutzende Telegram Bot API. Man ist also als Entwickler in der Lage, z.B. automatisiert News, Status-Updates oder sonstige Informationen schnell und einfach über Telegram direkt aufs Handy Handy bzw. an andere User zu schicken. Die API basiert auf dem HTTP-Protokoll und kann somit auf jeder gängigen Plattform und Programmiersprache angebunden werden.

Ich nutze mehrere Bots. Einfaches Anwendungsbeispiel: Einer der Bots sendet  mir z.B. eine Benachrichtigung, wenn mal einer der Server down ist. Hierzu „unterhalten“ sich die Server ständig (bzw. alle 30 Minuten) ebenfalls per einfachen HTTP-Requests. Antwortet ein Server nicht, kann der andere mir eine Nachricht schicken und ich kann schauen was los ist. Es gibt unzählige Anwendungsbeispiele, der Kreativität sind hier keinerlei Grenzen gesetzt! ;-)

Schritt 1 – Einrichten des Telegram Bots

Zunächst installiert man sich am Besten den Telegram-Messenger (Telegram.org) auf seinem Smartphone Smartphone.

Telegram Bot FatherIn der Chat-Übersicht tappt man oben rechts auf das „Neue Nachricht“-Icon und gibt im Suchfeld bei Benutzername „Botfather“ ein.

Dies ist, wie der Name schon vermuten lässt, der Telegram-Bot für die Bots.

Diesen schreibt man einfach mit /start oder /help an und erhält eine Liste mit Kommandos um seinen eigenen Bot anzulegen und zu konfigurieren.

Man gibt nun als Kommando /newbot ein und beantwortet danach ein paar Grundlegende Dinge, u.a. wie euer Bot heißen soll, sprich über welchen Benutzernamen er später erreichbar ist.

Im Anschluss bekommt man als Ausgabe einen API Access-Token, welcher später für das versenden der Nachrichten und allen anderen Funktionen benötigt wird. Dieser muss in den Requests zum Telegram-Server immer mit übergeben werden.

Schritt 2 – Einrichten des Empfängers auf User-Seite

Nun fragen wir die Id (eindeutige Nummer eures Benutzerkontos / des USERS, NICHT des Bots!) des Users ab, an den wir später Nachrichten senden wollen. Diese Nummer ist quasi die Empfängeradresse der Messages.

Hierzu schreiben wir einfach den Benutzer „userinfobot“ aus der Telegram-App heraus mit /start an. Als Antwort erhält man seinen Benutzernamen, ID, sowie Vor- und Nachname (sofern angegeben ;-)). Wichtig ist die ID, also notieren wir diese schonmal für später.

Um sicherzugehen, dass der eigene Bot einen später auch anschreiben kann, schickt man noch einfach /start an den neuen eigenen Bot, wie es schon beim Botfather getan wurde. (siehe Schritt 1)

Schritt 3 – Ein kleines PHP-Script um Nachrichten an uns selbst zu schicken

Nun bauen wir uns ein kleines PHP-Script welches bei Aufruf eine kurze Nachricht versendet. Ein kurzer Blick in die Doku der Telegram-Bot-API und es wird klar wie der entsprechende HTTP-Request für das senden einer Nachricht lauten muss. Ich habe hierfür eine Konstante definiert. Das sieht in PHP dann so aus:

define(„TELEGRAM_URL“, „https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=<ID>&text=<TEXT>“);

In spitze Klammern habe ich 3 Platzhalter eingefügt welche benötigt werden. Den <Token> (euer Access-Token welche ihr vom Botfather bekommen habt, siehe Schritt 1), die <ID> (die Id des Empfängers, siehe Schritt 2) und den <Text>.  Diese werden nun mit euren Werten befüllt, entweder direkt in der define-Anweisung, oder etwas flexibler für den späteren Gebrauch ganz einfach per str_replace-Anweisung.

$request = TELEGRAM_URL;
$request = str_replace(„<TOKEN>“, „hier token eingeben“, $request);
$request = str_replace(„<ID>“, „hier id des empfängers“, $request);
$request = str_replace(„<TEXT>“, urlencode(„hier die Nachricht! Hallo Welt!“), $request);

Nun enthält die Variable $request die korrekte URL um die Testnachricht an euch selbst zu senden. Zum Testen kann man die Nachricht auf einfache Weise per file_get_contents an den Telegram-Server übermitteln.  Ggf. in der PHP-Config allow_url_fopen auf true stellen – *für Produktiv-Einsatz nicht unbedingt empfohlen*.

$response = @file_get_contents($request);
$positive_answer = „{\“ok\“:true“;
$telegram_sent = (substr($response, 0, strlen($positive_answer)) == $positive_answer);

Im Anschluss an file_get_contents wird noch geprüft ob die Nachricht korrekt versandt wurde, indem wir den Rückgabewert, sprich die Antwort des Telegram-Servers auswerten. Ist die Antwort „Ok:true“, dann wird die Variable $telegram_sent auf true gestellt. Ist ggf. ein Fehler aufgetreten wird dies über den Inhalt der Variable $response mitgeteilt und kann weiter ausgewertet werden.

Fertig! Lädt man das Script nun auf seinen Server und ruft es aus, verschickt es die gewünschte Nachricht an den jeweiligen Telegram-User. Nun hat man eine simple Basis, welche man beliebig um Funktionalität erweitern kann.

Wer sich mit seinem Bot unterhalten möchte, bzw. dieser auf Anfragen reagieren soll, der schaut sich am Besten mal die Funktion setWebHook in der Dokumentation an. Über diesen Hook kann man die Telegram-Server dazu veranlassen eine Benachrichtigung an ein beliebiges Script auf euren Server zu senden, wenn ein User den Bot anschreibt. Was man dann daraus macht, muss jeder selber wissen. Wie man dem User antwortet weiß man ja jetzt… ;-) Viel Spaß! *happy coding*

Zuletzt bearbeitet: 30. August, 2017
Tags: , , , , , , , , , , ,

Verwandte Beiträge

Einkaufszettel-App jetzt auch für Apple-Watch

Produkte manuell oder aus dem integrierten Bestand hinzufügen (es sind über 2000 in 17 Hauptkategorien), nach Abteilungen deines Marktes sortieren und schon kann dein Einkauf los gehen. Geräteübergreifend synchronisiert wird zumindest unter iOS und MacOSX vollautomatisch über iCloud. Die Einkaufszettel-App gibt es neben iOS, MacOSX und Android nun auch für deine Apple Watch. So hast […] Weiterlesen »


iOS-Android-Converter

Lange Zeit habe ich bei neuen App-Projekten zunächst die Sprachdateien / Language-Files für iOS geschrieben, und diese dann für die Android-Version händisch umgeschrieben. Das war vom Aufwand her immer schnell gemacht solange die Anzahl der implementierten Sprachen und der Umfang der Textbausteine niedrig war. Abgesehen vom Zeitaufwand ist das ganz schön langweilige und stumpfe Arbeit, […] Weiterlesen »


App des Tages: Mekorama

Die heutige App des Tages heißt Mekorama! Bewege einen Roboter durch über 50 Level. Grafisch ansprechend aufbereitet ist dieses Spiel ein echter Knaller, nicht umsonst steht die App schon seit einiger Zeit in den Top 10 der Download-Charts und hat schon allein im Android-Appstore knapp 40.000 fast durchweg 5-Sterne Bewertungen. Neben den bereits integrierten liebevoll […] Weiterlesen »


Streams und Apps um Radio zu hören

Der Empfang von deutschen oder auch ausländischen Rundfunkstationen ist kein Problem mit der passenden App. Auch Empfangsprobleme gehören so der Vergangenheit an. Inzwischen werden die meisten Sender auch über das Internet digital ausgestrahlt, sodass man nicht zwangsläufig auf ein Radio als Empfangsgerät angewiesen ist. Wer dennoch auf sein herkömmliches Radio nicht verzichten möchte, für den […] Weiterlesen »


Meine Piraten – Interaktive Wimmelapp

„Aahhrrr – Stelle deine Mannschaft zusammen und steche in See!“ In dieser App können Kinder spielerisch nach dem Ursache-Wirkung Prinzip die Welt der Piraten entdecken und spannende Situationen erleben. Diese App ist für iOS (iPhone, iPad) verfügbar. Alles ist interaktiv und kann entdeckt werden: • Stelle deine eigene Mannschaft zusammen (über 65 Millionen Variationen) • […] Weiterlesen »