微信机器人开发神器WeChat Bot:API调用示例
2026-02-04 04:18:11作者:郦嵘贵Just
引言:告别重复劳动,5分钟搭建智能微信机器人
你是否还在手动回复微信群消息?还在为管理多个微信账号而烦恼?WeChat Bot 作为一款基于 WeChaty 框架的开源微信机器人解决方案,支持 DeepSeek、ChatGPT、Kimi 等 11 种 AI 服务,可快速实现消息自动回复、群管理、好友维护等功能。本文将通过 8 个实战案例,带你掌握从环境配置到高级 API 调用的全流程,让你彻底解放双手。
读完本文你将获得:
- 3 种环境部署方案(本地开发/服务器部署/Docker 容器)
- 5 大核心 API 调用模板(消息收发/群管理/好友操作/AI 集成/事件监听)
- 7 种 AI 服务接入指南(含免费额度申请渠道)
- 10+ 生产环境避坑指南(含微信风控规避策略)
技术架构全景图
graph TD
A[用户微信] <--> B[WeChaty Puppet]
B <--> C[WeChat Bot 核心模块]
C --> D{服务选择器}
D --> E[DeepSeek]
D --> F[ChatGPT]
D --> G[Kimi]
D --> H[讯飞星火]
D --> I[其他AI服务]
C --> J[消息处理模块]
C --> K[群管理模块]
C --> L[好友管理模块]
J --> M[自动回复]
J --> N[关键词监控]
K --> O[入群验证]
K --> P[关键词踢人]
L --> Q[异常账号检测]
L --> R[好友标签管理]
环境准备:3步完成开发环境搭建
1. 基础环境要求
| 环境依赖 | 版本要求 | 安装命令 |
|---|---|---|
| Node.js | ≥18.0.0 | nvm install 18 |
| npm/yarn | ≥8.0.0 | npm install -g yarn |
| Git | 任意版本 | sudo apt install git |
2. 项目初始化
# 克隆仓库
git clone https://gitcode.com/GitHub_Trending/we/wechat-bot.git
cd wechat-bot
# 安装依赖(国内用户建议切换镜像)
npm config set registry https://registry.npmmirror.com
npm install
# 复制环境变量模板
cp .env.example .env
3. 核心配置文件(.env)详解
# 机器人基础配置
BOT_NAME=@你的机器人微信名 # 群聊@触发前缀
AUTO_REPLY_PREFIX=ai: # 私聊触发前缀(可选)
# AI服务配置(任选其一)
DEEPSEEK_FREE_TOKEN=sk-xxx # DeepSeek免费API密钥
OPENAI_API_KEY=sk-xxx # OpenAI密钥
KIMI_API_KEY=sk-xxx # Kimi密钥
# 白名单配置
ALIAS_WHITELIST=张三,李四 # 私聊自动回复白名单
ROOM_WHITELIST=技术交流群,产品讨论群 # 群聊自动回复白名单
核心API调用示例:从Hello World到智能交互
1. 机器人初始化与登录
// src/index.js 核心代码
import { WechatyBuilder } from 'wechaty'
// 构建机器人实例
const bot = WechatyBuilder.build({
name: 'WeChatBot',
puppet: 'wechaty-puppet-wechat4u', // 免费Web协议
puppetOptions: { uos: true } // 开启UOS协议规避检测
})
// 扫码登录事件
bot.on('scan', (qrcode, status) => {
if (status === ScanStatus.Waiting) {
// 在终端显示二维码
qrcodeTerminal.generate(qrcode, { small: true })
}
})
// 启动机器人
bot.start()
.then(() => console.log('机器人启动成功,等待扫码登录...'))
.catch(e => console.error('启动失败:', e))
2. 消息接收与自动回复
// src/wechaty/sendMessage.js 核心逻辑
export async function defaultMessage(msg, bot, serviceType) {
const contact = msg.talker() // 发信人
const content = msg.text() // 消息内容
const room = msg.room() // 是否群聊
const isText = msg.type() === bot.Message.Type.Text
// 群聊消息处理(需@机器人且在白名单内)
if (room && await isRoomWhiteListed(room) && content.includes(botName)) {
const question = content.replace(botName, '').trim()
const reply = await getAIServiceReply(serviceType, question)
await room.say(reply)
}
// 私聊消息处理(需在联系人白名单内)
if (!room && await isContactWhiteListed(contact)) {
const reply = await getAIServiceReply(serviceType, content)
await contact.say(reply)
}
}
3. 不同AI服务调用对比
DeepSeek API调用
// src/deepseek/index.js
import OpenAI from 'openai'
const openai = new OpenAI({
apiKey: process.env.DEEPSEEK_FREE_TOKEN,
baseURL: 'https://api.deepseek.com/v1'
})
export async function getDeepseekReply(prompt) {
const response = await openai.chat.completions.create({
model: 'deepseek-chat', // 免费模型
messages: [{ role: 'user', content: prompt }],
max_tokens: 2048
})
return response.choices[0].message.content
}
Kimi API调用
// src/kimi/index.js
import axios from 'axios'
export async function getKimiReply(prompt) {
const response = await axios.post('https://api.moonshot.cn/v1/chat/completions', {
model: 'moonshot-v1-8k', // 支持超长上下文
messages: [{ role: 'user', content: prompt }],
temperature: 0.3
}, {
headers: {
'Authorization': `Bearer ${process.env.KIMI_API_KEY}`,
'Content-Type': 'application/json'
}
})
return response.data.choices[0].message.content
}
各AI服务对比表
| 服务名称 | 免费额度 | 上下文长度 | 国内访问 | 特色功能 |
|---|---|---|---|---|
| DeepSeek | 100万tokens/月 | 8k | 支持 | 代码理解强 |
| Kimi | 50万tokens/月 | 128k | 支持 | 长文档处理 |
| 讯飞星火 | 200万tokens/月 | 4k | 支持 | 中文优化好 |
| ChatGPT | 需付费 | 128k | 需代理 | 通用能力强 |
| 通义千问 | 100万tokens/月 | 8k | 支持 | 阿里云生态 |
4. 群管理高级API
// 监听群聊邀请事件
bot.on('room-invite', async (invitation) => {
const inviter = invitation.inviter()
const roomTopic = await invitation.topic()
// 验证邀请者是否在白名单
if (WHITELIST.includes(await inviter.name())) {
await invitation.accept()
const room = await bot.Room.find({ topic: roomTopic })
// 发送入群欢迎消息
await room.say(`欢迎加入${roomTopic}!请先阅读群公告`)
}
})
// 关键词监控与自动踢人
async function monitorRoomMessages(room, message) {
const forbiddenWords = ['广告', '二维码', '加微信']
if (forbiddenWords.some(word => message.includes(word))) {
const talker = message.talker()
await room.say(`@${await talker.name()} 请勿发送违规内容`)
await room.del(talker) // 移出群聊
}
}
生产环境部署指南
Docker容器化部署
# 构建镜像
docker build -t wechat-bot .
# 运行容器(挂载配置文件)
docker run -d --name wechat-bot \
-v $(pwd)/.env:/app/.env \
--restart always \
wechat-bot
服务器持久化运行
# 使用PM2进程管理
npm install -g pm2
pm2 start cli.js --name "wechat-bot"
# 保存进程状态
pm2 save
pm2 startup
常见问题与解决方案
1. 微信登录失败
| 错误现象 | 可能原因 | 解决方案 |
|---|---|---|
| 扫码后无反应 | Web协议被限制 | 切换为wechaty-puppet-xp协议 |
| 登录后秒退 | 账号风控 | 使用小号测试,减少操作频率 |
| 二维码无法生成 | 依赖缺失 | 安装puppeteer: npm install puppeteer |
2. AI服务调用失败
// 错误处理最佳实践
export async function getAIServiceReply(serviceType, prompt) {
try {
const serviceMap = {
'DeepSeek': getDeepseekReply,
'Kimi': getKimiReply,
'ChatGPT': getGptReply
}
return await serviceMap[serviceType](prompt)
} catch (error) {
console.error(`API调用失败: ${error.message}`)
// 降级处理:返回预设回复
return '当前AI服务暂时不可用,请稍后再试'
}
}
高级功能扩展
1. 消息分片发送(解决长文本限制)
// src/wechaty/sendMessage.js
const MAX_MESSAGE_LENGTH = 500
async function splitAndSend(target, message) {
if (message.length <= MAX_MESSAGE_LENGTH) {
return await target.say(message)
}
// 分片发送
const chunks = []
for (let i = 0; i < message.length; i += MAX_MESSAGE_LENGTH) {
chunks.push(message.slice(i, i + MAX_MESSAGE_LENGTH))
}
for (const chunk of chunks) {
await target.say(chunk)
await new Promise(resolve => setTimeout(resolve, 1000)) // 避免频率限制
}
}
2. 异常账号检测功能
// 检测逻辑:发送特殊消息,监控是否被拒收
async function detectInvalidFriends() {
const contacts = await bot.Contact.findAll()
const invalidAccounts = []
for (const contact of contacts) {
if (contact.self() || contact.name() === '微信团队') continue
try {
// 发送空格消息(对方无感知)
await contact.say(' ')
} catch (error) {
if (error.message.includes('rejected')) {
invalidAccounts.push(await contact.name())
}
}
}
console.log('异常账号列表:', invalidAccounts)
return invalidAccounts
}
总结与展望
WeChat Bot 提供了从消息处理到 AI 集成的完整解决方案,通过本文介绍的 API 调用示例,你可以快速构建个性化微信机器人。目前项目已支持 11 种 AI 服务,后续将计划添加:
- 多模态消息处理(图片/语音识别)
- 知识库对接(接入企业内部文档)
- 插件系统(支持第三方功能扩展)
如果你在使用过程中遇到问题,欢迎提交 Issue 或参与项目贡献。记得收藏本文,关注项目更新,让你的微信机器人能力持续进化!
资源获取
- 项目仓库:https://gitcode.com/GitHub_Trending/we/wechat-bot
- API文档:项目内docs目录
- 交流群:添加微信机器人后发送"加群"获取邀请
- 免费API密钥申请地址:
- DeepSeek: https://platform.deepseek.com
- 讯飞星火: https://console.xfyun.cn
- Kimi: https://platform.moonshot.cn
登录后查看全文
热门项目推荐
相关项目推荐
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin07
compass-metrics-modelMetrics model project for the OSS CompassPython00
最新内容推荐
终极Emoji表情配置指南:从config.yaml到一键部署全流程如何用Aider AI助手快速开发游戏:从Pong到2048的完整指南从崩溃到重生:Anki参数重置功能深度优化方案 RuoYi-Cloud-Plus 微服务通用权限管理系统技术文档 GoldenLayout 布局配置完全指南 Tencent Cloud IM Server SDK Java 技术文档 解决JumpServer v4.10.1版本Windows发布机部署失败问题 最完整2025版!SeedVR2模型家族(3B/7B)选型与性能优化指南2025微信机器人新范式:从消息自动回复到智能助理的进化之路3分钟搞定!团子翻译器接入Gemini模型超详细指南
项目优选
收起
deepin linux kernel
C
27
11
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
525
3.72 K
Ascend Extension for PyTorch
Python
329
391
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
877
578
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
335
162
暂无简介
Dart
764
189
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
12
1
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
1.33 K
746
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
67
20
React Native鸿蒙化仓库
JavaScript
302
350