數據管理DMS除了手機短信、郵件、釘釘信息、釘釘機器人Webhook等消息通知方式外,支持使用自定義Webhook通知。
配置介紹
配置個人信息時,在Webhook區域,輸入URL地址,并勾選Webhook通知渠道。
更多信息,請參見配置個人信息及通知方式。
事件說明
當DMS中有消息通知時,系統會將消息通知發送到您指定的URL地址,發送的POST請求內容如下所示。
請求頭
DMS-Event: Message Hook
請求體參數
參數 | 數據類型 | 描述 |
submitterUid | String | 提交人的UID。 |
submitterName | String | 提交人名稱。 |
category | String | 功能模塊:工單、任務編排、數倉開發等。 |
module | String | 業務類型:權限申請、數據變更、結構設計、數據導出等。 |
event | String | 具體事件:待審批、執行成功、執行失敗等。 |
taskId | String | 工單ID或任務流ID。 |
taskName | String | 任務名稱。 |
eventTime | String | 事件時間。 |
message | String | 系統內置消息文本。 |
targetUsers | 對象數組 | 目標接收者,支持通知多個接收人。 |
receivers | 對象數組 | 實際接收人對象數組。未配置通知方式用戶將無法接收通知。 |
uid | String | 接收人的UID,該參數為接收人對象的成員。 |
name | String | 接收人名稱,該參數為接收人對象的成員。 |
signatureMethod | String | 當您使用自定義Webhook時,需選擇簽名方式(必選項),當前支持兩種簽名方式:
|
signatureText | String | 數字簽名,通過Webhook地址、密碼、消息事件計算得出的HmacSha1值,例如 |
請求體示例
{
"messageEvent":{
"submitterName":"xxx",
"submitterUid":"167382665015xxxx",
"category":"工單",
"event":"執行成功",
"eventTime":1625630049930,
"message":"【DMS數據管理】Webhook test, code: 144619 ",
"module":"數據變更",
"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} //成功
{"root":"error message","success":false} //失敗
Webhook接收端例子
您可以通過如下方式,創建一個簡單的Echo腳本,測試、查看Webhook的執行效果。
將如下腳本保存成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控制臺上,配置Webhook的URL地址,例如
http://my.host:8000/
。具體操作,請參見配置個人信息及通知方式。當觸發支持HTTP Basic Authentication的服務器時, 允許在URL中添加用戶名和密碼進行訪問,Webhook示例如下:
http://userName:password@my.host:8080/project/test-job
在修改通知方式對話框中,單擊自定義Webhook地址右側的測試,您的服務端將會收到DMS發來的消息通知。
如下為通知示例:
{ "messageEvent":{ "submitterName":"xxx", "submitterUid":"167382665015xxxx", "category":"工單", "event":"執行成功", "eventTime":1625630049930, "message":"【DMS數據管理】Webhook test, code: 144619 ", "module":"數據變更", "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