project,

基于Wechaty开发的群聊小助手

Mumup Mumup Follow Dec 08, 2020 · 2 mins read
基于Wechaty开发的群聊小助手

GitHub上搜了一圈,看到了挺多微信bot的方案,后面决定使用wechaty,因为感觉设计得很优雅,6行代码就可以轻松构建一个wxbot。

文档近期正在频繁更新中

目前的需求很简单,在猫群里置放一个可以唠嗑可以玩游戏的机器人

实现了几个功能

  • 成语接龙
  • 看图猜成语
  • 接入了图灵机器人

未实现

  • 根据前一天聊天内容生成词云
  • 猫粮查询
  • 猫疾病的查询

目前图灵机器人聊天使用了第三方的接口,需要注册天行api方可使用,token需填入.env文件中

核心代码

const bot = new Wechaty({
  puppet: 'wechaty-puppet-service',
  puppetOptions: {
    token,
  }
});

bot
  .on('scan', (qrcode, status) => {
    if (status === ScanStatus.Waiting) {
      QrcodeTerminal.generate(qrcode, {
        small: true
      })
    }
  })
  .on('login', async user => {
    console.log(`user: ${JSON.stringify(user)}`)
  })
  .on('error', (error) => {
    console.error(error)
  })

async function main() {
  await bot.start()

  //  储存一波数据
  let store: any = []

  _config.activeRoomIds.forEach(async item => {
    const room = await bot.Room.find({topic: item})
    if (room) {
      store.push({
        id: room.id,
        active: ''
      })
  
      // 群信息
      room.on('message', async (message) => {
        roomMessageHandler(message, room, store)
      })
      room.on('join', (inviteeList, inviter) => {
        roomJoinHandler(room, inviteeList, inviter)
      })
    }
  })
}

main()

由于padplus马上要废弃,所以使用的是puppet-service,具体api可以查看官网文档,目前有少许功能并未实现,比较遗憾,等后续功能更加完善,准备用vue3+express做一个后台的管理系统,方便管理机器人。

安装

npm install

运行

npm run main

作者: Penley 前端开发工程师 Code: Github 微信机器人,群聊小助手

Join Newsletter
Get the latest news right in your inbox. We never spam!
Written by Mumup
前端开发工程师,在全栈的路上了