Steht DHL mit einem Päckchen vor der Tür, möchte unser Kolumnist Charly Kühnast das auf keinen Fall verpassen. Wenn der Postmann zweimal klingelt, lässt er sich deshalb via Telegram-Messenger-API eine Benachrichtigung aufs Handy senden.
Ich finde Benachrichtigungen auf dem Mobiltelefon hauptsächlich lästig und habe die meisten abgeschaltet. Etwas anders sieht es aber aus, wenn zu Hause irgendetwas meine Aufmerksamkeit erfordert. Das klassische Beispiel ist die Türklingel: Ich möchte auch dann mitbekommen, dass DHL vor der Tür steht, wenn ich gerade das Headset mit stromgitarrenbasierter Musik flute. Das Problem habe ich bereits 2016 mit einem Raspberry Pi gelöst und das Setup in dieser Kolumne beschrieben [1].
Die Benachrichtigungen kamen dabei als Twitter-Direktnachrichten herein, hauptsächlich, weil ich dafür nicht eigens eine Benachrichtigungs-App installieren wollte. Twitter ist ohnehin auf dem Telefon installiert und stellt eine brauchbare Programmierschnittstelle bereit. Allerdings baut Twitter zunehmend hohe Hürden vor den Zugang zur API: Zum Beispiel darf man inzwischen in einem kleinen Freitext-Aufsatz beschreiben, zu welchen Zwecken man sie nutzen möchte. Das mag aus Anbietersicht verständlich sein, aber ich hätte es gern etwas simpler.
Deshalb benutze ich jetzt die API des Telegram-Messengers [2]. Dort kann ich unter anderem Bots erzeugen, mit denen sich eine Menge lustige Dinge anstellen lassen. Außerdem kann ich den Bot dazu bringen, Nachrichten an mich selbst zu schicken. Einen Bot erzeuge ich, indem ich in der Telegram-App einen Chat mit dem BotFather beginne (Abbildung 1).
Mit dem Kommando »/newbot« geht es los. Der BotFather fragt mich nach einer Bezeichnung und einem Benutzernamen für meinen Bot. Als Rückgabe erhalte ich eine numerische ID und ein Access-Token – also eine Zeichenkette, die ich der API übergeben muss, um mich auszuweisen. Sie kann zum Beispiel so aussehen:
919445171:AAFt4RTVEcI919fAI_5YGHX0A8QyQnY_fBA
Vorn steht die numerische ID meines Bots, hinter dem Doppelpunkt das Access-Token. Jetzt muss ich in der App oder im Webinterface [3] einen Chat mit meinem Bot starten. Auch dieser Chat besitzt eine numerische ID, die ich herausfinden muss. Das klappt mit dem Curl-Kommando aus Listing 1.
Listing 1
Telegram-Chat starten
$ curl -X POST https://api.telegram.org/bot919445171:AAFt4RTVEcI919fAI_5YGHX0A8QyQnY_fBA/getUpdates
Beachten Sie, dass ich der numerischen ID meines Bots das Schlüsselwort »bot« voranstellen muss. Die längliche Antwort ist für meine Zwecke größtenteils unwichtig, enthält aber die Zeichenkette »”id”:930313820« – das ist die ID des Chats. Damit habe nun ich alle notwendigen Informationen beisammen.
Möchte ich jetzt automatisch eine Nachricht in den Bot-Chat schicken, etwa aus einem Bash-Skript heraus, genügt dafür der Curl-Aufruf aus Listing 2. Prompt vibriert das Telefon, und meine Nachricht erscheint auf dem Display (Abbildung 2). Auf diese Weise braucht der Postmann nur einmal zu klingeln. (jlu)
Listing 2
Nachricht in den Bot-Chat schicken
$ curl -X POST 'https://api.telegram.org/bot919445171:AAFt4RTVEcI919fAI_5YGHX0A8QyQnY_fBA/sendMessage?chat_id=930313820&text="Hello world!"'
Der Autor
Charly Kühnast administriert Unix-Systeme im Rechenzentrum Niederrhein. Zu seinen Aufgaben gehören Sicherheit und Verfügbarkeit der Firewalls und der DMZ.
Infos
- Klingel-RasPi: Charly Kuehnast, “Palim, Palim!”, LM 04/2016, S. 57, https://www.linux-magazin.de/ausgaben/2016/04/einfuehrung2/
- Telegram-API: https://core.telegram.org/api
- Telegram-Webinterface: https://web.telegram.org







