目次
概要
Learn365 はシステム内で発生するイベントをサブスクライブする機能を提供します。
例えば、'CourseEnrollment' イベントをサブスクライブし、コースに登録した人を記録するカスタムトラッキングの機能を追加することができます。
これを行うには、サブスクライブしたいイベントを示す特定のフィルターを用いて Webhook を登録する必要があります。
Learn365 Webhook は、ASP.NET WebHooks に基づいてに実装されています。これは、Microsoft が「ASP.NETフレームワーク」で使用している標準ライブラリです。
Webhook フローは、一般的に次のように動作します。
-
Webhook の送信者である Learn365 は、クライアントがサブスクライブできるイベントを公開します。
イベントとは、例えば、新しいデータ項目が挿入された、プロセスが完了したなど、システムで監視される変化を記述したものです。
- Webhook受信者(お客様 エンドポイント)は、次の4つの要素からなる Webhook を登録することでサブスクライブします。
- HTTP POST リクエスト 形式でイベント通知をポストすべき場所を示すURI
- Webhook を呼び出す特定のイベントを記述したフィルター一式
- HTTP POSTリクエストの署名に使用されるシークレットキー
- HTTP POST要求に含めるべき追加情報:
これは、たとえば、HTTP POSTリクエスト本文に含まれる追加の HTTP ヘッダーフィールドまたはプロパティです。
-
イベントが発生すると、一致するWebhook登録が検出され、HTTP POST要求が送信されます。
通常、受信者が何らかの理由で応答しない場合、または HTTP POST リクエストが結果としてエラーレスポンスになる場合は、HTTP POSTリクエストの生成を何度か試みます。
LMS365 Webhooksイベント
現時点でサブスクライブできるイベント(フィルター)は、次の通りです。
- CourseEnrollment(コース登録)
- CourseUnenrollment(コース登録解除)
- CourseStarted(コース開始)
- CourseCompleted(コース完了)
- CoursePublished(コース公開)
- CourseUnpublished(コース未公開)
- EnrollmentApprovalRequest(登録承認申請)
これらのイベントのリストは今後拡張される予定です。
こちらでは、LMS365のコネクタの使い方をご紹介しています。
Swaggerでお試しいただけます。
カスタムWebhooksの登録またはイベントのサブスクライブ
https://api.365.systems/documentation/swaggerui3/#/WebHookRegistrations に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"]
}
ここでの WebHookUri は有効なカスタム Webhook ハンドラです。
LMS365 Webhookの動作とカスタムWebhookハンドラの実装について理解をするには、Microsoft の ASP.NET Webhook を参照してください。