七行代码机器人

本章知识点
  • 初步认识 Wechaty
  • Wechaty 如何监听事件

世界上最简短的机器人

相信大家已经很迫不及待想要看看七行代码机器人长什么样子,Talk is Cheep, show you the code.

const { Wechaty } = require('wechaty') // import { Wechaty } from 'wechaty'

Wechaty.instance() // Global Instance
.on('scan', (qrcode, status) => console.log(`Scan QR Code to login: ${status}\nhttps://wechaty.js.org/qrcode/${encodeURIComponent(qrcode)}`))
.on('login',            user => console.log(`User ${user} logged in`))
.on('message',       message => console.log(`Message: ${message}`))
.start()

以上代码即可运行一个具备监控扫码、登录以及消息事件的聊天机器人,是不是很简单。

使用Wechaty开发聊天机器人的两个核心步骤:

  • 指定对接的IM平台协议
  • 监听对应的事件

前者是需要根据对应IM平台协议添加不同的参数配置,比如飞书平台上是需要指定App IDApp SecretVerification Token,而这些参数是可以通过环境变量参数传递到底层Puppet中。使用其他平台的Puppet原理也是如此,只需要简单的几行配置即可完成对不同平台的对接。

可在任何简单的事情背后,Wechaty做了大量的工作,才放开发者只需要简单的七行代码便能够开发出一个聊天机器人。

事件监听

在与IM平台中的对接中,所有的消息接受都是以事件监听的形式来完成,比如扫码登录消息,登录消息,聊天消息等。此处总共由如下消息内容。

目前系统中存在的事件如下:

事件类型关键字备注
基础事件scan当出现二维码扫描登录时触发的事件
基础事件login当用户登录完成之后时触发的事件
基础事件logout当用户注销完成之后时触发的事件
基础事件message当用户收到消息之后时触发的事件
基础事件friendship当用户接收到好友申请时触发的事件
群聊事件room-topic当群名变动时触发的事件
群聊事件room-invite当邀请群成员入群时触发的事件
群聊事件room-join当有成员加入到某群时触发的事件
群聊事件room-leave当有群成员退出群聊时触发的事件
系统事件ready当Wechaty数据加载完毕时触发的事件
系统事件heartbeat当接收到系统心跳包时触发的事件
系统事件error当接受系统错误时触发的事件

而所有事件的注册只需要使用on函数即可完成。

warning

不过需要注意的是,不同事件的对应的参数是不一样的,这也是很多开发者会遇到的问题,具体的参数列表可查看官网文档:https://wechaty.js.org/docs/recipes/event#login-event-bot-contact

总结

七行代码机器人让大家对Wechaty开发聊天机器人有了一个初步的认识,只是实现了飞鼠平台的Puppet使用以及事件的监听。然而在实际的机器人对接过程中,是需要有更多更复杂的场景机器人的,比如最基础的消息回复机器人,那么接下来我将给大家介绍最简单的叮咚机器人的开发。