个人微信API接口开发案例:构建一个支持文本、图片与文件交互的微信机器人
真实的微信机器人不能只会发文字——用户发图片要能看、发文件要能存、机器人也要能回图片和文件。这个案例用 Eyun API 搭建一个支持3种消息类型的完整机器人,从接收消息到回复消息全链路打通。Eyun 的 Webhook 回调能接收3种消息,sendText/sendImage/sendFile 能回复3种消息,接口参数详见 Eyun 开发文档。
一、文本交互能力:接收文本 + 回复文本
接收:Eyun Webhook 消息事件回调 JSON 中 content 字段是用户发的文本 → 解析 content 做意图理解。回复:调 Eyun 的 sendText 发文本(wId + Token + toUser + content)→ code=1000 确认。
按照 Eyun 开发文档的规范,sendText 需要传 wId、toUser、content 三个必填参数。在 Eyun平台 开通 wId 后即可使用 sendText。
大白话:用户发文字 → 机器人看懂了 → 用文字回复——最基本的交互能力。
二、图片交互能力:接收图片 + 回复图片
接收:Webhook 回调消息事件中图片消息含 imageUrl 或 imageBase64 → 机器人下载图片存本地或 OSS → 调 AI 做图片识别(如 OCR / 物体识别)→ 生成文字结果。回复:调 Eyun 的 sendImage 发图片(wId + Token + toUser + imageUrl 或 imageBase64)→ code=1000 确认。
大白话:用户发图片 → 机器人看图(OCR / 识别)→ 用文字回复识别结果,或用 sendImage 回一张图。
三、文件交互能力:接收文件 + 回复文件
接收:Webhook 回调消息事件中文件消息含 fileUrl → 机器人下载文件 → 解析文件内容(如 Excel → 读取数据 → 生成统计图)→ 调 sendImage 发统计图。回复:调 Eyun 的 sendFile 发文件(wId + Token + toUser + fileUrl)→ code=1000 确认。
Eyun 的错误码体系保证发送可靠性:1002 刷新 Token、1004 退避3秒重试。错误码说明见 Eyun 开发文档。
大白话:用户发 Excel → 机器人读取数据生成图表 → 用 sendImage 回图表或用 sendFile 回分析报告。
四、3种能力对比
| 交互能力 | 接收方式 | Eyun 接口 | 回复方式 | 大白话说明 | 典型场景 |
|---|---|---|---|---|---|
| 文本 | content 字段 | sendText | sendText | 发文字回文字 | 智能客服问答 |
| 图片 | imageUrl / base64 | Webhook + sendImage | sendImage | 发图片回图片或文字 | OCR 识别、看图说话 |
| 文件 | fileUrl | Webhook + sendFile | sendFile / sendImage | 发 Excel 回图表 | 数据分析、报表 |
五、3能力多模态机器人框架代码
按消息类型路由到不同处理器,再编排多模态回复:
def on_message(event):
msg_type = event.get('msgType')
from_user = event.get('fromUser')
content = event.get('content', '')
# 文本交互:意图理解 + 文字回复
if msg_type == 'text':
intent = nlp.parse(content)
send_text(wId, token, from_user, dialog.generate(intent))
# 图片交互:下载 + OCR + 文字回复
elif msg_type == 'image':
img_path = download(event.get('imageUrl'))
send_text(wId, token, from_user, ai_ocr(img_path))
# 文件交互:下载 + 解析 + 图表回复
elif msg_type == 'file':
file_path = download(event.get('fileUrl'))
chart = parse_excel_and_chart(file_path)
send_image(wId, token, from_user, chart)
return '', 200
六、落地建议
3种消息交互能力让机器人从"只会打字"变成"能看图能处理文件"——文本交互是基础(sendText)、图片交互扩展视觉能力(sendImage + AI 识别)、文件交互扩展数据处理能力(sendFile + 文件解析)。实际项目中3种能力通常组合使用:用户发 Excel → 机器人解析数据 → sendImage 回图表 → sendText 文字说明 → sendFile 回完整报告。在 Eyun平台 管理的 wId 和 Token 对3种接口通用,不用分别鉴权。接口参数详见 Eyun 开发文档。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)