微信自动回复项目搭建

作者: admin | 发布时间: 2026-02-09 20:03:01 | ★ 0


一、项目回顾总结

1. 项目目标

实现一个完全本地化的微信自动回复机器人,功能需求:

微信登录后监控群聊消息

当检测到@所有人或@机器人时自动回复"1"

不依赖任何第三方API(如OpenAI)

2. 技术栈选择

运行时: Node.js

核心库: Wechaty + wechaty-puppet-wechat

协议: 微信网页版协议

3. 安装的依赖包

# 核心依赖

npm install wechaty wechaty-puppet-wechat



# 二维码显示相关(后续安装)

npm install qrcode-terminal qrcode

4. 创建的文件

D:\wechat bot\

├── bot.js # 主机器人文件(多个版本)

├── test.js # 测试文件

├── package.json # 项目配置

├── package-lock.json # 依赖锁文件

└── node_modules/ # 依赖包目录

二、遇到的问题及解决方案

问题1: npm安装网络问题

现象: 安装依赖时网络超时、下载缓慢

解决方案:

# 设置国内镜像

npm config set registry https://registry.npmmirror.com

npm config set puppeteer_download_host https://npmmirror.com/mirrors

问题2: 代理冲突

现象: 系统代理设置导致网络连接失败

解决方案: 关闭Windows系统代理或调整Clash设置

问题3: 二维码显示问题

现象: 控制台二维码显示异常或快速跳过

解决方案:

// 安装二维码显示包

npm install qrcode-terminal qrcode



// 代码中增强显示

bot.on('scan', (qrcode, status) => {

const qrcodeUrl = `https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(qrcode)}`

console.log('请打开链接扫描:', qrcodeUrl)

})

问题4: 网络连接超时

现象: 登录后出现ETIMEDOUT错误

原因: 微信服务器连接不稳定

解决方案: 添加错误处理和重试机制

三、核心实现原理

1. 技术架构

微信网页版协议 ←→ Wechaty库 ←→ 你的Node.js代码



手机微信扫码登录

2. 消息处理流程

// 核心处理逻辑

bot.on('message', async msg => {

// 1. 检查是否是群消息

const room = msg.room()

if (!room) return



// 2. 获取消息内容

const text = msg.text()



// 3. 检测触发条件

const isAtAll = text.includes('@所有人') // 文本匹配

const isMentionSelf = await msg.mentionSelf() // @机器人检测



// 4. 满足条件时回复

if (isAtAll || isMentionSelf) {

await msg.say('1') // 发送回复

}

})

3. 登录机制

二维码生成: 通过微信网页版协议生成登录二维码

扫码认证: 用户手机微信扫码确认登录

会话保持: 登录状态保存在本地,支持断线重连

四、最终可用的完整代码

// bot.js - 最终稳定版本

const { WechatyBuilder } = require('wechaty')



const bot = WechatyBuilder.build({

name: 'auto-reply-bot',

puppet: 'wechaty-puppet-wechat'

})



// 处理二维码显示

bot.on('scan', (qrcode, status) => {

if (status === 2) {

console.log('✅ 已扫描,请在手机上确认登录')

} else {

const qrcodeUrl = `https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(qrcode)}&size=200x200`

console.log('🔗 请用微信扫描二维码:')

console.log(qrcodeUrl)

}

})



// 登录成功

bot.on('login', user => {

console.log(`🎉 登录成功: ${user.name()}`)

})



// 消息处理

bot.on('message', async msg => {

if (msg.self()) return // 忽略自己发送的消息



const room = msg.room()

if (room) {

const text = msg.text() || ''

const roomName = await room.topic()



console.log(`💬 [${roomName}]: ${text}`)



// 触发条件检测

const isAtAll = text.includes('@所有人')

const isMentionSelf = await msg.mentionSelf()



if (isAtAll || isMentionSelf) {

console.log('🔔 检测到@消息,回复: 1')

try {

await msg.say('1')

console.log('✅ 回复成功')

} catch (error) {

console.log('⚠️ 回复失败,但机器人仍在运行')

}

}

}

})



// 错误处理

bot.on('error', error => {

console.log('⚠️ 网络波动:', error.message)

})



// 启动机器人

bot.start()

.then(() => console.log('🤖 机器人启动成功'))

.catch(e => console.error('启动失败:', e))

五、项目成果

✅ 已实现的功能

微信扫码登录​ - 成功实现二维码登录

群消息监控​ - 实时监控所有群聊消息

@所有人检测​ - 准确识别@所有人消息

@机器人检测​ - 识别直接@机器人的消息

自动回复"1"​ - 满足条件时自动回复

错误容错​ - 网络波动时保持运行

⚠️ 注意事项

微信风控: 使用网页版协议有一定风险,建议用小号测试

网络稳定性: 需要相对稳定的网络环境

长期运行: 建议在服务器上24小时运行

🚀 扩展可能性

添加更多关键词回复规则

集成本地AI模型实现智能回复

添加定时任务功能

实现消息转发和存档

这个项目成功实现了完全本地化的微信自动回复功能,不依赖任何外部API,具有很好的隐私性和可控性。