目次
概要
LMS365では、システムで発生したイベントを配信することが可能です。
例えば、「CourseEnrollment」イベントを配信して、あなたのコースに登録した人を記録するための、独自のトラッキングロジックを追加することができます。
これを行うには、配信するイベントを示す固有のフィルターを持つ「Webhook」を登録することが必要です。
LMS365 Webhook は、ASP.NET WebHooks をベースに実装されています。
これは、Microsoft が「ASP.NETフレームワーク」で使用している標準ライブラリです。
Webhook フローは、一般的に次のように動作します。
- Webhook送信者(LMS365)は、クライアントが受信登録できるイベントを公開します。
イベントとは、例えば、新しいデータ項目が挿入されたとか、プロセスが完了したなど、システムで監視される変化を記述したものです。 - Webhook受信者(お客様エンドポイント)は、次の4つの要素からなる Webhook を登録してイベント情報を受信します。
- HTTP POSTリクエストの形式による、イベント通知を投稿するための URI
- Webhook が作動する特定のイベントが記述されたフィルターのセット
- HTTP POSTリクエストの署名に使用されるシークレットキー
- HTTP POSTリクエストに含める追加データ
例えば、HTTPヘッダーフィールドの追加や、HTTP POSTリクエストボディに含まれるプロパティなどです。
- イベントが発生すると、これに一致する Webhook を見つけだし、HTTP POSTリクエストが送信されます。
何らかの理由で受信者が応答しない場合や、HTTP POSTリクエストの結果がエラーレスポンスになる場合、何度かHTTP POSTリクエストの生成を試行することになります。
LMS365 Webhooksイベント
現時点で受信できるイベント(フィルター)は、次の通りです。
- CourseEnrollment(コース登録)
- CourseUnenrollment(コース登録解除)
- CourseStarted(コース開始)
- CourseCompleted(コース完了)
- CoursePublished(コース公開)
- CourseUnpublished(コース未公開)
- EnrollmentApprovalRequest(登録承認申請)
LMS365 Swaggerでお試しいただけます。
カスタムWebhooksの登録またはイベント登録
http://api.365.systems/webhooks/registrations に POST リクエストを送信する必要があります。
例:
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"
]
}
ここでの Webhook URI は、実行可能なカスタム Webhook ハンドラーです。
LMS365 の Webhook の仕組みと、カスタムWebhook ハンドラーの実装方法を理解するためにも、「ASP.NET ドキュメント」の参照をお勧めします。