企业微信API开发指南:如何实现图片、文件和文本消息统一处理

发布时间:2026/10/14 6:35:19
企业微信API开发指南:如何实现图片、文件和文本消息统一处理
客户在企微里发的消息类型不固定——有时发文本问问题有时发图片截图有时发文件合同。处理代码不能每种类型写一套要统一收口。这篇讲怎么把文本、图片、文件三种消息归一化用同一套处理逻辑处理。底层用的是 Eyun 平台开放的企微 API凭证在Eyun 平台首页开通Webhook 收消息cdn/download 下载媒体。消息类型归一化三种消息体结构不同但可以抽象成统一结构dataclass class UnifiedMessage: msg_type: str # text / image / file content: str # 文本内容或媒体说明 media_id: str # 媒体ID图片/文件有文本没有 from_uin: int conversation_id: int time: int文本消息直接取 content 字段。图片消息取 mediaIdcontent 为空。文件消息取 mediaId 和 filename。归一化后处理层只面对 UnifiedMessage不用关心原始结构。消息体字段在开发文档里有完整说明。文本消息直接处理文本消息 content 不为空直接走意图识别和业务处理。def handle_text(msg: UnifiedMessage): intent classify_intent(msg.content) result process_intent(intent, msg.content, msg.from_uin) reply(msg.from_uin, result)图片消息先下载再识别图片消息要先调 cdn/download 下载图片再做 OCR 或图像识别提取文字后走文本处理逻辑。def handle_image(msg: UnifiedMessage): resp requests.post( f{BASE}/wx-api/api/cdn/download, headersHEADERS, json{appid: APPID, mediaId: msg.media_id} ) image_data resp.content text ocr(image_data) msg.content text handle_text(msg) # 复用文本处理逻辑OCR 提取文字后把 UnifiedMessage 的 content 填上直接调 handle_text 走同一套逻辑。文件消息下载后按类型解析文件消息先下载再按文件类型解析PDF、Word用文档解析库提取文字Excel用 pandas 读取单元格内容图片格式jpg/png走 OCR提取文字后同样复用 handle_text。统一处理的价值三种消息归一化后业务处理逻辑只写一套。新增消息类型比如语音只需要加一个解析函数把内容转成文字不用改业务逻辑。