Aus Linux-Magazin 12/2019

Aus dem Alltag eines Sysadmin: Sendungsbenachrichtigung

Abbildung 1: In Form einer Konversation mit dem BotFather entsteht ein neuer Bot.

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!"'
Abbildung 2: Wenn der Postmann klingelt, schlägt der Bot an, und das Handy vibriert.

Abbildung 2: Wenn der Postmann klingelt, schlägt der Bot an, und das Handy vibriert.

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

  1. Klingel-RasPi: Charly Kuehnast, “Palim, Palim!”, LM 04/2016, S. 57, https://www.linux-magazin.de/ausgaben/2016/04/einfuehrung2/
  2. Telegram-API: https://core.telegram.org/api
  3. Telegram-Webinterface: https://web.telegram.org
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben