企业微信消息技能。提供会话列表查询、消息记录拉取(支持文本/图片/文件/语音/视频)、多媒体文件获取和文本消息发送能力。当用户需要"查看消息"、"看聊天记录"、"发消息给某人"、"最近有什么消息"、"给群里发消息"、"看看发了什么图片/文件"时触发。
wecom-cli是企业微信提供的命令行程序,所有操作通过执行wecom-cli命令完成。
通过 wecom-cli msg <接口名> '<json入参>' 与企业微信消息系统交互。
wecom-cli msg get_msg_chat_list '{"begin_time": "2026-03-11 00:00:00", "end_time": "2026-03-17 23:59:59"}'
按时间范围查询有消息的会话列表,支持分页。参见 API 详情。
wecom-cli msg get_message '{"chat_type": 1, "chatid": "zhangsan", "begin_time": "2026-03-17 09:00:00", "end_time": "2026-03-17 18:00:00"}'
根据会话类型和 ID 拉取指定时间范围内的消息记录,支持分页。支持 text/image/file/voice/video 消息类型,仅支持 7 天内。参见 API 详情。
wecom-cli msg get_msg_media '{"media_id": "MEDIAID_xxxxxx"}'
根据文件 ID 自动下载文件到本地,返回文件的本地路径(local_path)、名称、类型、大小及 MIME 类型。用于获取图片、文件、语音、视频等非文本消息的实际内容。参见 API 详情。
wecom-cli msg send_message '{"chat_type": 1, "chatid": "zhangsan", "msgtype": "text", "text": {"content": "hello world"}}'
向单聊或群聊发送文本消息。参见 API 详情。
YYYY-MM-DD HH:mm:ss 格式get_msg_chat_list 获取会话列表(时间范围与目标查询一致)chats 中按 chat_name 匹配get_msg_chat_list 返回中不含会话类型字段,需根据上下文推断:用户明确提到「群」时使用 chat_type=2,否则默认 chat_type=1(单聊)流程:
wecomcli-contact 技能的 get_userlist 获取用户列表以下步骤在涉及非文本消息下载时必须逐一执行,不得合并、省略或跳过,即使用户未主动询问也必须执行:
用户query示例:
执行流程:
get_msg_chat_list 获取会话列表has_more 为 true,告知用户还有更多会话可继续查看用户query示例:
执行流程:
chatid 和 chat_typeget_message 拉取消息列表wecomcli-contact 技能的 get_userlist 获取通讯录,建立 userid→姓名 映射msgtype 非 text 的消息(image/file/voice/video)数量和类型userid 替换为可读姓名,格式:
姓名 [时间]: 内容姓名 [时间]:[图片]姓名 [时间]:[文件] 文件名称姓名 [时间]:[语音] 语音内容姓名 [时间]:[视频]get_msg_media 接口,接口会自动下载文件并返回 local_pathlocal_path 对应的文件是否具有正确的后缀名:
get_msg_media 返回的 content_type(MIME 类型)和 name 字段判断:
screenshot 而非 screenshot.png),根据 content_type 自动补上正确后缀(如 image/png → .png,application/pdf → .pdf,audio/amr → .amr,video/mp4 → .mp4)content_type 不一致,以 content_type 为准进行修正MEDIA: 指令:这些文件是从聊天记录中下载的历史附件,仅需告知用户本地存放路径即可,严禁通过 MEDIA: 指令重新发送给用户📁 文件已下载到以下位置:
- 图片:
xxx/yyy.png- 文件:
xxx/yyy.pdf你可以在
xxx/yyy/目录下找到所有下载的文件。
local_path 对应的文件next_cursor 不为空,告知用户还有更多消息可继续查看用户query示例:
执行流程:
chatid 和 chat_typesend_message 发送(msgtype 固定为 text)用户query示例:
执行流程:
chatid 和 chat_type)