install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/wecom-bot" ~/.claude/skills/diegosouzapw-awesome-omni-skill-wecom-bot && rm -rf "$T"
manifest:
skills/development/wecom-bot/SKILL.mdsource content
企业微信群机器人
通过 Webhook 向企业微信群推送消息,支持文本、Markdown、图片、图文、文件、模板卡片等多种消息类型。
文档来源:https://developer.work.weixin.qq.com/document/path/99398
⚠️ 重要提示
使用前提
- 需要先在企业微信群中添加群机器人,获取 Webhook 地址
- Webhook 地址格式:
https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY - 每个机器人的
是唯一的,请妥善保管key
消息限制
- 每个机器人发送的消息不能超过 20 条/分钟
- 文本消息最长 2048 字节
- 图片大小不超过 2MB
- Markdown 不支持 @提及用户
Setup 配置
1. 创建群机器人
- 在企业微信 PC 端或手机端,进入目标群聊
- 点击群设置 → 群机器人 → 添加机器人
- 设置机器人名称和头像
- 复制生成的 Webhook 地址
2. 存储凭证
凭证配置支持以下方式(按优先级排序):
方式一:环境变量(最高优先级)
export WECOM_BOT_WEBHOOK="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY"
方式二:clawdbot 配置文件(推荐)
在
~/.clawdbot/clawdbot.json 中配置:
{ "skills": { "entries": { "wecom-bot": { "env": { "WECOM_BOT_WEBHOOK": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY" } } } } }
方式三:多机器人配置
如果需要向多个群发送消息,可以配置多个 Webhook:
{ "skills": { "entries": { "wecom-bot": { "env": { "WECOM_BOT_WEBHOOK": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=DEFAULT_KEY", "WECOM_BOT_WEBHOOK_ALERT": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=ALERT_KEY", "WECOM_BOT_WEBHOOK_DAILY": "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=DAILY_KEY" } } } } }
安全提示:Webhook 地址包含 key,泄露后可被他人恶意调用,请妥善保管
消息类型
1. 文本消息
最基础的消息类型,支持 @提及群成员。
请求示例:
curl -X POST "$WECOM_BOT_WEBHOOK" \ -H "Content-Type: application/json" \ -d '{ "msgtype": "text", "text": { "content": "Hello, 这是一条测试消息" } }'
@提及用户:
curl -X POST "$WECOM_BOT_WEBHOOK" \ -H "Content-Type: application/json" \ -d '{ "msgtype": "text", "text": { "content": "请查看今日报告", "mentioned_list": ["userid1", "userid2", "@all"], "mentioned_mobile_list": ["13800138000"] } }'
参数说明:
| 参数 | 必填 | 说明 |
|---|---|---|
| content | 是 | 文本内容,最长 2048 字节 |
| mentioned_list | 否 | userid 列表, 表示提醒所有人 |
| mentioned_mobile_list | 否 | 手机号列表,提醒群中的指定成员 |
2. Markdown 消息
支持 Markdown 格式的富文本消息。
请求示例:
curl -X POST "$WECOM_BOT_WEBHOOK" \ -H "Content-Type: application/json" \ -d '{ "msgtype": "markdown", "markdown": { "content": "# 今日 AI 论文速递\n\n**新增论文**:<font color=\"info\">12 篇</font>\n\n> 重点关注:GPT-5 架构分析\n\n[点击查看详情](https://example.com)" } }'
支持的 Markdown 语法:
- 标题:
# 一级标题
...## 二级标题###### 六级标题 - 加粗:
**粗体** - 链接:
[链接文字](URL) - 引用:
> 引用内容 - 字体颜色:
<font color="info">绿色</font><font color="comment">灰色</font><font color="warning">橙红色</font>
⚠️ 注意:Markdown 消息不支持 @提及用户
3. 图片消息
发送图片(需 base64 编码)。
请求示例:
# 先将图片转为 base64 IMAGE_BASE64=$(base64 -i image.png) IMAGE_MD5=$(md5 -q image.png) # macOS # IMAGE_MD5=$(md5sum image.png | cut -d ' ' -f1) # Linux curl -X POST "$WECOM_BOT_WEBHOOK" \ -H "Content-Type: application/json" \ -d "{ \"msgtype\": \"image\", \"image\": { \"base64\": \"$IMAGE_BASE64\", \"md5\": \"$IMAGE_MD5\" } }"
参数说明:
| 参数 | 必填 | 说明 |
|---|---|---|
| base64 | 是 | 图片内容的 base64 编码 |
| md5 | 是 | 图片内容的 MD5 值 |
限制:图片大小不超过 2MB,支持 JPG、PNG 格式
4. 图文消息
类似公众号图文链接,支持点击跳转。
请求示例:
curl -X POST "$WECOM_BOT_WEBHOOK" \ -H "Content-Type: application/json" \ -d '{ "msgtype": "news", "news": { "articles": [ { "title": "今日 AI 论文精选", "description": "GPT-5 架构深度解析,附完整技术分析", "url": "https://example.com/article/1", "picurl": "https://example.com/images/cover.png" } ] } }'
多条图文:
curl -X POST "$WECOM_BOT_WEBHOOK" \ -H "Content-Type: application/json" \ -d '{ "msgtype": "news", "news": { "articles": [ { "title": "论文一:Scaling Law 新发现", "description": "MIT 最新研究揭示大模型训练规律", "url": "https://example.com/1", "picurl": "https://example.com/1.png" }, { "title": "论文二:多模态融合新方法", "description": "Google DeepMind 发布新架构", "url": "https://example.com/2", "picurl": "https://example.com/2.png" } ] } }'
参数说明:
| 参数 | 必填 | 说明 |
|---|---|---|
| title | 是 | 标题,不超过 128 字节 |
| description | 否 | 描述,不超过 512 字节 |
| url | 是 | 点击后跳转的链接 |
| picurl | 否 | 图文消息的图片链接,支持 JPG、PNG |
限制:支持 1-8 条图文
5. 文件消息
发送文件(需先上传获取 media_id)。
Step 1:上传文件
curl -X POST "https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=YOUR_KEY&type=file" \ -F "media=@report.pdf"
返回示例:
{ "errcode": 0, "errmsg": "ok", "type": "file", "media_id": "3a8asd892asd8asd", "created_at": "1380000000" }
Step 2:发送文件
curl -X POST "$WECOM_BOT_WEBHOOK" \ -H "Content-Type: application/json" \ -d '{ "msgtype": "file", "file": { "media_id": "3a8asd892asd8asd" } }'
限制:文件大小不超过 20MB
6. 模板卡片消息
更丰富的交互卡片,支持多种布局。
文本通知型卡片:
curl -X POST "$WECOM_BOT_WEBHOOK" \ -H "Content-Type: application/json" \ -d '{ "msgtype": "template_card", "template_card": { "card_type": "text_notice", "source": { "desc": "AI 论文助手", "desc_color": 0 }, "main_title": { "title": "今日论文速递", "desc": "2025年1月31日" }, "emphasis_content": { "title": "12", "desc": "篇新论文" }, "sub_title_text": "涵盖 NLP、CV、多模态等领域", "horizontal_content_list": [ {"keyname": "重点领域", "value": "大语言模型"}, {"keyname": "来源", "value": "arXiv"} ], "jump_list": [ { "type": 1, "url": "https://example.com/papers", "title": "查看详情" } ], "card_action": { "type": 1, "url": "https://example.com/papers" } } }'
卡片类型:
| card_type | 说明 |
|---|---|
| text_notice | 文本通知型 |
| news_notice | 图文展示型 |
| button_interaction | 按钮交互型 |
| vote_interaction | 投票选择型 |
返回结果
成功:
{ "errcode": 0, "errmsg": "ok" }
常见错误码:
| errcode | 说明 | 解决方案 |
|---|---|---|
| 0 | 成功 | - |
| 93000 | Webhook key 不正确 | 检查 Webhook URL 中的 key |
| 93004 | 机器人被移出群 | 重新添加机器人到群 |
| 93008 | 不合法的消息类型 | 检查 msgtype 参数 |
| 93017 | 参数错误 | 检查请求体格式 |
| 45033 | 消息发送频率超限 | 降低发送频率(上限 20 条/分钟) |
常用场景示例
场景一:定时发送日报
# 每天早上 9 点发送 AI 论文日报 curl -X POST "$WECOM_BOT_WEBHOOK" \ -H "Content-Type: application/json" \ -d '{ "msgtype": "markdown", "markdown": { "content": "# 📚 AI 论文日报\n\n**日期**:2025-01-31\n\n## 今日精选\n\n1. **GPT-5 架构分析** - OpenAI\n > 揭示下一代大模型的技术路线\n\n2. **多模态推理新范式** - Google\n > 图文联合推理效果提升 30%\n\n[点击查看完整报告](https://example.com)" } }'
场景二:监控告警
# 服务异常时发送告警 curl -X POST "$WECOM_BOT_WEBHOOK" \ -H "Content-Type: application/json" \ -d '{ "msgtype": "text", "text": { "content": "⚠️ 服务告警\n\n服务名:API Gateway\n状态:响应超时\n时间:2025-01-31 14:30:00\n\n请相关同事尽快处理!", "mentioned_list": ["@all"] } }'
场景三:竞品动态推送
curl -X POST "$WECOM_BOT_WEBHOOK" \ -H "Content-Type: application/json" \ -d '{ "msgtype": "news", "news": { "articles": [ { "title": "🔍 竞品动态:XX 产品发布新版本", "description": "新增 AI 助手功能,支持智能问答和自动摘要", "url": "https://example.com/competitor-update", "picurl": "https://example.com/competitor.png" } ] } }'
一键发送脚本
创建便捷脚本,快速发送消息:
cat > ~/.config/wecom-bot/send.sh << 'EOF' #!/bin/bash # 企业微信群机器人消息发送脚本 # 用法: send.sh "消息内容" [markdown|text] WEBHOOK="${WECOM_BOT_WEBHOOK}" CONTENT="$1" TYPE="${2:-text}" if [ -z "$WEBHOOK" ]; then echo "错误: 未配置 WECOM_BOT_WEBHOOK 环境变量" exit 1 fi if [ -z "$CONTENT" ]; then echo "用法: $0 \"消息内容\" [markdown|text]" exit 1 fi if [ "$TYPE" = "markdown" ]; then curl -s -X POST "$WEBHOOK" \ -H "Content-Type: application/json" \ -d "{\"msgtype\":\"markdown\",\"markdown\":{\"content\":\"$CONTENT\"}}" else curl -s -X POST "$WEBHOOK" \ -H "Content-Type: application/json" \ -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"$CONTENT\"}}" fi EOF chmod +x ~/.config/wecom-bot/send.sh
使用方式:
# 发送文本 ~/.config/wecom-bot/send.sh "Hello, 这是一条测试消息" # 发送 Markdown ~/.config/wecom-bot/send.sh "# 标题\n内容" markdown
与其他工具集成
配合 Clawdbot 定时任务
# 每天早上 9 点推送 AI 日报到企微群 name: ai-daily-report schedule: "0 9 * * *" tasks: - name: 抓取论文 action: fetch_arxiv - name: AI 总结 action: summarize - name: 推送企微 action: wecom_notify webhook: $WECOM_BOT_WEBHOOK
配合乐享知识库
抓取信息 → 存入乐享 → 推送摘要到企微群,形成完整的信息流转闭环。