Webhooks Modul von TYPO3

Letzte Änderung:

Auch die Interoperabilität von TYPO3 wurde weiter verbessert. Hierzu wurden Webhooks und Reactions eingeführt. Ein Webhook ist eine Möglichkeit für eine Webanwendung, Informationen automatisch an eine andere Anwendung zu senden, wenn bestimmte Ereignisse oder Aktionen in der ersten Anwendung auftreten. Beispielsweise kann das TYPO3-System bei frei definierbaren Ereignissen (z.B. Fehler im LogFile, Einloggen eines Users, Fehler beim Log-In, usw.) Nachrichten an ein anderes System (z.B. SMS, WhatApp, etc) mit den jeweiligen Daten verschicken. So können in Zukunft auf einfache Art auch Daten zu Bestellungen oder Kontaktanfragen automatisch an eine andere Anwendung weitergegeben werden. Umständliche Ex- und Imports von Daten zwischen zwei Systemen entfallen dann.

GitHub bietet zum Beispiel eine Fülle von Webhooks für verschiedene Ereignisse. Ein Webhook wird zum Beispiel ausgelöst, wenn ein Entwickler einen Push zu einem Repository durchführt. Ein Webhook wird ausgelöst, wenn ein Branch erstellt wird. Sie können eine Endpunkt-URL bei jedem dieser (und vielen weiteren) Ereignisse registrieren, um eine Anfrage mit den Daten, die mit diesem Ereignis verbunden sind, als nutzbare Daten zu erhalten. Dies wird zum Beispiel bei packagist.org eingesetzt, um ein Paket automatisch zu aktualisieren, wenn ein Tag zum angehängten Git-Repository hinzugefügt oder gepusht wird.

Ein Webhook sendet eine POST-Anfrage an die angegebene Endpunkt-URL und enthält häufig einen Anhang aus JSON-kodierten Daten. Er sendet auch einen Authentifizierungs- oder Prüfsummen-Header, um das empfangende System darüber zu informieren, dass es sich um einen legitimen Webhook-Aufruf handelt(Secret).

Aktuell gibt es nur eine begrenzte voreingestellte Auswahl an Webhooks:

  • ... when a file is added [typo3/file-added]
  • ... when a file is removed [typo3/file-removed]
  • ... when a file is updated [typo3/file-updated]
  • ... when an error occurs on log in [typo3/login-error]
  • ... when a page is added or changed [typo3/content/page-modification]