全部產品
Search
文件中心

EventBridge:路由到DingTalk

更新時間:Dec 27, 2024

您可以通過事件規則過濾事件,將事件路由到DingTalk。本文以自訂事件為例介紹將事件路由到DingTalk的前提條件、操作步驟和結果驗證。

前提條件

背景資訊

DingTalk機器人支援接收的訊息類型和結果樣式如下所示:
  • text訊息text類型
  • link訊息link
  • markdown訊息markdown
  • 整體跳轉actionCard類型整體跳轉
  • 獨立跳轉actionCard類型獨立跳轉
  • feedCard類型feedcard

步驟一:添加自訂事件來源

  1. 登入事件匯流排EventBridge控制台,在左側導覽列,單擊事件匯流排
  2. 在頂部功能表列,選擇地區,在事件匯流排頁面,單擊目標自訂事件匯流排名稱。
  3. 在左側導覽列,單擊事件來源,然後單擊添加事件來源
  4. 添加自訂事件來源面板,輸入名稱描述事件提供方選擇自訂應用,然後單擊確定

步驟二:建立事件規則

重要 目標服務和事件規則必須處於同一地區。
  1. 登入事件匯流排EventBridge控制台
  2. 在左側導覽列,單擊事件匯流排
  3. 在頂部功能表列,選擇地區。
  4. 事件匯流排頁面,單擊目標匯流排名稱。
  5. 在左側導覽列,單擊事件規則
  6. 事件規則頁面,單擊建立規則
  7. 建立規則頁面,完成以下操作。
    1. 配置基本資料設定精靈,在名稱文字框輸入規則名稱,在描述文字框輸入規則的描述,然後單擊下一步
    2. 配置事件模式設定精靈,事件來源類型選擇自訂事件來源事件來源選擇步驟一添加的自訂事件來源,在事件模式內容代碼框輸入事件模式,然後單擊下一步

      如需瞭解更多資訊,請參見事件模式

    3. 配置事件目標設定精靈,配置以下事件目標參數,然後單擊建立
      說明 1個事件規則最多可以添加5個目標。
      • 服務類型:單擊DingTalk
      • 地址:輸入DingTalk機器人的Webhook地址。
      • 密鑰:輸入DingTalk機器人密鑰。
      • 推送內容:預設為模板。通過自訂變數和模板,將事件按照模板的樣本輸出。

        DingTalk機器人規定了其接收的訊息類型和資料格式,以下為常用訊息類型的變數和模板樣本:

        • text類型

          變數樣本:

          {
            "content": "$.data.content"
          }

          模板樣本:

          {
              "msgtype":"text",
              "text":{
                  "content":"${content}@1760514XXXX"
              },
              "at":{
                  "atMobiles":[
                      "1760514XXXX",
                      "1898325XXXX"
                  ],
                  "isAtAll":false
              }
          }
          參數類型是否必選說明
          msgtypeString訊息類型。
          textObjecttext類型的事件內容。
          contentString訊息內容。
          atObjectat(@)參數內容。
          atMobilesArray被at(@)的人的手機號碼。
          說明 手機號碼必須綁定DingTalk帳號。
          isAtAllBoolean是否at(@)所有人。
          說明 isAtAll設定為true,DingTalk接收事件訊息at所有人,此時content中at某個群成員會失效。
        • link類型

          變數樣本:

          {
            "name": "$.data.name"
          }

          模板樣本:

          {
              "msgtype":"link",
              "link":{
                  "text":"這個即將發布的新版本,創始人${name}稱它為紅樹林。而在此之前,每當面臨重大升級,產品經理們都會取一個應景的代號,這一次,為什麼是紅樹林?",
                  "title":"時代的火車向前開",
                  "picUrl":"",
                  "messageUrl":"www.example.com"
              }
          }
          參數類型是否必選說明
          msgtypeString訊息類型。
          linkObjectlink類型的事件內容。
          textString訊息內容。
          說明 如果訊息內容太長,DingTalk視窗中只會顯示部分內容。
          titleString訊息標題。
          picUrlString圖片URL。
          messageUrlString訊息URL。
        • markdown類型

          變數樣本:

          {
              "time":"$.time",
              "content":"$.data.content"
          }

          模板樣本:

          {
              "msgtype":"markdown",
              "markdown":{
                  "title":"杭州天氣",
                  "text":"#### 杭州天氣 @1760514XXXX \n> ${content}\n> ![screenshot](www.example.com/image_01.png)\n> ###### ${time}發布 [天氣](www.example.com) \n"
              },
              "at":{
                  "atMobiles":[
                      "1760514XXXX"
                  ],
                  "isAtAll":false
              }
          }
          參數類型是否必選說明
          msgtypeString訊息類型。
          markdownObjectmarkdown類型的事件內容。
          titleString訊息標題。
          textString訊息內容。
          atObjectat(@)參數內容。
          atMobilesArray被at(@)的人的手機號碼。
          isAtAllBoolean是否at(@)所有人。
          說明 isAtAll設定為true,DingTalk接收事件訊息at所有人,此時content中at某個群成員會失效。
        • 整體跳轉actionCard類型

          變數樣本:

          {
              "content":"$.data.content"
          }

          模板樣本:

          {
              "msgtype":"actionCard",
              "actionCard":{
                  "title":"喬布斯20年前想打造一間蘋果咖啡廳,而它正是Apple Store的前身",
                  "text":"![screenshot](www.example.com/image_02.png) \n ### ${content} \n Apple Store的設計正從原來滿滿的科技感走向生活化,而其生活化的走向其實可以追溯到20年前蘋果一個建立咖啡館的計劃",
                  "btnOrientation":"0",
                  "singleTitle":"閱讀全文",
                  "singleURL":"www.example.com"
              }
          }
          參數類型是否必選說明
          msgtypeString訊息類型。
          actionCardObjectactionCard類型的事件內容。
          titleString訊息預覽框標題。
          textString訊息內容。
          btnOrientationString按鈕方向。

          取值說明如下:

          • 0:垂直排列。
          • 1:橫向排列。
          singleTitleString單個按鈕的標題。
          singleURLString單擊singleTitle觸發的URL。
        • 獨立跳轉actionCard類型

          變數樣本:

          {
              "content":"$.data.content"
          }

          模板樣本:

          {
              "msgtype":"actionCard",
              "actionCard":{
                  "title":"喬布斯20年前想打造一間蘋果咖啡廳,而它正是Apple Store的前身",
                  "text":"![screenshot](www.example.com/image_03.png) \n ### ${content} \n Apple Store 的設計正從原來滿滿的科技感走向生活化,而其生活化的走向其實可以追溯到20年前蘋果一個建立咖啡館的計劃",
                  "btnOrientation":"0",
                  "btns":[
                      {
                          "title":"內容不錯",
                          "actionURL":"www.example.com"
                      },
                      {
                          "title":"不感興趣",
                          "actionURL":"www.example.edu"
                      }
                  ]
              }
          }
          參數類型是否必選說明
          msgtypeString訊息類型。
          actionCardObjectactionCard類型的事件內容。
          titleString訊息預覽框標題。
          textString訊息內容。
          btnOrientationString按鈕方向。

          取值說明如下:

          • 0:垂直排列。
          • 1:橫向排列。
          btnsArray按鈕。
          titleString按鈕的標題。
          actionURLString單擊按鈕觸發的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"
                      }
                  ]
              }
          }
          參數類型是否必選說明
          msgtypeString訊息類型。
          feedCardObjectfeedCard類型的事件內容。
          linksArrayfeedCard涉及的連結。
          titleString訊息標題。
          messageURLString訊息URL。
          picURLString圖片URL。

        更多資訊,請參見事件內容轉換

步驟三:發布事件

  1. 登入事件匯流排EventBridge控制台,在左側導覽列,單擊事件匯流排
  2. 在頂部功能表列,選擇地區。
  3. 事件匯流排頁面,找到目標匯流排,在其右側操作列單擊发布事件
    說明 僅自訂事件匯流排支援通過控制台發布事件。
  4. 發布事件至自訂事件匯流排面板,自定义事件源下拉式清單選擇已建立的自訂事件來源,在事件体代碼框輸入事件內容,然後單擊確定
    事件包含的參數規範,請參見事件概述

結果驗證

您可以在DingTalk用戶端查看DingTalk機器人推送的訊息。