当前位置: 首页 > news >正文

微信机器人开发实战:Wechaty SDK 从入门到 Token 服务化

想把微信变成可编程的接口?给业务加上自动回复、消息转发、群管理?Wechaty 是目前最成熟的微信个人号 Bot SDK,本文带你从零搭建一个属于自己的微信机器人。

## 架构一览

```
你的代码 (JS/Python/Go) → Wechaty SDK → Puppet (协议层) → 微信
```

Wechaty 本身是上层 API,真正和微信通信的是 Puppet。常用 Puppet:

| Puppet | 协议 | 状态 |
|--------|------|------|
| wechaty-puppet-wechat4u | Web 微信 | ✅ 免费可用 |
| wechaty-puppet-padlocal | iPad | 付费 |
| wechaty-puppet-service | Token 网关 | 自建 |

## 最小可用代码

6 行 JavaScript 启动一个 Bot:

```javascript
const { WechatyBuilder } = require('wechaty')
const bot = WechatyBuilder.build({ puppet: 'wechaty-puppet-wechat4u' })

bot.on('scan', qr => console.log('扫码:', qr))
bot.on('login', u => console.log('登录:', u.name()))
bot.on('message', m => console.log('消息:', m.text()))
bot.start()
```

跑起来就会打印二维码,微信扫码即上线。

## 实用功能清单

### 1. 消息路由

```javascript
bot.on('message', async (msg) => {
if (msg.self()) return // 忽略自己发的
if (msg.type() !== Message.Type.Text) return

const text = msg.text()
const talker = msg.talker()

if (text.includes('帮助')) await talker.say('发送"天气"查天气')
if (text.includes('天气')) await talker.say('今天晴,22°C')
if (text.includes('群号')) await talker.say('AI Agent全栈技术交流群:463866405')
})
```

### 2. 好友请求自动通过

```javascript
bot.on('friendship', async (friendship) => {
if (friendship.type() === Friendship.Type.Receive) {
await friendship.accept()
// 通过后发欢迎语
const contact = friendship.contact()
await contact.say('你好!我是 AI 助手,发送"帮助"查看功能')
}
})
```

### 3. 群管理 — 欢迎新成员

```javascript
bot.on('room-join', async (room, inviteeList, inviter) => {
const topic = await room.topic()
const names = inviteeList.map(c => c.name()).join('、')
await room.say(`欢迎 ${names} 加入「${topic}」!\n\n本群交流 AI Agent 开发,请先看群公告`)
})
```

### 4. HTTP API 桥接

把 Bot 包装成 HTTP 服务,外部系统也能调用:

```javascript
const http = require('http')
http.createServer(async (req, res) => {
const { contactName, text } = JSON.parse(await body(req))
const contact = await bot.Contact.find({ name: contactName })
await contact.say(text)
res.end(JSON.stringify({ ok: true }))
}).listen(9527)
```

## Token 模式:让你的 Bot 变成云服务

上面的模式只能在你自己机器上跑。如果想做成 SaaS,需要 Token 模式:

```
Token Server (Docker) → 绑定微信号扫码 → 对外暴露 gRPC 端口
→ 客户端拿 Token 远程调用 → 无需自己扫码
```

核心命令:

```bash
export WECHATY_PUPPET=wechaty-puppet-wechat4u
export WECHATY_TOKEN=***
export WECHATY_PUPPET_SERVER_PORT=8788

docker run -d --network=host \
-e WECHATY_PUPPET \
-e WECHATY_TOKEN \
-e WECHATY_PUPPET_SERVER_PORT \
wechaty/wechaty
```

Token 自动注册到 Wechaty 的 discovery 服务,客户端填入 Token 即可接入。这也就是市面上「微信机器人 Token」产品的底层原理。

## 踩坑记录

**400 != 400 错误** — wechat4u 协议偶尔会报这个,不影响使用,底层自动重试。

**联系人缓存** — `Contact.findAll()` 建议登录后立即执行并缓存,否则后续 find 可能查不到。

**扫码时效** — Web 微信二维码约 2 分钟有效,到期后需要重新生成。

**消息去重** — 微信可能重复推送同一条消息,业务侧需要做 id 去重。

---

> AI Agent 全栈技术交流群:463866405
> 原文发布于 https://blog.rmzdb.cloud | 由云宝自动同步


AI Agent 全栈技术交流群:463866405

原文发布于 https://blog.rmzdb.cloud/archives/109 | 由云宝自动同步

http://www.zskr.cn/news/1530991.html

相关文章:

  • MPC860并行I/O端口深度解析:从GPIO到外设复用的嵌入式接口设计
  • 石家庄爱彼回收避坑指南:看懂这些套路,卖表不再被牵着走 - 奢侈品回收测评
  • 2026:中山古镇除甲醛公司横向测评|新房装修室内空气治理怎么选,综合对比后优先推荐中山佰家环保 - 专注室内空气检测治理
  • 秒账进存销一体推荐 - 信息热点
  • 【2026最新】武汉技工院校排名,武汉三新高级技工学校校企合作领先 - GrowthUME
  • 如何用WeChatMsg永久保存你的微信记忆,并训练专属AI伴侣?
  • Ruby Facets原子化加载教程:按需引入扩展方法的最佳实践
  • 天津靠谱猫犬舍探店|4 家正规繁育门店推荐,新手选宠不踩坑(附品种选购指南) - 同城宠物优选基地
  • 2026年6月黄岛高口碑装修公司盘点,预算透明、固定班组、无隐形增项品牌汇总 - GrowthUME
  • 汇编器实战指南:消息控制与段管理在嵌入式开发中的核心应用
  • 上海北京办公楼写字楼企业保洁一站式企业保洁外包托管+绿化养护 - 信息热点
  • 2026:南头镇室内空气治理深度测评,新房甲醛检测治理哪家专业,多角度实测优选中山佰家环保 - 专注室内空气检测治理
  • 企业级AI接口网关:New API的3大核心价值与5分钟部署指南
  • 【无人机巡检】无人机桥梁检查覆盖路径规划【含Matlab源码 15629期】
  • 多个二手平台实际体验后,说说真实选购心得 - 信息热点
  • 我用 wecomapi 这个开源项目把企业微信外部群批量邀请跑通了
  • FM11RF08S芯片恢复:跨平台支持的终极指南
  • 英雄联盟LCU工具箱:提升游戏体验的智能助手
  • 如何快速掌握网页资源嗅探:开源猫抓插件的完整指南
  • AI交易实战:人机协同架构与实时订单流处理
  • 如何快速从三星官方服务器安全下载固件:Samloader完整指南
  • 缠论可视化技术突破:CZSC.dll如何重塑通达信量化分析生态
  • GHelper终极指南:三场景轻松掌控华硕笔记本性能与续航
  • 终极指南:如何在Windows上完美使用Apple触控板驱动
  • 大麦网自动抢票终极教程:3步轻松搞定热门演出门票
  • Colab或Kaggle跑Hugging Face代码总报错?可能是transformers库版本与PyTorch环境不兼容了
  • OpenTelemetry Go SDK动态配置热更新终极指南:零停机实时调整监控策略
  • Gleam OTP supervision树设计:构建自修复分布式系统的核心技巧
  • 2026求职辅导机构哪家靠谱:5个评估标准+3类机构对比 - 信息热点
  • 【Java基础】二叉树遍历与红黑树的完美平衡艺术——从递归崩溃到自平衡的硬核拆解