Teleopti Importiert
  • |
  • Die Stärken von Calabrio Teleopti WFM nutzen – Teil 3: Zeitplanaktualisierungen wie ein Profi

Teleopti Importiert

Uncategorized

Die Stärken von Calabrio Teleopti WFM nutzen – Teil 3: Zeitplanaktualisierungen wie ein Profi

Robin Karlsson, Technical Lead R&D bei Teleopti, kehrt für die dritte und letzte Folge seiner Blogserie „Wie Sie die API von Calabrio WFM am besten nutzen“ zurück. Diese Woche geht es um die Aktualisierung von Terminen.

In meinem letzten Beitrag in dieser Serie haben wir uns mit der Aktualisierung von Informationen in Calabrio WFM über die externe API beschäftigt. Manchmal müssen wir jedoch wissen, wann Informationen in Calabrio WFM geändert/aktualisiert wurden. Diese Anfragen betreffen in erster Linie Informationen zum Zeitplan. Deshalb haben wir eine brandneue Möglichkeit eingeführt, um Benachrichtigungen über Terminänderungen zu erhalten.

Wann immer jemand eine Änderung an den Zeitplänen vornimmt, werden Sie über den von Ihnen angegebenen Endpunkt benachrichtigt. Der Endpunkt und der relative Bereich der Tage, an denen Sie interessiert sind, werden durch einen Befehl festgelegt.

InternalService.ExecuteCommand(new AddScheduleChangesListenerCommandDto{ Listener = new ScheduleChangesListenerDto { DaysStartFromCurrentDate = -1, //From yesterday DaysEndFromCurrentDate = 4, //Listen für Änderungen, die für vier Tage relativ zu heute gemacht wurden Name = ‚ScheduleIntegration‘, //A Name, um den Listener bei Abonnementänderungen identifizieren zu können Url = ‚https://schedulechangeslistener.teleopti.com/endpoint‘ //Der Url-Endpunkt, der Aktualisierungen empfangen wird >;

Wenn Sie an einer größeren Anzahl von Tagen interessiert sind, für die Sie Benachrichtigungen erhalten möchten, wird der Endpunkt stärker belastet. Daten an den Endpunkt werden als json serialisierte Daten gesendet. Für jede Anfrage wird eine Signatur berechnet und die Signaturinformationen werden in der Kopfzeile der erstellten Anfrage an den von Ihnen angegebenen Endpunkt gesendet. Um die für die Überprüfung der Signatur benötigten Details zu erhalten, müssen Sie die API aufrufen und die Daten irgendwo speichern.

var settings = SchedulingService.GetScheduleChangeSubscriptionsByQuery(new GetScheduleChangesSubscriptionSettingsQueryDto());if (settings.Length > 0){ foreach (var listener in settings.Listeners) { //Informationen für jeden Endpunkt, der auf Zeitplanänderungen wartet }}

Jetzt, da wir die Endpunktinformationen eingerichtet haben, werden wir sofort damit beginnen, Anfragen mit Zeitplaninformationen zu erhalten, wenn Änderungen auftreten. Auf diese Weise können wir unsere eigenen Änderungsbenachrichtigungen für die Agenten implementieren oder aktualisierte Zeitplaninformationen in unserem System speichern, das mit Calabrio WFM integriert werden kann.

Ein Teil der Informationen, die wir zusammen mit den Details des Listener-Endpunkts erhalten, ist erforderlich, um die Signatur zu überprüfen. Da die Daten an einen nicht authentifizierten Endpunkt url gesendet werden, verwenden wir den Mechanismus der Signaturen, um dem Empfänger die Möglichkeit zu geben, unerwünschte Anfragen zurückzuweisen. Dies ist ein Beispiel dafür, wie der Code für den Empfang von Zeitplanänderungen aussehen kann.

var signature = Request.Headers; var rsa = new RSACryptoServiceProvider(); rsa.ImportParameters(new RSAParameters { Modulus = Convert.FromBase64String(‚…‘), //Modulus aus Hörerangaben Exponent = Convert.FromBase64String(‚…‘) //Exponent aus Hörerangaben });var sr = new StreamReader(Request.InputStream); string content = sr.ReadToEnd();var isValidRequest = rsa.VerifyData(Encoding.UTF8.GetBytes(content), CryptoConfig.MapNameToOID(‚SHA1‘), Convert.FromBase64String(signature)); if (!isValidRequest) { throw new ArgumentException(‚Die Daten wurden verfälscht!‘); } File.AppendAllText(‚c:tempschedulechanges.txt‘,content + Environment.NewLine);

Das Beispiel schreibt lediglich ein Protokoll der Zeitplanänderungen direkt in eine Datei im Bereich der temporären Dateien des Servers.

Wie für jeden Teil dieser Serie finden Sie den Beispielcode auf dem offiziellen GitHub-Repository von Teleopti, das Sie unter https://github.com/Teleopti/sdk-sample finden.