代码模块

环境部署好以后下面6行代码,就可以成功的实现基础的bot功能:将微信机器人收到的所有消息打印出来:

const { Wechaty } = require('wechaty')

Wechaty.instance()
.on('scan', (url, code) => console.log(`Scan QR Code to login: ${code}\n${url}`))
.on('login',  user => console.log(`User ${user.name()} logined`))
.on('message',  message => console.log(`Message: ${message.content()}`))
.init()

分析

下面对这段代码进行简单的介绍:

  1. scan事件:两个返回值

    1. code:返回了扫描的状态 0:初始状态 200:已经成功登陆 201:微信已经扫码,等待确认 408:等待微信扫码中
    2. url:登陆需要扫描的二维码图片的地址,你需要将这个url粘贴到浏览器中打开,进行扫码登陆
  2. login事件:返回一个自身用户的Contact的类型对象

  3. 返回的user,代表登陆的用户,返回的是一个Contact的类型,打印出来,是可以看到你当前登陆的用户昵称的。 > 通过user.id()可以获取用户唯一id
    > user.name()可以获取用户的微信昵称,
    > user.weixin()可以获取用户的微信号。

  4. message事件:返回的是message

  5. 代表收到的消息,是一个Message类型。 > 通过 message.content() 可以获取到消息的内容
    > message.from() 可以获取到消息的发送者,返回的是一个Contact联系人类型。

以上只是一些简单的接口介绍,更多详细的查看接口文档

附注

终端二维码

qrcode-terminal

  1. 安装依赖包:

    npm install qrcode-terminal

  2. 稍微修改下scan事件后的代码就可以了:

    js wechaty.on('scan', (url, code) => { if (!/201|200/.test(String(code))){ let loginUrl = url.replace(/\/qrcode\//, '/l/') require('qrcode-terminal').generate(loginUrl) } console.log(`${url}\n[${code}] Scan QR Code in above url to login: `) })