IFTTT-Dienste per Skript triggern – und umgekehrt!
IFTTT verbindet Dutzende Dienste wie Twitter, Facebook, Mail, Android oder Smart-Home-Geräte miteinander - oder Dank Webhooks auch mit Eurem Desktop.
If-This-Then-That ist ein wundervoller Service, der alles mit allem verbindet. Ihr könnt zum Beispiel einen Wordpress-Artikel anlegen lassen, wenn ein bestimmter Tweet erscheint. Oder eine Android-Benachrichtigung bekommen, wenn Euer Lieblingsverein ein Tor geschossen hat. Die Möglichkeiten sind riesig. Über Webhooks könnt Ihr all diese Dienste aber auch mit Eurem Desktop verbinden - und Skripte sowohl als Auslöser (This) als auch als Aktion (That) verwenden.
Was ist ein Webhook?
Webhooks sind im Grunde simple HTTP-Anfragen: Man klickt etwa auf einen Link im Browser, der Server bekommt diese Anfrage und führt dann zum Beispiel ein Skript aus oder öffnet eine andere Seite. Das Gleiche erreicht man auf der Kommandozeile oder in einem Skript mit einem Tool wie curl.
Über einen Webhook könnt Ihr also einen Server anweisen, etwas bestimmtes zu tun - was, hängt ganz vom Server ab. Im Sinne von IFTTT heißt die Anweisung eben: Führe dieses oder jenes This-Ereignis aus. IFTTT kann Webhooks aber nicht nur empfangen, sondern auch als That-Aktion absenden - beispielsweise an einen Benachrichtigungsdienst, der dann zum Beispiel die Mitglieder der Freiwilligen Feuerwehr über diverse Kanäle benachrichtigt.
Letztlich kann der Server aber natürlich auch schlicht auf Eurem lokalen Rechner laufen! Das geht wunderbar einfach mit dem Open-Source-Werkzeug webhook. Wie genau das funktioniert, seht Ihr in einem eigenen Artikel. Im Folgenden seht Ihr ein konkretes Beispiel: Über ein curl-Kommando wird per IFTTT eine Nachricht in eine Telegram-Gruppe gepostet. Übrigens: Wie man Telegram aus dem Terminal per Bot ansteuert, seht Ihr hier.
1. Applet anlegen
Das Prozedere ist einfach wie immer in IFTTT:
- Legt als This die Webhooks fest (muss bei Erstnutzung aktiviert werden).
- Wählt als Trigger den einzig verfügbaren Punkt Receive a web request.
- Vergebt für den Trigger einen guten Namen - braucht Ihr später noch (hier: event_telegram).
- Wählt als That den Dienst Telegram (muss bei Erstnutzung aktiviert werden).
- Wählt als Action den Punkt Send message.
- Legt den Text der Nachricht fest - bei Bedarf mit Variablen/Ingredients (hier value1, value2, value3).
- Finalisiert das Applet.
Damit ist das Applet fertig und Ihr könnt einen ersten Test abfeuern. Zunächst nochmal der komplette Prozess in Bildern:
2. Webhook absenden
Zunächst mal braucht Ihr den eigentlichen Webhook-Aufruf von IFTTT - und der ist ein wenig versteckt: Ruft über die IFTTT-Suche den Webhook-Dienst auf. Oben rechts seht Ihr die Buttons Settings und Documentation - und letzterer führt Euch zum Webhook.
Ihr seht nun das Wichtigste - den Schlüssel. Darüber wird schlicht Eure persönliche Webhooks-Verbindung angesteuert.
Der Rest ist ein normaler Link:
https://maker.ifttt.com/trigger/event_telegram/with/key/ABCDE123456
Ihr seht mittendrin den Namen des Triggers event_telegram und am Ende Euren IFTTT-Webhooks-Schlüssel. Ihr könnt Euren Trigger-Namen direkt im Browser eingeben und den Link dann schlicht kopieren und im Browser starten - Ihr solltet dann eine Bestätigung bekommen: "Congratulations! You've fired the event_telegram event". Zudem sollte freilich die Nachricht in Telegram erscheinen.
Alternativ könnt Ihr es im Terminal mit dem Tool curl versuchen und dabei auch Variablen/Ingredients verwenden:
curl -X POST -H "Content-Type: application/json" -d '{"value1":"eins","value2":"zwei","value3":"drei"}' https://maker.ifttt.com/trigger/event_telegram/with/key/ABCDE123456
JSON ist einfach eine Variante, Daten zu formatieren. Und die Daten liegen in den oben festgelegten Variablen/Ingredients value1, value2 und value3. Hier würden also schlicht die Wörter eins, zwei und drei zusätzlich zum fix festgelegten Text in die Telegram-Gruppe geschickt.
Mehr Webhooks
Und genau hier fängt der Spaß ja schon an: Statt die Werte fix in die curl-Anweisung zu schreiben, könnte man natürlich auch Variablen nehmen, die sich wiederum aus einem Skript speisen. Konkret könntet Ihr zum Beispiel ein Backup-Skript anweisen, bei Beenddigung eine Erfolgsmeldung mit den wichtigsten Eckdaten an Telegram zu schicken.
IFTTT kann Webhooks wie gesagt auch als That-Aktion absenden. Das funktioniert im Grunde genauso, nur dass der eigentliche Webhook vom Gegenstück bereitgestellt werden muss. Viele (vor allem professionelle) Onlinedienste bieten Euch solche Webhook-Endpunkte an - wo genau, müsst Ihr schauen. Am Ende könntet Ihr also zum Beispiel über die Telegram-Nachricht /ifttt irgendwas in der gewählten Gruppe einen Tweet auslösen, den Gartensprenger einschalten oder was auch immer IFTTT hergibt.
Wie oben schon erwähnt: Einen lokalen Webhook-Endpunkt könnt Ihr mit webhook realisieren. Das Tool wartet auf eingehende Webhooks und führt dann ein zugehöriges Skript aus. Das ist schon interessant: Ihr könnt letztlich also via IFTTT und Webhooks ganze Ketten von Aktionen und Reaktionen realisieren, die weit über IFTTT-Standardfunktionen hinaus gehen. Die Anleitung für webhook.