Od moderních aplikací se očekává, že budou na změny reagovat okamžitě. Ať už dorazí nový e-mail, dojde k aktualizaci události v kalendáři nebo je odstraněna nějaká položka, uživatelé očekávají, že rozhraní zůstane synchronizované, aniž by bylo nutné ruční obnovování.
Pro zjednodušení tohoto procesu zavádí 4D 21 R4 v rámci 4D NetKit jednotný systém oznámení pro Google Workspace i Microsoft 365. Díky jednotnému programovacímu modelu se můžete přihlásit k odběru změn v e-mailech a kalendáři a automaticky reagovat při každé změně dat.
Jednou z hlavních výhod 4D NetKit je, že API pro oznámení fungují naprosto stejně bez ohledu na poskytovatele.
Ať už používáte Google nebo Microsoft 365, API pro oznámení se chovají stejně:
cs.NetKit.Google.new($myOAuth2Provider).mail.notifier($notification)
cs.NetKit.Office365.new($myOAuth2Provider).mail.notifier($notification)
Stejný princip platí i pro kalendářová oznámení.
Co můžete sledovat?
4D NetKit vám umožňuje přihlásit se k odběru změn jak u e-mailů, tak u událostí v kalendáři.
Můžete reagovat na:
- Vytvoření
- Úpravy
- Smazání
u:
- E-mailů
- Událostí v kalendáři
Jakmile je zjištěna změna, vaše aplikace obdrží oznámení a může aktualizovat uživatelské rozhraní, obnovit data, zobrazit upozornění nebo spustit vlastní obchodní logiku.
Výběr režimu naslouchání
Před spuštěním oznamovače je třeba definovat, jak bude 4D NetKitdetekovat změny.
K dispozici jsou dva režimy.
Oznámení webhookem v reálném čase
První možností je nechat Google nebo Microsoft volat vaši aplikaci pokaždé, když dojde ke změně.
Chcete-li tento režim povolit, zadejte vlastnost endPoint obsahující URL pro zpětné volání:
$parameter.endPoint:="https://mydomain.com/notifications"
Koncový bod musí:
- Být veřejně přístupný
- Používat platný název domény
- Být zabezpečen důvěryhodným certifikátem SSL
- Mít certifikát, který odpovídá názvu domény
Po konfiguraci bude Google nebo Microsoft vaši aplikaci přímo informovat o každé změně odběrového zdroje.
Tento přístup zajišťuje nejrychlejší možnou dobu odezvy a je ideální pro webové aplikace a řešení hostovaná v cloudu.
// 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"
}
]
Upozorňujeme, že Gmail vyžaduje další parametr: topicName, který určuje téma služby Google Cloud Pub/Sub používané rozhraním API Gmailu k publikování oznámení o změnách v poštovní schránce.
Monitorování založené na časovači
Pokud koncový bod nezadáte, 4D NetKitautomaticky přepne na monitorování založené na časovači.
V tomto režimu 4D NetKit pravidelně dotazuje API Google nebo Microsoft, aby zjistil změny.
$parameter.timer:=60
V tomto příkladu 4D NetKit kontroluje aktualizace každých 60 sekund. Tento přístup je obzvláště užitečný, když: Vaše aplikace běží v lokální síti Není k dispozici veřejný koncový bod HTTPS Dáváte přednost jednoduššímu modelu nasazení
Režim časovače se automaticky aktivuje vždy, když není zadán žádný koncový bod.
Definování funkcí zpětného volání
Ať už monitorujete e-maily nebo události v kalendáři, model zpětného volání je stejný.
Pohodlným přístupem je vytvoření specializované třídy, která centralizuje veškeré zpracování oznámení.
Můžete například vytvořit třídu NetKitEventNotification:
// 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")
Ve výše uvedeném příkladu není deklarována žádná vlastnost endPoint. Oznámení se proto spouštějí v režimu monitorování založeném na časovači s výchozím 30sekundovým intervalem, pokud nenastavíte vlastní hodnotu časovače. Pokud chcete používat oznámení webhooků v reálném čase, je nutné definovat endPoint:
// 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")
Zahájení odběru oznámení
Jakmile jsou vaše zpětná volání definována, je vytvoření oznamovače jednoduché:
// 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()
Závěr
Oznámení 4D NetKit usnadňují synchronizaci vaší aplikace s daty Google Workspace a Microsoft 365. Díky podpoře změn v e-mailech i kalendáři můžete rychle vytvářet responzivní aplikace, které reagují na aktivitu uživatelů v reálném čase.
Nejlepší na tom je, že programovací model zůstává u všech poskytovatelů stejný, což vám umožňuje napsat logiku oznámení jednou a použít ji kdekoli.
K tomuto příspěvku zatím nelze přidávat komentáře.