【企业微信群通知】markdown格式使用指南
评论
收藏

【企业微信群通知】markdown格式使用指南

经验分享
图图
2025-09-19 10:08·浏览量:3344
图图
发布于 2025-09-19 10:083344浏览

   开发者在使用【企业微信群通知】这个指令时,很多情况下想要使用markdown格式来发送消息。经常会碰到为什么指令内写的是markdown格式的文本,发送出来的格式不按预期显示的问题。本文将讲述【企业微信群通知】这个指令所支持的markdown格式,帮助大家从0开始玩转企微的markdown格式。

   企微官方的api接口提供两种markdown格式,一种是markdown类型,另一种是markdown_v2类型。现在就让我们了解两种markdown格式目前支持的语法吧。

一、两种类型通用的markdown语法

1.标题 (支持1至6级标题,注意#与文字中间要有空格)

# 标题一
## 标题二
### 标题三
#### 标题四
##### 标题五
###### 标题六

2.字体

*斜体*
**加粗**

3.链接

[这是一个链接](https://work.weixin.qq.com/api/doc)

4.行内代码段(暂不支持跨行)

`code`

5.引用

> 引用文字

二、仅markdown类型支持的语法:

1.字体颜色(只支持3种内置颜色)

<font color="info">绿色</font>
<font color="comment">灰色</font>
<font color="warning">橙红色</font>

2.艾特人(PS:只支持单独艾特某个人,不支持艾特全员,且需要企微的管理员才能获取userid)

<@userid>

三、仅markdown_v2类型支持的语法

1.列表

- 无序列表 1
- 无序列表 2
 - 无序列表 2.1
 - 无序列表 2.2
1. 有序列表 1
2. 有序列表 2

2.引用

>一级引用
>>二级引用
>>>三级引用

3.图片

![这是一个图片](https://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png)

4.分割线


---

5.表格

| 姓名 | 文化衫尺寸 | 收货地址 |
| :----- | :----: | -------: |
| 张三 | S | 广州 |
| 李四 | L | 深圳 |

   很遗憾,目前【企业微信群通知】这个指令只支持markdown类型的语法,不支持markdowb_v2。但是我们可以通过代码来发送markdown_v2类型的消息

四、发送markdown_v2类型的代码

# 使用提醒:
# 1. xbot包提供软件自动化、数据表格、Excel、日志、AI等功能
# 2. package包提供访问当前应用数据的功能,如获取元素、访问全局变量、获取资源文件等功能
# 3. 当此模块作为流程独立运行时执行main函数
# 4. 可视化流程中可以通过"调用模块"的指令使用此模块

import xbot
from xbot import print, sleep
from .import package
from .package import variables as glv
import requests
import json
from xbot import print, sleep

def main(params):
    """xbot模块的主函数,用于发送企业微信Markdown v2消息"""
    try:
        # 从xbot参数中获取输入值
        webhook_url = getattr(params, 'webhook_url',"机器人url")
        message_type = getattr(params, 'message_type',"demo")
        custom_content = getattr(params, 'custom_content', "")
        
        print(f"开始发送 {message_type} 类型消息(Markdown v2)...")
        
        # 发送消息
        sender = WeChatMarkdownV2Sender(webhook_url)
        
        if message_type == "demo":
            result = sender.send_demo_message()
        elif message_type == "custom" and custom_content:
            result = sender.send_custom_message(custom_content)
        else:
            print("错误:未知的消息类型或缺少自定义内容")
            return False
        
        return result
        
    except Exception as e:
        print(f"发送消息时发生错误: {str(e)}")
        return False

class WeChatMarkdownV2Sender:
    def __init__(self, webhook_url):
        self.webhook_url = webhook_url
    
    def send_demo_message(self):
        """发送Markdown v2演示消息"""
        content = """
需要发送的消息
"""
        
        print("发送Markdown v2演示消息")
        return self._send_markdown_v2_message(content)
    
    def send_custom_message(self, content):
        """发送自定义Markdown v2消息"""
        print("发送自定义Markdown v2消息")
        return self._send_markdown_v2_message(content)
    
    def _send_markdown_v2_message(self, content):
        """发送Markdown v2消息到企业微信"""
        send_data = {
            "msgtype": "markdown_v2",
            "markdown_v2": {
                "content": content
            }
        }
        
        headers = {"Content-Type": "application/json"}
        
        try:
            response = requests.post(
                url=self.webhook_url, 
                headers=headers, 
                data=json.dumps(send_data, ensure_ascii=False).encode('utf-8'),
                timeout=10
            )
            result = response.json()
            
            if result.get("errcode") == 0:
                print("✅ Markdown v2消息发送成功!")
                return True
            else:
                print(f"❌ Markdown v2消息发送失败: {result.get('errmsg')}")
                return False
                
        except Exception as e:
            print(f"❌ 发送请求时出错: {str(e)}")
            return False
# 独立运行时的测试代码
if __name__ == "__main__":
    class TestParams:
        def __init__(self):
            self.webhook_url = "机器人url"
            self.message_type = "demo"
    
    print("开始测试企业微信Markdown v2消息发送...")
    test_params = TestParams()
    result = main(test_params)
    print(f"测试结果: {'成功' if result else '失败'}")
    参数说明:
    
参数名类型必填默认值可选值说明示例
webhook_url字符串任何有效的企业微信webhook URL企业微信机器人的Webhook地址https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY
message_type字符串"demo""demo", "custom"消息类型选择"demo" 或 "custom"
custom_content字符串条件必填空字符串任何有效的Markdown v2内容当message_type为"custom"时必填,用于发送自定义内容"# 标题\n**加粗文字**\n[链接](https://example.com)"
注意事项:
事项说明
内容长度消息内容限制为4096字节
超时时间请求超时时间为10秒
语法规范需使用企业微信支持的Markdown v2语法

   另外,企业微信官方限制:每条消息只能选择一种格式类型,无法同时发送markdown和markdown_v2格式。必须在单条消息中统一使用一种格式哦。

收藏8
全部评论1
最新
发布评论
评论