从零打造一个微信机器人,很多人卡在"先学协议还是先学框架"这种问题里。其实不用想那么多,走 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 步。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐