원클릭으로
aibot-send-message
主动发送 Markdown 消息(无需用户先发消息)。当用户说"主动推送 / 主动发 / 定时通知 / sendMessage / Markdown" 时使用。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
主动发送 Markdown 消息(无需用户先发消息)。当用户说"主动推送 / 主动发 / 定时通知 / sendMessage / Markdown" 时使用。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
环境与机器人接入(凭证、.env、长连接启动)。当用户问"怎么跑 aibot-python-sdk / 怎么接入 / 配置 .env / 连接失败"时使用。
接收并处理来自企业微信的消息(text/image/file/video/voice/mixed)与事件(enter_chat/template_card/feedback)。当用户说"接收消息 / 监听机器人 / 收到消息 / 事件回调 / reply / reply_stream" 时使用。
发送"按钮交互"模板卡片(`button_interaction`),含按钮点击回调与卡片更新。当用户说"按钮卡片 / 确认卡片 / 审批 / 投票 / button_interaction / template_card_event" 时使用。
分片上传临时素材 + 主动发送媒体(file/image/voice/video)。当用户说"发文件 / 发图片 / 上传素材 / uploadMedia / sendMediaMessage" 时使用。
发送"文本通知"模板卡片(`text_notice`)。当用户说"发个通知 / 卡片 / 系统公告 / text_notice / notification card" 时使用。
| name | aibot-send-message |
| description | 主动发送 Markdown 消息(无需用户先发消息)。当用户说"主动推送 / 主动发 / 定时通知 / sendMessage / Markdown" 时使用。 |
主动向指定会话推送 Markdown 文本。
目标:userid(单聊) 或 chatid(群聊)。
import asyncio, os
from dotenv import load_dotenv
from wecom_aibot import WSClient
from wecom_aibot.types import WSClientOptions, SendMarkdownMsgBody
load_dotenv()
async def main():
client = WSClient(WSClientOptions(
bot_id=os.getenv("WECOM_BOT_ID"),
secret=os.getenv("WECOM_BOT_SECRET"),
))
auth = asyncio.Event()
@client.on("authenticated")
def on_auth(): auth.set()
client.connect()
await asyncio.wait_for(auth.wait(), timeout=10)
await asyncio.sleep(1) # 等连接稳定
chatid = os.getenv("WECOM_TARGET_CHATID") # 或 userid
body = SendMarkdownMsgBody.create(
"## 标题\n\n**加粗**、- 列表、`代码` 都支持。"
)
result = await client.send_message(chatid, body)
print(f"errcode={result.errcode}")
await client.disconnect()
asyncio.run(main())
| 语法 | 支持 |
|---|---|
# / ## / ### 标题 | ✅ |
**粗体**、*斜体* | ✅ |
- / 1. 列表 | ✅ |
`code`、```block``` | ✅ |
[link](url) | 部分支持(企业微信) |
<font color="info"> | 颜色标签 |
限制:最长 20480 字节。超出需截断或改用流式回复。
for delay, text in [(0, "第一条"), (2, "第二条")]:
await asyncio.sleep(delay)
await client.send_message(chatid, SendMarkdownMsgBody.create(text))
# WsFrame 字段:
# errcode: 0 = 成功;93006 = invalid chatid;93000 系列 = 参数错
# errmsg: 人类可读
disconnect,否则下一次还得重连认证。send_message,偶尔会因服务端鉴权未就绪失败,等 1 秒更稳。