个人微信二次开发入门:利用API接口打造属于自己的微信机器人
从零打造一个微信机器人,很多人卡在"先学协议还是先学框架"这种问题里。其实不用想那么多,走 5 步实操路径:开 wId → 调通 sendText → 搭回调服务 → 接回复逻辑 → 上线运行。每一步都有明确的"完成标志",做到了进下一步,没做到就卡在原位反复调试。
一、第 1 步:开 wId
在 Eyun 平台注册并开通微信实例,拿到 wId(实例标识)和 Token(鉴权凭证)。按照 Eyun 开发文档 的说明,wId 和 Token 是所有接口调用的身份凭证。完成标志:拿到 wId 和 Token。耗时:10 分钟。
大白话:先在 Eyun 平台注册,拿到"身份证"和"通行证"。
二、第 2 步:调通 sendText
用 Postman 或 curl 发第一个 sendText 请求,证明接口能通。请求体 {wId, Token, toUser, content} → POST 到 Eyun 的 sendText 接口 → 收到 {code:1000, data:{msgId}} → 打开微信,消息发出去了。按照 Eyun 开发文档的规范,sendText 需要传 wId、toUser、content 三个必填参数。完成标志:微信里收到你发的消息。耗时:30 分钟。
大白话:先发一条消息证明接口能通——就像先打个电话确认号码对不对。
三、第 3 步:搭回调服务
部署一个 Web 服务接收 Eyun 的 Webhook 回调。用 Flask 或 FastAPI 写一个 /callback 接口 → 在 Eyun 平台 配置回调地址 → Eyun 验证地址可达 → 自己发条微信消息触发回调 → 看服务器日志收到 JSON。Eyun 的 Webhook 回调覆盖 4 类事件:消息、好友、群、状态。按照 Eyun 开发文档的回调规范,5 秒内必须返回 200,否则重试 3 次。完成标志:发消息后服务器收到回调 JSON。耗时:2 小时。
大白话:搭个"接收站"让 Eyun 把用户消息推给你——就像装个门铃,有人按你就能听到。
四、第 4 步:接回复逻辑
收到回调后处理消息并回复。从回调 JSON 取 content → 关键词匹配(如收到"你好"→回复"你好!有什么可以帮你的?")→ 调 Eyun 的 sendText 回复用户。Eyun 的错误码体系保证回复可靠性:1002 Token 过期刷新、1004 限频退避 3 秒重试。前面 3 步是搭骨架,这一步是给机器人装脑子。完成标志:用户发"你好"→机器人自动回复。耗时:1-2 天。
大白话:收到消息判断该回什么→用 sendText 发回去——你的机器人"活"了。
五、第 5 步:上线运行
把服务部署到云服务器让它 7×24 小时常驻。部署到云服务器 → 配置守护进程(systemd 或 supervisor)保证挂了自动重启 → 配日志和监控 → 设告警。在 Eyun 平台管理的 wId 实例要保持在线,你的服务也要保持在线,两边都在线机器人才稳定。完成标志:7×24 小时稳定运行,用户发消息能自动回复。耗时:1 天。
大白话:把机器人放服务器上让它"常驻",随时待命回消息。
六、五步对比表
|
步骤 |
做什么 |
完成标志 |
耗时 |
关键工具 |
大白话 |
|---|---|---|---|---|---|
|
第 1 步 |
开 wId |
拿到 wId 和 Token |
10 分钟 |
Eyun 平台 |
拿身份证通行证 |
|
第 2 步 |
调通 sendText |
微信收到消息 |
30 分钟 |
Postman/curl |
打电话确认号码 |
|
第 3 步 |
搭回调服务 |
收到回调 JSON |
2 小时 |
Flask/FastAPI |
装门铃 |
|
第 4 步 |
接回复逻辑 |
自动回复 |
1-2 天 |
关键词匹配 |
机器人活了 |
|
第 5 步 |
上线运行 |
7×24 稳定 |
1 天 |
systemd/云服务器 |
常驻待命 |
七、五步机器人搭建框架
import threading, requests, time; from flask import Flask, request, jsonify
app = Flask(__name__); WID, TOKEN = 'your_wid', 'your_token' # 第1步
def send_text(to_user, content): # 第2步
r = requests.post('https://www.eyunz.com/.../sendText', json={'wId': WID, 'Token': TOKEN, 'toUser': to_user, 'content': content})
c = r.json().get('code')
if c == 1000: return True
if c == 1002: refresh_token() # Token过期
if c == 1004: time.sleep(3) # 限频退避3秒
return False
@app.route('/callback', methods=['POST']) # 第3步
def callback():
d = request.json; threading.Thread(target=handle, args=(d,)).start()
return jsonify({"code": 0}), 200 # 5秒内回200否则Eyun重试3次
def handle(data): # 第4步
send_text(data.get('fromUser', ''), keyword_match(data.get('content', '')))
# 第5步:systemd守护,ExecStart=/usr/bin/python3 bot.py Restart=always
八、结尾:基础打牢再扩展
5 步走完后你就有了一个能"收消息→处理→发回复"的基础机器人。后续可以逐步增强:第 4 步的"关键词匹配"换成"AI 理解"让机器人更聪明;加上 sendImage/sendFile 让它能发图片和文件;配置多 wId 让它管多个微信号。但基础 5 步不变——所有进阶功能都是在第 4 步"回复逻辑"上做扩展。先跑通这 5 步,机器人稳了再慢慢加料。别一上来就追求智能多功能,先把骨架立住、水流通了再拓宽。接口参数和搭建步骤详见 Eyun 开发文档,在 Eyun 平台开通 wId 即可开始第 1 步。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)