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

前提條件

背景信息

釘釘機器人支持接收的消息類型和結果樣式如下所示:
  • 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個目標。
      • 服務類型:單擊釘釘
      • 地址:輸入釘釘機器人的Webhook地址。
      • 密鑰:輸入釘釘機器人密鑰。
      • 推送內容:默認為模板。通過自定義變量和模板,將事件按照模板的示例輸出。

        釘釘機器人規定了其接收的消息類型和數據格式,以下為常用消息類型的變量和模板示例:

        • text類型

          變量示例:

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

          模板示例:

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

          變量示例:

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

          模板示例:

          {
              "msgtype":"link",
              "link":{
                  "text":"這個即將發布的新版本,創始人${name}稱它為紅樹林。而在此之前,每當面臨重大升級,產品經理們都會取一個應景的代號,這一次,為什么是紅樹林?",
                  "title":"時代的火車向前開",
                  "picUrl":"",
                  "messageUrl":"www.example.com"
              }
          }
          參數類型是否必選說明
          msgtypeString消息類型。
          linkObjectlink類型的事件內容。
          textString消息內容。
          說明 如果消息內容太長,釘釘窗口中只會顯示部分內容。
          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,釘釘接收事件消息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. 發布事件至自定義事件總線面板,自定義事件源下拉列表選擇已創建的自定義事件源,在事件體代碼框輸入事件內容,然后單擊確定
    事件包含的參數規范,請參見事件概述

結果驗證

您可以在釘釘客戶端查看釘釘機器人推送的消息。