背景
女朋友在做代购,加了很多微信好友和微信群,所以每天会有很多人前来咨询商品信息以及商品价格,因此想做一个管理机器人,用于自动回复消息、群管理以及自动添加好友,以及用户发送商品关键词能够自动回复相应商品信息。
功能
- 自动处理好友请求
- 私聊关键字回复
- 通过指令完成指定任务
- 群管理(拉人进群、踢人出群、@群成员)
- 发送图片、链接、名片
在有人咨询商品信息的时候,比如发送有关于【香水】的话题,便自动回复有在售出的香水商品列表,包含了商品不同尺寸下的价格。
结构
|-- img # 储项目所使用到的图片与其他相应资源。
|-- src/
|---- listeners/
|------ on-scan.js # 机器人需要扫描二维码时监听回调
|------ on-room.js # 进入房间监听回调
|------ on-message.js # 消息监听回调
|------ on-friend.js # 好友添加监听回调
|---- config.js # 配置文件
|---- index.js # 入口文件
|-- package.json
依赖
wechaty:wechaty 核心库
wechaty-puppet-padplus:wechaty的ipad协议实现
代码介绍
// init
const bot = new Wechaty({
puppet: new PuppetPadplus({
token: config.token
}),
name: config.name
})
bot.on('scan', onScan) // 机器人需要扫描二维码时监听
bot.on('login', (user) => log.info('StarterBot', '%s login', user))
bot.on('logout', (user) => log.info('StarterBot', '%s logout', user))
bot.on('message', onMessage(bot)) // 消息监听
bot.on('friendship', onFriendShip) // 添加好友监听
bot.on('room-join', onRoomJoin) // 加入房间监听
bot
.start()
.then(() => {
log.info('StarterBot', 'Starter Bot Started.')
})
.catch((e) => log.error('StarterBot', e))
本地运行
- 克隆项目
git clone https://github.com/zoudingyi/wechaty-robot.git
cd wechaty-robot
- 安装依赖
npm install
- 启动项目
npm run serve
使用
- 打开
src/config.js
文件 - 修改
config
配置 - 运行项目
其他功能效果
致谢
非常感谢Wechaty团队提供微信机器人SDK,让开发者可以专注于业务代码。
感谢句子互动提供的pad协议版token。
wechaty: https://wechaty.github.io/
juzibot: https://www.juzibot.com