专栏名称: i小声读书
「电子书支援计划」是一个以电子书为核心的自我学习计划, 以 Telagram 社群为主要载体,致力于促进中文互联网圈内 的知识交流和资源共享,帮助诸位获得更好的阅读资源和阅 读体验,同时鼓励社群内成员输出优质内容。
目录
相关文章推荐
科普中国  ·  芯片是如何被制造出来的? ·  9 小时前  
知识分子  ·  C刊已成少数大佬的自留地? ·  16 小时前  
原理  ·  滴!一个日常现象的全新发现 ·  2 天前  
51好读  ›  专栏  ›  i小声读书

篇二:如何使用微信机器人以及部署到云端

i小声读书  · 公众号  ·  · 2018-06-23 00:00

正文


电子书支援计划

以数字资源为核心的自我学习社群



承接上文 如何用6行代码写出微信聊天机器人


我们已经使用 Docker 把微信机器人 / Wechaty 部署到本地,接下来讲讲该如何使用它以及部署到云端。


6行代码


环境部署好以后运行下面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()


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

  • scan事件:两个返回值

    • 0:初始状态

    • 200:已经成功登陆

    • 201:微信已经扫码,等待确认

    • 408:等待微信扫码中

    • code:返回了扫描的状态

    • url:登陆需要扫描的二维码图片的地址,你需要将这个 url 粘贴到浏览器中打开,进行扫码登录

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

  • message 事件:返回的是 message,代表收到的消息,是一个 Message 类型。通过message.content()可以获取到消息的内容,message.from() 可以获取到消息的发送者,返回的是一个 Contact 类型。

本地测试

终端中出现如下页面时,掏出手机微信扫一扫,登录微信网页端。

终端监听微信信息:

部署云端


Wechaty 依赖的很多包都在墙外,建议使用国外的 VPS,我使用的是腾讯云(境外的小鸡不想动)如果只是跑一个机器人服务的话,建议使 2GB/2 CPUs 以上的配置,一个机器人服务会占用 1G 内存左右。


使用 putty 或其他 ssh 客户端工具登录你的服务器

Step 1: 新建一个mybot.js,内容如下:

const { Wechaty } = require('wechaty')

Wechaty.instance() // Singleton
.on('scan', (url, code) => console.log(`Scan QR Code to login: ${code}






请到「今天看啥」查看全文