开发者社区 问答 正文

钉钉如何发送markdown消息并展示在钉钉会话中?

钉钉如何发送markdown消息并展示在钉钉会话中?

展开
收起
真的很搞笑 2024-01-31 20:09:17 160 分享 版权
阿里云 AI 助理回答

要在钉钉会话中发送Markdown消息并正确展示,需要按照以下步骤进行配置和操作:


1. 准备Markdown格式的消息内容

Markdown是一种轻量级的标记语言,支持通过简单的语法实现富文本效果。在钉钉中,Markdown消息可以通过msgtypemarkdown的方式发送。

  • 基本结构

    {
    "msgtype": "markdown",
    "markdown": {
      "title": "标题内容",
      "text": "Markdown格式的消息正文"
    }
    }
    
    • title:消息的标题,显示在消息卡片的顶部。
    • text:消息的正文内容,支持Markdown语法(如加粗、列表、链接等)。
  • 示例内容

    {
    "msgtype": "markdown",
    "markdown": {
      "title": "系统告警通知",
      "text": "### 告警详情\n- **资源名称**: 示例资源\n- **告警时间**: 2023-10-01 12:00:00\n- 查看详情"
    }
    }
    

2. 调用钉钉Webhook接口

钉钉提供了Webhook接口,用于将消息推送到指定的群聊或会话中。以下是具体实现步骤:

2.1 获取Webhook地址

  • 在钉钉群中添加自定义机器人,并生成Webhook地址。
  • 确保机器人已启用,并根据需求设置安全验证(如关键词、IP白名单等)。

2.2 发送Markdown消息

通过HTTP POST请求将Markdown消息发送到Webhook地址。以下是一个Java代码示例:

import com.dingtalk.api.DefaultDingTalkClient;
import com.dingtalk.api.DingTalkClient;
import com.dingtalk.api.request.OapiRobotSendRequest;
import com.dingtalk.api.response.OapiRobotSendResponse;

public void sendMarkdownMessage(String webhook, String title, String markdownContent) throws Exception {
    DingTalkClient client = new DefaultDingTalkClient(webhook);
    OapiRobotSendRequest request = new OapiRobotSendRequest();
    request.setMsgtype("markdown");

    OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown();
    markdown.setTitle(title);
    markdown.setText(markdownContent);
    request.setMarkdown(markdown);

    OapiRobotSendResponse response = client.execute(request);
    System.out.println("Response: " + response.getBody());
}
  • 参数说明
    • webhook:钉钉机器人提供的Webhook地址。
    • title:消息标题。
    • markdownContent:Markdown格式的消息正文。

3. 注意事项与限制

  • Markdown支持范围

    • 钉钉支持Markdown格式的消息,但不支持所有Markdown语法。例如,表格渲染可能受限。
    • 如果需要更复杂的表格展示,建议使用HTML转Markdown工具进行转换。
  • 频率限制

    • 每个机器人每分钟最多发送20条消息。如果超出限制,可能会触发限流机制(持续10分钟)。
    • 解决方法:对于高频消息场景,可以整合多条消息为一条摘要消息发送。
  • 移动端兼容性

    • 钉钉移动端不支持表格展示,因此在设计消息内容时需注意兼容性问题。

4. 完整依赖项

确保项目中包含以下依赖项以支持钉钉消息发送功能:

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>alibaba-dingtalk-service-sdk</artifactId>
  <version>2.0.0</version>
</dependency>
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>fastjson</artifactId>
  <version>1.2.68.noneautotype</version>
</dependency>

5. 测试与验证

  • 使用Postman或其他HTTP工具测试Webhook接口,确保消息能够成功发送。
  • 在钉钉群中查看消息展示效果,确认Markdown格式是否符合预期。

通过以上步骤,您可以成功在钉钉会话中发送并展示Markdown消息。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答标签: