Von modernen Anwendungen wird erwartet, dass sie sofort auf Änderungen reagieren. Ob eine neue E-Mail eintrifft, ein Kalendertermin aktualisiert oder ein Eintrag gelöscht wird – die Nutzer erwarten, dass die Benutzeroberfläche stets synchronisiert bleibt, ohne dass eine manuelle Aktualisierung erforderlich ist.
Um diesen Prozess zu vereinfachen, führt 4D 21 R4 in 4D NetKit ein einheitliches Benachrichtigungssystem für Google Workspace und Microsoft 365 ein. Mit einem einzigen Programmiermodell können Sie E-Mail- und Kalenderänderungen abonnieren und automatisch reagieren, sobald sich Daten ändern.
HDI Microsoft Google Benachrichtigungen
Einer der Hauptvorteile von 4D NetKit besteht darin, dass die Benachrichtigungs-APIs unabhängig vom Anbieter immer auf genau dieselbe Weise funktionieren.
Unabhängig davon, ob Sie Google oder Microsoft 365 verwenden, verhalten sich die Benachrichtigungs-APIs identisch:
cs.NetKit.Google.new($myOAuth2Provider).mail.notifier($notification)
cs.NetKit.Office365.new($myOAuth2Provider).mail.notifier($notification)
Das gleiche Prinzip gilt für Kalenderbenachrichtigungen.
Was können Sie überwachen?
Mit4D NetKit können Sie Änderungen sowohl bei E-Mails als auch bei Kalenderereignissen abonnieren.
Sie können auf Folgendes reagieren:
- Erstellung
- Änderung
- Löschung
von:
- E-Mails
- Kalendertermine
Sobald eine Änderung erkannt wird, erhält Ihre Anwendung eine Benachrichtigung und kann die Benutzeroberfläche aktualisieren, Daten neu laden, Warnmeldungen anzeigen oder benutzerdefinierte Geschäftslogik auslösen.
Auswahl eines Abhörmodus
Bevor Sie einen Notifier starten, müssen Sie festlegen, wie 4D NetKitÄnderungen erkennen soll.
Es stehen zwei Modi zur Verfügung.
Echtzeit-Webhook-Benachrichtigungen
Die erste Option besteht darin, Google oder Microsoft Ihre Anwendung aufrufen zu lassen, sobald eine Änderung auftritt.
Um diesen Modus zu aktivieren, geben Sie eine „endPoint“-Eigenschaft an, die die Callback-URL enthält:
$parameter.endPoint:="https://mydomain.com/notifications"
Der Endpunkt muss:
- öffentlich zugänglich sein
- einen gültigen Domainnamen verwenden
- mit einem vertrauenswürdigen SSL-Zertifikat gesichert sein
- über ein Zertifikat verfügen, das mit dem Domainnamen übereinstimmt
Nach der Konfiguration benachrichtigt Google oder Microsoft Ihre Anwendung direkt, sobald sich eine abonnierte Ressource ändert.
Dieser Ansatz bietet die schnellstmögliche Reaktionszeit und eignet sich ideal für Webanwendungen und in der Cloud gehostete Lösungen.
// Microsoft Graph webhook handler
[
{
"class": "NetKit.GraphNotificationHandler",
"method": "getResponse",
"regexPattern": "/4dnk-graph-notification",
"verbs": "post"
}
]
// Google webhook handler
[
{
"class": "NetKit.GraphNotificationHandler",
"method": "getResponse",
"regexPattern": "/4dnk-google-notification",
"verbs": "post"
}
]
Beachten Sie, dass Gmail einen zusätzlichen Parameter erfordert: „topicName“, der das Google Cloud Pub/Sub-Thema angibt, das von der Gmail-API zur Veröffentlichung von Benachrichtigungen über Änderungen am Postfach verwendet wird.
Timer-basierte Überwachung
Wenn Sie keinen Endpunkt angeben, wechselt 4D NetKitautomatisch zur timerbasierten Überwachung.
In diesem Modus fragt 4D NetKit regelmäßig die Google- oder Microsoft-APIs ab, um Änderungen zu erkennen.
$parameter.timer:=60
In diesem Beispiel prüft 4D NetKit alle 60 Sekunden auf Aktualisierungen. Dieser Ansatz ist besonders nützlich, wenn: Ihre Anwendung in einem lokalen Netzwerk ausgeführt wird, kein öffentlicher HTTPS-Endpunkt verfügbar ist oder Sie ein einfacheres Bereitstellungsmodell bevorzugen
Der Timer-Modus wird automatisch aktiviert, wenn kein Endpunkt angegeben wird.
Callback-Funktionen definieren
Unabhängig davon, ob Sie E-Mails oder Kalenderereignisse überwachen, ist das Callback-Modell identisch.
Ein praktischer Ansatz besteht darin, eine eigene Klasse zu erstellen, die die gesamte Benachrichtigungsverarbeitung zentralisiert.
Sie können beispielsweise eine Klasse „NetKitEventNotification“ erstellen:
// This function is triggered when a mail or calendar event is created
Function onCreate($provider : Object; $event : Object)
var $resource:=$event.type="mailCreated" ? "Email" : "Calendar event"
ALERT("You have a new "+$resource+" event")
// This function is triggered when a mail or calendar event is deleted
Function onDelete($provider : Object; $event : Object)
var $resource:=$event.type="mailDeleted" ? "Email" : "Calendar event"
ALERT("A "+$resource+" has been deleted")
// This function is triggered when a mail or calendar event is modified
Function onModify($provider : Object; $event : Object)
var $resource:=$event.type="mailModified" ? "Email" : "Calendar event"
ALERT("A "+$resource+" event has been modified")
Im obigen Beispiel ist keine „endPoint“-Eigenschaft deklariert. Benachrichtigungen laufen daher im timerbasierten Überwachungsmodus mit dem Standardintervall von 30 Sekunden, sofern Sie keinen benutzerdefinierten Timer-Wert festlegen. Wenn Sie Echtzeit-Webhook-Benachrichtigungen verwenden möchten, ist die Definition eines „endPoint“ erforderlich:
// Set this URL to use Real-Time Webhook Notifications
property endPoint:="https://mydomain.com/googlenotifications"
// Gmail webhook mode only: Google Cloud Pub/Sub topic used for mailbox notifications
property topicName:="projects/my-project/topics/gmail-notifications"
// This function is triggered when a mail or calendar event is created
Function onCreate($provider : Object; $event : Object)
var $resource:=$event.type="mailCreated" ? "Email" : "Calendar event"
ALERT("You have a new "+$resource+" event")
// This function is triggered when a mail or calendar event is deleted
Function onDelete($provider : Object; $event : Object)
var $resource:=$event.type="mailDeleted" ? "Email" : "Calendar event"
ALERT("A "+$resource+" has been deleted")
// This function is triggered when a mail or calendar event is modified
Function onModify($provider : Object; $event : Object)
var $resource:=$event.type="mailModified" ? "Email" : "Calendar event"
ALERT("A "+$resource+" event has been modified")
Ein Benachrichtigungsabonnement starten
Sobald Ihre Callbacks definiert sind, ist das Erstellen eines Notifiers unkompliziert:
// Create a notification handler instance.
var $notification:=cs.NetKitEventNotification.new()
// Create a Gmail notifier using the OAuth2 provider and the handler.
var $gmailNotification:=cs.NetKit.Google.new($myOAuth2Provider).mail.notifier($notification)
// Start listening for Gmail notifications.
$gmailNotification.start()
// Create a Google Calendar notifier using the same handler.
var $calendarNotification:=cs.NetKit.Google.new($myOAuth2Provider).calendar.notifier($notification)
// Start listening for Calendar notifications.
$calendarNotification.start()
Fazit
Mit 4D NetKit-Benachrichtigungen lässt sich Ihre Anwendung ganz einfach mit Daten aus Google Workspace und Microsoft 365 synchronisieren. Dank der Unterstützung sowohl für E-Mail- als auch für Kalenderänderungen können Sie schnell reaktionsfähige Anwendungen erstellen, die in Echtzeit auf Benutzeraktivitäten reagieren.
Das Beste daran ist, dass das Programmiermodell bei allen Anbietern identisch bleibt, sodass Sie Ihre Benachrichtigungslogik einmal schreiben und überall verwenden können.
Für diesen Beitrag sind derzeit keine Kommentare verfügbar.