背景

个人微信没有官方开放给第三方的业务 API。想「用代码发消息、收消息」,需要借助执行中枢:你在服务器上发 HTTP 请求,平台在已登录的微信实例上代为操作,结果以 JSON 返回。很多人把这一步叫「微信机器人」——本质上是 Webhook 收消息 + 发送接口回消息 的闭环,并不是微信里单独装一个 App。

第一个机器人不必做 AI、不必接 CRM。最小目标:别人给你发一句,你的程序能收到,并能自动回一句。跑通这条链路,后面加群管、通知、备份才有地基。

方案说明

以 Eyun 为例,最小机器人分四块:

① 控制台注册,扫码登录微信实例
② 配置 Webhook,你的服务能收到 POST
③ 收到文本消息后,业务逻辑决定回什么
④ 调 sendText 把回复发回去

首测发送建议先给「文件传输助手」(wcId 填 filehelper),消息会出现在本机微信里,不打扰客户。发送通了再配 Webhook,用另一个号给你发私聊,看服务能否收到并回复。

机器人跑在云端时,Webhook 必须是公网 HTTPS;本地开发可用内网穿透。回调接口要在几秒内返回 200,耗时逻辑放后台线程或队列,不要阻塞回调。

操作步骤

  1. 注册 Eyun,登录控制台,复制 API 域名和调用凭证。

  2. 获取登录二维码,目标微信扫码,记录实例 ID。

  3. 用 curl 或 Postman 调 sendText,接收方填 filehelper,确认微信里收到文字。

  4. 部署一个 /callback 接口,在控制台填入 Webhook 地址。

  5. 用测试号给该微信发「hello」,服务端打印 POST Body,确认收到事件。

  6. 在回调里判断是文本消息后,调 sendText 回「收到:xxx」。

  7. 私聊跑通后,再考虑群聊(群 ID 一般带 @chatroom 后缀)。

示例代码

最小 echo 机器人(Flask)

import os
import requests
from flask import Flask, request
from threading import Thread

app = Flask(__name__)
BASE = os.environ["EYUN_BASE"]
AUTH = os.environ["EYUN_AUTH"]
INSTANCE = os.environ["EYUN_INSTANCE"]

def send_text(to_id: str, content: str):
    requests.post(
        f"{BASE}/sendText",
        json={"wId": INSTANCE, "wcId": to_id, "content": content},
        headers={"Authorization": AUTH, "Content-Type": "application/json"},
        timeout=15,
    )

def handle(event: dict):
    if event.get("messageType") != "text":
        return
    sender = event.get("fromWcId")
    text = event.get("content", "")
    send_text(sender, f"收到:{text}")

@app.post("/callback")
def callback():
    event = request.get_json(force=True)
    Thread(target=handle, args=(event,), daemon=True).start()
    return "ok", 200

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8080)

首测发送(filehelper)

curl -X POST http://你的域名/sendText \
  -H "Authorization: eyJ0eXAi..." \
  -H "Content-Type: application/json" \
  -d '{"wId":"实例ID","wcId":"filehelper","content":"robot online"}'

注意

  • 平台一般没有单独的「机器人开关」,能力来自消息收发接口的组合。

  • 自己 sendText 发出去的消息,通常不会回弹 Webhook;测收消息要让外部账号发来。

  • 实例掉线后收发都会异常,生产环境要监控在线状态。

  • 自动回复建议在首条注明非人工,避免用户误解。

  • 非官方接入需自行评估合规与用户授权,技术文章不能替代法务判断。

文档

API 文档 · 平台介绍

标签建议: 微信机器人、个人微信API、Python、Webhook

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐