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

Bücher/eBooks – IT, Programmierung, Apps

Die experimentelle Suchmaschine von Saschas-Bastelstube.de wurde um das Themenfeld eBooks und Bücher erweitert. Ab sofort findet man hier neben aktuell reduzierten eBooks auch interessante Bücher unter anderem zu den Themen IT, Betriebssysteme, Programmierung und Apps. -= Bücher und eBooks zu IT, Programmieren, Apps und mehr! =-


Schnäppchensuche, Gutscheincodes und Rabattaktionen

Die experimentelle Suchmaschine von Saschas-Bastelstube.de wurde um das Themenfeld Schnäppchen, Coupons, Gutscheine und Rabattaktionen erweitert. Ab sofort findet man hier neben aktuellen Rabatten und Gutscheincodes auch Informationen und Sonderangebote von bekannten Onlineshops und Marken. Die verschiedenen Bereiche werden in Kategorien wie zum Beispiel Auto & Motorrad, Baby & Kind, Computer & Technik, Erlebnis- & Geschenkideen, […] Weiterlesen »


iOS 11 und das Redesign des Appstores

Neun Jahre ist es bereits her, dass Apple seinen App Store ins Leben gerufen hat. Eine riesige App-Plattform welche heutzutage über 2 Millionen Apps beheimatet. Nun wurde der Appstore komplett überarbeitet und neu designed. Die Änderungen und das neue Layout werden demnächst zusammen mit dem neuen Betriebssystem iOS11 eingeführt, welches aktuell als öffentliche Beta verfügbar […] Weiterlesen »


App des Tages: Just Blocks!

Just Blocks! Gelingt es dir eine Reihe mit Bausteinen zu bilden, ohne dass eine Lücke entstanden ist, so verschwindet diese. Alle Reihen die darüber liegen rücken nach unten und somit vergrößert sich das Spielfeld wieder. Umso mehr Reihen du auf einmal verschwinden lassen kannst, umso mehr Punkte bekommst du gut geschrieben. Mit der Anbindung an […] Weiterlesen »


Die Rezeptbuch-App

Die Rezeptbuch-App für iPad, Mac und Android. Ein Schmuckstück in jeder Küche. Mit dieser wundervollen Rezeptbuch App hast du deine kulinarischen Eigenkreationen, Omas Familienrezepte und die Lieblingsrezepte deiner Freunde an einem Ort. Und mit den praktischen Kategorien finden deine liebsten Gerichte, Vorspeisen, Salate, Suppen und Partyrezepte übersichtlich ihren Platz. Endlich hat die Zettelwirtschaft ein Ende! […] Weiterlesen »