LMS365 Webhooks

  • 更新

目次


概要

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 ドキュメント」の参照をお勧めします。