向企业微信发送消息

Polar Sponsor
爱发电 赞助
.NET 9.0

严格按照企业微信文档规范,支持文本、markdown、markdown_v2、图片、图文等多种消息类型的发送技能。

qywx-send-skill

功能概述

qywx-send-skill是一项面向实际任务的技能,主要用于这个技能严格按照企业微信文档规范,支持以下消息类型:;✅ 文本类型 (text) - 支持超长内容自动分片;

核心要点

  • ✅ markdown类型 (markdown) - 支持超长内容自动分片;
  • ✅ markdown_v2类型 (markdown_v2) - 支持超长内容自动分片;
  • ✅ 图片类型 (image);

使用与执行

✅ 图文类型 (news);注意 : 本技能专注于消息发。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

qywx-send-skill

功能概述

这个技能严格按照企业微信文档规范,支持以下消息类型:

  • ✅ 文本类型 (text) - 支持超长内容自动分片
  • ✅ markdown类型 (markdown) - 支持超长内容自动分片
  • ✅ markdown_v2类型 (markdown_v2) - 支持超长内容自动分片
  • ✅ 图片类型 (image)
  • ✅ 图文类型 (news)

注意: 本技能专注于消息发送功能,不包含告警消息和每日报告的发送功能。

新增功能:超长内容分片发送

  • ✅ 自动分片: 当text、markdown、markdown_v2类型的消息内容超过企业微信限制时,自动拆分成多个消息发送
  • ✅ 分片标记: 每个分片消息都包含分片编号信息,便于接收方识别
  • ✅ 完整性保证: 确保长消息的完整传递,避免内容截断

使用方法

1. 发送文本消息

使用qywx-send-skill发送文本消息 [消息内容]

超长内容处理: 当内容超过2048字节时,会自动分片发送

2. 发送markdown消息

使用qywx-send-skill发送markdown消息 [消息内容]

超长内容处理: 当内容超过4096字节时,会自动分片发送

3. 发送markdown_v2消息

使用qywx-send-skill发送markdown_v2消息 [消息内容]

超长内容处理: 当内容超过4096字节时,会自动分片发送

4. 发送图片消息

使用qywx-send-skill发送图片消息 [图片路径或URL]

5. 发送图文消息

使用qywx-send-skill发送图文消息 [标题] [描述] [图片URL] [跳转URL]

6. 指定自定义Webhook

使用qywx-send-skill发送[消息类型] [消息内容],Webhook地址: [your-webhook-url]

配置参数

Webhook地址

  • 默认Webhook: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=you-key
  • 自定义Webhook: 支持用户指定自定义的企业微信Webhook地址

消息格式规范

1. 文本消息 (text)

{
    "msgtype": "text",
    "text": {
        "content": "消息内容",
        "mentioned_list": ["@all"],
        "mentioned_mobile_list": ["@all"]
    }
}

字段说明:

  • content: 消息内容,最长2048字节
  • mentioned_list: 需要@的成员,["@all"]表示@所有人
  • mentioned_mobile_list: 需要@的成员手机号

2. markdown消息 (markdown)

{
    "msgtype": "markdown",
    "markdown": {
        "content": "**标题**nn内容"
    }
}

字段说明:

  • content: Markdown格式内容,最长4096字节

支持的Markdown语法:

  • 标题: # 标题
  • 加粗: **加粗**
  • 斜体: *斜体*
  • 链接: [链接](url)
  • 列表: - 列表项
  • 引用: > 引用内容

3. markdown_v2消息 (markdown_v2)

{
    "msgtype": "markdown_v2",
    "markdown_v2": {
        "content": "**标题**nn内容",
        "template_id": "template_id",
        "template_data": {
            "key1": "value1",
            "key2": "value2"
        }
    }
}

字段说明:

  • content: Markdown V2格式内容
  • template_id: 模板ID(可选)
  • template_data: 模板数据(可选)

4. 图片消息 (image)

{
    "msgtype": "image",
    "image": {
        "base64": "base64编码的图片内容",
        "md5": "图片的MD5值"
    }
}

字段说明:

  • base64: 图片的base64编码
  • md5: 图片的MD5值

5. 图文消息 (news)

{
    "msgtype": "news",
    "news": {
        "articles": [
            {
                "title": "标题",
                "description": "描述",
                "url": "跳转链接",
                "picurl": "图片链接"
            }
        ]
    }
}

字段说明:

  • articles: 图文消息列表
  • title: 标题,最长128字节
  • description: 描述,最长512字节
  • url: 跳转链接
  • picurl: 图片链接

使用示例

示例1: 发送简单文本消息

使用qywx-send-skill发送文本消息 服务器监控:CPU使用率正常

示例2: 发送Markdown消息

使用qywx-send-skill发送markdown消息 **📊 系统状态**nn- CPU使用率:65%n- 内存使用率:72%n- 磁盘使用率:45%

示例3: 发送长文本消息(自动分片)

使用qywx-send-skill发送文本消息 [超过2048字节的长文本内容]

处理: 自动拆分成多个消息发送,每个分片包含分片编号

示例4: 发送长Markdown消息(自动分片)

使用qywx-send-skill发送markdown消息 **📊 长报告**nn[超过4096字节的详细内容]

处理: 自动拆分成多个消息发送,每个分片包含分片编号

示例5: 发送图片消息

使用qywx-send-skill发送图片消息 /path/to/image.png

示例6: 发送图文消息

使用qywx-send-skill发送图文消息 "系统更新通知" "系统将于今晚进行更新维护" "https://example.com/image.png" "https://example.com/detail"

示例7: 使用自定义Webhook

使用qywx-send-skill发送文本消息 测试消息,Webhook地址: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=your-key

Python脚本调用

from skills.qywx_send_skill.scripts.send_message import send_wechat_message

# 发送文本消息
result = send_wechat_message("服务器监控:CPU使用率正常", msg_type="text")
print(result)

# 发送markdown消息
markdown_content = "**📊 系统状态**nn- CPU使用率:65%n- 内存使用率:72%"
result = send_wechat_message(markdown_content, msg_type="markdown")
print(result)

# 发送长文本消息(自动分片)
long_text = "长文本内容..." * 1000  # 超过2048字节
result = send_wechat_message(long_text, msg_type="text")
print(f"分片发送结果: {result.get('chunk_count', 1)}片")

# 发送长Markdown消息(自动分片)
long_markdown = "**📊 长报告**nn" + "详细内容..." * 1000  # 超过4096字节
result = send_wechat_message(long_markdown, msg_type="markdown")
print(f"分片发送结果: {result.get('chunk_count', 1)}片")

# 发送图片消息
result = send_wechat_message("/path/to/image.png", msg_type="image")
print(result)

# 发送图文消息
articles = [
    {
        "title": "系统更新通知",
        "description": "系统将于今晚进行更新维护",
        "url": "https://example.com/detail",
        "picurl": "https://example.com/image.png"
    }
]
result = send_wechat_message(articles, msg_type="news")
print(result)

# 使用自定义Webhook
result = send_wechat_message("测试消息", msg_type="text", webhook_url="https://your-webhook-url")
print(result)

# 禁用分片发送(强制单条发送,可能失败)
result = send_wechat_message(long_text, msg_type="text", enable_chunking=False)
print(result)

返回结果

成功响应

{
    "errcode": 0,
    "errmsg": "ok"
}

错误响应

{
    "errcode": 40014,
    "errmsg": "invalid webhook"
}

错误处理

常见错误码

  • 40014: Webhook地址无效
  • 40015: 消息内容格式错误
  • 40016: 消息长度超过限制
  • 40017: 接口调用频率限制
  • 40018: 接口频率限制
  • 40019: 机器人不存在
  • 40020: 机器人已禁用

错误处理建议

  1. 检查Webhook地址是否正确
  2. 验证消息格式是否符合要求
  3. 控制消息发送频率
  4. 检查企业微信应用配置

技术实现

依赖库

  • urllib.request: HTTP请求发送
  • json: 数据格式处理
  • ssl: HTTPS连接支持
  • base64: 图片编码处理
  • hashlib: MD5计算

发送流程

  1. 构造消息数据
  2. 设置HTTP请求头
  3. 发送POST请求
  4. 处理响应结果

最佳实践

消息内容优化

  1. 简洁明了: 控制消息长度,突出重点
  2. 格式规范: 使用Markdown增强可读性
  3. 定期发送: 避免频繁发送相同内容
  4. 分类发送: 按重要性分级发送

Webhook管理

  1. 统一管理: 集中管理Webhook地址
  2. 权限控制: 限制Webhook使用权限
  3. 监控告警: 监控Webhook调用状态
  4. 备份机制: 准备备用Webhook地址

注意事项

消息限制

  • 文本消息: 最长2048字节
  • Markdown消息: 最长4096字节
  • Markdown V2消息: 最长4096字节
  • 图片消息: 支持JPG、PNG格式,最大10MB
  • 图文消息: 最多8条图文
  • 发送频率: 每分钟不超过20条

安全性

  • Webhook保密: 不要泄露Webhook地址
  • 内容验证: 验证发送的消息内容
  • 权限控制: 限制消息发送权限
  • 日志审计: 记录所有发送记录

参考文档

  • 企业微信开发文档
  • Webhook发送消息API
  • 消息类型说明

相关专题

更多
微信调黑色模式教程
微信调黑色模式教程

本专题整合了微信调黑色模式教程,阅读下面的文章了解更多详细内容。

2025.12.25

776

25

微信访客记录查看教程
微信访客记录查看教程

微信虽功能丰富,却未直接设置查看访客记录的功能,不过,仍能借助一些间接方法,来了解访客的相关情况。比如,通过朋友圈互动,查看点赞、评论者,推断访客踪迹;运营公众号的用户,可在后台统计数据中,分析访客行为。

2025.05.28

4916

10

微信怎么解除未成年认证
微信怎么解除未成年认证

若要解除微信未成年认证,您必须已满 18 周岁且认证时间已超过 30 天。具体解除步骤如下:登录微信,前往“我”页面。点击“设置”>“未成年保护”。填写真实姓名、身份证号和身份证照片。进行人脸识别。点击“解除未成年认证”,提交审核。审核通过后,解除成功,即可恢复所有微信功能。

2025.04.22

8073

12

微信对方没打电话显示忙线咋回事儿
微信对方没打电话显示忙线咋回事儿

微信显示“忙线”原因:对方正在通话;对方开启了“免打扰”模式;信号不佳;操作延迟;系统故障。

2025.03.28

3440

4

微信角标数字怎么恢复
微信角标数字怎么恢复

恢复微信角标数字的方法:1、强制退出微信,重新启动;2、清除微信缓存;3、检查微信版本更新;4、卸载并重新安装微信。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.01.16

3022

7

怎么查看微信注册时间
怎么查看微信注册时间

通过以下步骤查看微信注册时间:1. 打开微信;2. 点击“我”;3. 点击“设置”;4. 进入“账号与安全”;5. 查看“微信号”;6. 查看注册时间。想了解更多相关的内容,请阅读专题下面的文章。

2024.12.23

6200

8

微信打电话怎么不显示
微信打电话怎么不显示

微信电话不显示的原因可能是:未打开通话显示设定。运营商限制。对方设定了拒接陌生来电。技术问题。隐私保护导致来电号码隐藏,需对方主动选择显示。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.12.10

3575

6

手动删除的微信聊天记录怎么找回
手动删除的微信聊天记录怎么找回

手动删除的微信聊天记录可以通过以下方法找回:如已开启微信聊天记录备份,可通过「设置」>「聊天」>「聊天记录备份与迁移」恢复。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.12.02

1474

6

微信个人主页上怎么显示电话
微信个人主页上怎么显示电话

您可以通过以下步骤在微信个人主页上显示您的电话号码:打开微信,转到“我”页面并点击“个人资料”;在“个人资料”页面,点击“联系方式”;添加您的电话号码并点击“保存”;返回个人资料页面,您的电话号码将显示在联系方式中。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.11.28

2014

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Codebuddy 插件
Codebuddy 插件

共0课时 | 0人学习

秒哒微信小程序发布
秒哒微信小程序发布

共0课时 | 0人学习

腾讯元宝使用手册
腾讯元宝使用手册

共0课时 | 0人学习