您可以通過事件規則過濾事件,將事件路由到DingTalk。本文以自訂事件為例介紹將事件路由到DingTalk的前提條件、操作步驟和結果驗證。
前提條件
- 開通事件匯流排EventBridge並授權
- 下載DingTalk用戶端
- 添加自訂機器人重要 添加機器人時安全設定須選擇加簽。
背景資訊
DingTalk機器人支援接收的訊息類型和結果樣式如下所示:- text訊息

- link訊息

- markdown訊息

- 整體跳轉actionCard類型

- 獨立跳轉actionCard類型

- feedCard類型

步驟一:添加自訂事件來源
- 登入事件匯流排EventBridge控制台,在左側導覽列,單擊事件匯流排。
- 在頂部功能表列,選擇地區,在事件匯流排頁面,單擊目標自訂事件匯流排名稱。
- 在左側導覽列,單擊事件來源,然後單擊添加事件來源。
- 在添加自訂事件來源面板,輸入名稱和描述,事件提供方選擇自訂應用,然後單擊確定。
步驟二:建立事件規則
重要 目標服務和事件規則必須處於同一地區。
- 登入事件匯流排EventBridge控制台。
- 在左側導覽列,單擊事件匯流排。
- 在頂部功能表列,選擇地區。
- 在事件匯流排頁面,單擊目標匯流排名稱。
- 在左側導覽列,單擊事件規則。
- 在事件規則頁面,單擊建立規則。
- 在建立規則頁面,完成以下操作。
- 在配置基本資料設定精靈,在名稱文字框輸入規則名稱,在描述文字框輸入規則的描述,然後單擊下一步。
- 在配置事件模式設定精靈,事件來源類型選擇自訂事件來源,事件來源選擇步驟一添加的自訂事件來源,在事件模式內容代碼框輸入事件模式,然後單擊下一步。
如需瞭解更多資訊,請參見事件模式。
- 在配置事件目標設定精靈,配置以下事件目標參數,然後單擊建立。說明 1個事件規則最多可以添加5個目標。
- 服務類型:單擊DingTalk。
- 地址:輸入DingTalk機器人的Webhook地址。
- 密鑰:輸入DingTalk機器人密鑰。
- 推送內容:預設為模板。通過自訂變數和模板,將事件按照模板的樣本輸出。
DingTalk機器人規定了其接收的訊息類型和資料格式,以下為常用訊息類型的變數和模板樣本:
- text類型
變數樣本:
{ "content": "$.data.content" }模板樣本:
{ "msgtype":"text", "text":{ "content":"${content}@1760514XXXX" }, "at":{ "atMobiles":[ "1760514XXXX", "1898325XXXX" ], "isAtAll":false } }參數 類型 是否必選 說明 msgtype String 是 訊息類型。 text Object 是 text類型的事件內容。 content String 是 訊息內容。 at Object 是 at(@)參數內容。 atMobiles Array 否 被at(@)的人的手機號碼。 說明 手機號碼必須綁定DingTalk帳號。isAtAll Boolean 否 是否at(@)所有人。 說明 當isAtAll設定為true,DingTalk接收事件訊息at所有人,此時content中at某個群成員會失效。 - link類型
變數樣本:
{ "name": "$.data.name" }模板樣本:
{ "msgtype":"link", "link":{ "text":"這個即將發布的新版本,創始人${name}稱它為紅樹林。而在此之前,每當面臨重大升級,產品經理們都會取一個應景的代號,這一次,為什麼是紅樹林?", "title":"時代的火車向前開", "picUrl":"", "messageUrl":"www.example.com" } }參數 類型 是否必選 說明 msgtype String 是 訊息類型。 link Object 是 link類型的事件內容。 text String 是 訊息內容。 說明 如果訊息內容太長,DingTalk視窗中只會顯示部分內容。title String 是 訊息標題。 picUrl String 否 圖片URL。 messageUrl String 是 訊息URL。 - markdown類型
變數樣本:
{ "time":"$.time", "content":"$.data.content" }模板樣本:
{ "msgtype":"markdown", "markdown":{ "title":"杭州天氣", "text":"#### 杭州天氣 @1760514XXXX \n> ${content}\n> \n> ###### ${time}發布 [天氣](www.example.com) \n" }, "at":{ "atMobiles":[ "1760514XXXX" ], "isAtAll":false } }參數 類型 是否必選 說明 msgtype String 是 訊息類型。 markdown Object 是 markdown類型的事件內容。 title String 是 訊息標題。 text String 是 訊息內容。 at Object 是 at(@)參數內容。 atMobiles Array 否 被at(@)的人的手機號碼。 isAtAll Boolean 否 是否at(@)所有人。 說明 當isAtAll設定為true,DingTalk接收事件訊息at所有人,此時content中at某個群成員會失效。 - 整體跳轉actionCard類型
變數樣本:
{ "content":"$.data.content" }模板樣本:
{ "msgtype":"actionCard", "actionCard":{ "title":"喬布斯20年前想打造一間蘋果咖啡廳,而它正是Apple Store的前身", "text":" \n ### ${content} \n Apple Store的設計正從原來滿滿的科技感走向生活化,而其生活化的走向其實可以追溯到20年前蘋果一個建立咖啡館的計劃", "btnOrientation":"0", "singleTitle":"閱讀全文", "singleURL":"www.example.com" } }參數 類型 是否必選 說明 msgtype String 是 訊息類型。 actionCard Object 是 actionCard類型的事件內容。 title String 是 訊息預覽框標題。 text String 是 訊息內容。 btnOrientation String 否 按鈕方向。 取值說明如下:
- 0:垂直排列。
- 1:橫向排列。
singleTitle String 是 單個按鈕的標題。 singleURL String 是 單擊singleTitle觸發的URL。 - 獨立跳轉actionCard類型
變數樣本:
{ "content":"$.data.content" }模板樣本:
{ "msgtype":"actionCard", "actionCard":{ "title":"喬布斯20年前想打造一間蘋果咖啡廳,而它正是Apple Store的前身", "text":" \n ### ${content} \n Apple Store 的設計正從原來滿滿的科技感走向生活化,而其生活化的走向其實可以追溯到20年前蘋果一個建立咖啡館的計劃", "btnOrientation":"0", "btns":[ { "title":"內容不錯", "actionURL":"www.example.com" }, { "title":"不感興趣", "actionURL":"www.example.edu" } ] } }參數 類型 是否必選 說明 msgtype String 是 訊息類型。 actionCard Object 是 actionCard類型的事件內容。 title String 是 訊息預覽框標題。 text String 是 訊息內容。 btnOrientation String 否 按鈕方向。 取值說明如下:
- 0:垂直排列。
- 1:橫向排列。
btns Array 是 按鈕。 title String 是 按鈕的標題。 actionURL String 是 單擊按鈕觸發的URL。 - feedCard類型
變數樣本:
{ "content":"$.data.content" }模板樣本:
{ "msgtype":"feedCard", "feedCard":{ "links":[ { "title":"${content}", "messageURL":"www.example.com", "picURL":"img.example.com/image_04.png" }, { "title":"時代的火車向前開", "messageURL":"www.example.edu", "picURL":"img.example.edu/image_05.png" } ] } }參數 類型 是否必選 說明 msgtype String 是 訊息類型。 feedCard Object 是 feedCard類型的事件內容。 links Array 否 feedCard涉及的連結。 title String 是 訊息標題。 messageURL String 是 訊息URL。 picURL String 是 圖片URL。
更多資訊,請參見事件內容轉換。
- text類型
步驟三:發布事件
- 登入事件匯流排EventBridge控制台,在左側導覽列,單擊事件匯流排。
- 在頂部功能表列,選擇地區。
- 在事件匯流排頁面,找到目標匯流排,在其右側操作列單擊发布事件。說明 僅自訂事件匯流排支援通過控制台發布事件。
- 在發布事件至自訂事件匯流排面板,自定义事件源下拉式清單選擇已建立的自訂事件來源,在事件体代碼框輸入事件內容,然後單擊確定。事件包含的參數規範,請參見事件概述。
結果驗證
您可以在DingTalk用戶端查看DingTalk機器人推送的訊息。