データ管理 (DMS) では、テキストメッセージ、電子メール、DingTalk通知、およびDingTalkチャットボットメッセージに加えて、通知方法としてカスタムwebhook URLを使用できます。
通知方法としてwebhook URLを設定する
DMSコンソールで通知方法を設定します。 [通知方法の変更] ダイアログボックスで、webhookフィールドにwebhook URLを入力し、通知方法 の横にあるwebhookを選択します。
詳細については、「個人情報と通知方法の設定」をご参照ください。
イベント通知のリクエスト
DMSで通知が生成されると、DMSは指定したwebhook URLに通知を送信します。 POSTリクエストの内容について説明します。
リクエストヘッダー
DMS-Event: Message Hook
リクエストパラメーター
パラメーター | データ型 | 説明 |
submitterUid | String | タスクを送信するアカウントのID。 |
submitterName | String | タスクを送信するアカウントの名前。 |
カテゴリ | String | Tickets、task Orchestration、Data Warehouse Developmentなど、タスクが属するモジュール。 |
module | String | 権限の適用、データの変更、スキーマの設計、データのエクスポートなど、ビジネスの種類。 |
event | String | 保留中の承認、成功、失敗など、タスクのステータスによってトリガーされるイベント。 |
taskId | String | チケットまたはタスクフローのID。 |
taskName | String | タスクの名前。 |
eventTime | String | イベントが発生した時刻。 |
message | String | DMSのプリセットメッセージ。 |
targetUsers | 配列 | 通知を受信する受信者。 1つ以上の受信者を指定できます。 |
受信機 | 配列 | 通知を実際に受信する受信者。 1つ以上の受信者を指定できます。 Notification methodパラメーターを設定しない場合、受信者は通知を受信できません。 |
uid | String | 受信者のID。 受信者を指定するときは、受信者のIDを指定する必要があります。 |
name | String | 受信者の名前。 受信者を指定するときは、受信者の名前を入力する必要があります。 |
signatureMethod | String | 通知方法としてカスタムwebhook URLを使用する場合に必要な署名方法。 有効な値:
|
signatureText | String | Webhook URL、パスワード、およびメッセージイベントに基づいて、HMAC_SHA1アルゴリズムを使用して計算されたデジタル署名。 例: |
リクエストの例
{
"messageEvent":{
"submitterName":"xxx",
"submitterUid":"167382665015xxxx",
"category":"Tickets",
"event":"Success",
"eventTime":1625630049930,
"message":"[DMS] Webhook test, code: 144619 ",
"Module":"Data change"
"receivers":[{"name":"xxx1","uid":"167382665015xxxx"},{"name":"xxx2","uid":"167382665016xxxx"}],
"targetUsers":[{"name":"xxx1","uid":"167382665015xxxx"},{"name":"xxx2","uid":"167382665016xxxx"}],
"taskName":"Webhook test"
},
"signatureMethod":"HMAC_SHA1",
"signatureText":"4mOdwflN1Cg5NdM2XPuipuCYYWk="
}
レスポンスの例
{"root":"","success":true} // The notification is sent.
{"root":"error message","success":false} // The notification fails to be sent.
例:
エコースクリプトを作成して、webhook URLをテストし、webhook URLを使用して送信された通知を表示できます。
次のサンプルコードをprint_http_body.rbという名前のスクリプトとして保存します。
require 'webrick' server = WEBrick::HTTPServer.new(:Port => ARGV.first) server.mount_proc '/' do |req, res| puts req.body end trap 'INT' do server.shutdown end server.start
使用しないポート (ポート8000など) を選択します。 スクリプト
ruby print_http_body.rb 8000
を実行します。[設定] ダイアログボックスで、次の設定を行います。 DMSコンソールで、
http:// my.host:8000/
などのwebhook URLを通知方法として設定します。 詳細については、「個人情報と通知方法の設定」をご参照ください。サーバーがHTTPプロトコルで基本認証を使用するように構成されている場合、ユーザー名とパスワードを含むwebhook URLを使用してサーバーにアクセスできます。 サンプルwebhook URL:
http://userName:password@my.host:8080/project/test-job
通知方法の変更 ダイアログボックスで、webhookフィールドの右側にある [テスト] をクリックします。 DMSは、指定したwebhook URLに通知を送信します。
次のコードは、DMSによって送信される通知の例を示しています。
{ "messageEvent":{ "submitterName":"xxx", "submitterUid":"167382665015xxxx", "category":"Tickets", "event":"Success", "eventTime":1625630049930, "message":"[DMS] Webhook test, code: 144619 ", "Module":"Data change" "receivers":[{"name":"xxx1","uid":"167382665015xxxx"}], "targetUsers":[{"name":"xxx1","uid":"167382665015xxxx"}], "taskName":"Webhook test" }, "signatureMethod":"HMAC_SHA1", "signatureText":"4mOdwflN1Cg5NdM2XPuipuCYYWk=" } 127.0.0.1 - - [20/Apr/2021:20:07:47 CST] "POST / HTTP/1.1" 200 0