LMS365 Webhooks

  • 更新

概要

LMS365は、システム内で発生するイベントを通知する機能を提供しています。

たとえば、「受講登録」のイベント通知を受信することで、学習コースに登録する人を記録するような独自の追跡ロジックを追加することができます。

つまりLMS365上で何らのアクションが実行された場合に、そのことをLMS365以外のシステムやアプリケーションに通知することができます。

用途としてはLMS365以外の人事システムやタレントマネジメントシステムと情報を連動させることで、従業員の学習状況などを一元管理できることにあります。

そのためには、通知されたイベント情報を受信するためのWebhooksを追加する必要があります。

これは、ご利用頂いているLMS365以外のシステムやアプリケーション上に開発を入れることになりますので、実装を行う場合は各システムベンダー様にお問い合わせください。

LMS365のWebhooksはASP.NET Webhooksに基づいて実装されています。 これは、MicrosoftがASP.NETフレームワークで使用する標準ライブラリです。

Webhookを利用する一般の流れは以下の通りとなります。

  • Webhookを送信する側(LMS365)は、クライアントが受信可能なイベント情報を通知します。イベント情報には、新しいデータが追加されたことや何かしらのプロセスが完了したことなどの、通知情報を含んでいます。
  • Webhookを受信する側は、4つの要素からなるWebhookを登録してイベント情報を受信します。
    1. イベント情報通知が送信されるHTTP形式のURI
    2. Webhookイベントを特定するためのフィルタ情報
    3. 認証に必要となるシークレットキー
    4. イベント情報の要求時に必要となる追加データ。例えば追加のHTTPヘッダーフィールド、またはHTTP POST要求本体に含まれるプロパティーです。
  • 登録済みのWebhookの一致するイベントが発生すると、HTTP形式でのイベント情報の送信が実施されます。Webhookの受信側でエラーが発生し応答が得られない場合は、HTTP形式によるイベント送信は何度か実行されます。

LMS365 Webhooksイベント

以下のイベント情報を受信することができます。

  • 受講の登録
  • 受講の解除
  • 学習コースを開始
  • 学習コースを完了
  • 学習コースの公開
  • 学習コースの公開終了
  • 受講申請の承認

今後、受信できるイベント情報は増えていく予定です。

これらはLMS365 Swaggerでお試し頂くことができます。

Webhooksの登録例

Webhookからは、http://api.365.systems/webhooks/registrationsにリクエストを送信する必要があります。

例えば以下のようになります。

POST /webhooks/registrations/ HTTP/1.1
Host: api.365.systems
Authorization: Basic <basic auth header>
Content-Type: application/json
Cache-Control: no-cache

{
"WebHookUri":"http://customhost/api/webhooks/incoming/lms365",
"Secret":"some secret",
"Description":"some description",
"IsPaused":false,
"Filters":["CourseCompleted"]
}

LMS365 WebhooksはMicrosoft社が提供している「ASP.NET core」の仕様に準拠しています。

WebHookUri は有効なカスタム Web フックハンドラーです。LMS365 の webhook の仕組みや、カスタム webhook ハンドラーの実装方法などについては、ASP.NET Coreの概要」をご覧ください。