群成员需要一个微信机器人🤖️
自己动手,丰衣足食,于是便有了这篇文章。
微信机器人,这个需求我也是有的,之前玩过,这个项目可以使用6行代码写出微信聊天机器人。
当微信群超过100人以后,就必须要靠群主来手工拉人了,如果一下子来了几十个人加你,然后拉群。那你大概手指都要点酸了,这种重复且机械的流水作业,怎么可以难到一个程序员呢?
梳理一下需求:
-
自动通过好友请求。
-
当我的粉丝和我微信聊天的时候,能通过关键词进行自动回复。毕竟问题80%都是一样的。
-
自动的把他们拉进群里。
我在 GitHub 上找到了 Wechaty,发现只要几十行代码,就可以满足我的需求。最主要的是,机械化的流水操作,机器人做的比人工要好很多。
项目地址:
https://github.com/Chatie/wechaty
该项目的收到的一些评价
GitHub 上与微信机器人相关的开源项目有很多,通过 JavaScript、Electron、Go、Perl、Python 等等都可以实现。
Wechaty
是使用 Typescript 进行编写的 Node 项目,是一个专门为个人微信号搭建的bot框架,使用Wechaty的API,只需要6行 Javascript 代码就可以搭建一个最简单的微信机器人,支持 Linux, Windows, Darwin(OSX/Mac) 和 Docker。
它最大的优点就是
不用关心任何实现逻辑,仅仅用JS写业务逻辑层面的事情,就可以了。
Wechaty 基本的实现原理,是通过 Chrome 实时监听微信网页版的各类信息,然后将抓取的信息封装成接口,供开发者使用。 它有9个基本的事件,基本上涵盖了我们 Web 微信上的所有事件,分别是:
-
scan 事件会在需要扫码登陆微信的被触发
-
login 事件会在机器人成功登陆后被触发
-
logout 事件会在机器人掉线以后被触发
-
message 事件会在有新消息的时候被触发
-
error 事件会在程序出现 error 的时候被触发
-
friend 事件会在有好友请求的时候被触发
-
room-join 事件会在有人加入群时被触发
-
room-leave 事件会在群主移好友出群时被触发
-
room-topic 事件会在群名称被修改时被触发
另外,Wechaty 将机器人、联系人、微信群、好友请求封装成类,分别是Wechaty、Contact、Message、和FriendRequest,这样我只要 import 这些包,就可以直接使用这些类里面的函数模拟微信的各种操作了。比如给指定的人发送消息,我只要用 contact.say(‘hello’) 就可以了。Wechaty 里面的函数名称起的非常人性化,使用 JS 进行业务逻辑编写的时候,读代码像和读英文文档一样流畅舒服。