需求
自己一直想做一个个人的微信机器人,曾经目睹一位大佬用自己个人微信实现语音控制机器人搭建后台系统,羡慕不已的同时,自己也暗自下定决心做一个自己的微信机器人,发现wechaty的时候,似乎看到了希望,并不是超越谁而是实现目前所可以做到的。
搭建自己的微信公众号,jd转链接,图文翻译,智能对话,个人收藏夹目前就是这几个,可是我发现对于小程序是不可以发送到自己的订阅号的,还有就是jd链接我每次都会重复的打开微信公众号,找到自己订阅号后发送似乎繁琐,所以我决定自己搞一个个人机器人解决以上的痛点。
惊喜!!!放在前面
在我发布文章这一天,下午打开wechaty博客的时候发现
重磅:绕过登录限制,wechaty免费版web协议重新荣光
这篇文章,可以完美实现无需token即可实现微信登录
效果及代码
你的微信会在桌面微信登录,完美绕过不可以web登录微信的痛点,也可以正常使用你的其他功能
1 | javascript复制代码const { Wechaty } = require("wechaty"); |
介绍
Wechaty是一款适用于Chatbot Makers的现代会话 RPA SDK,可以用几行代码创建一个bot。
Wechaty提供了开箱即用的支持,可以将您的IM帐户转变为聊天机器人,从而为您提供期望的通用功能,开发人员可以轻松地对其进行自定义和扩展,以创建满足其确切需求的聊天机器人。
世界上最短的聊天机器人#
我们可以使用Wechaty用最少6行代码构建一个聊天机器人
1 | javascript复制代码const { Wechaty } = require('wechaty') |
运行代码之前
准备好可运行Wechaty的微信号,已经申请前缀为puppet_padlocal的token
- wechaty-puppet-padlocal:wechaty的ipad协议实现
(每个人申请的token是不同的所以使用的协议也不同,需要在入口做处理)
目前实现功能
- 自动通过好友验证
- 当有人添加机器人时,判断验证消息关键字后通过或直接通过
- 通过验证后自动回复并介绍机器人功能
- 私聊关键字回复
- 例如回复
加群
推送群聊邀请 - 例如回复
群聊名称
自动拉群
- 例如回复
- 自动聊天
- 群聊中配置和自己的机器人聊天
- 私聊发送消息即可聊天
- 解析小程序信息
- 加入群聊自动欢迎
- 当新的小伙伴加入群聊后自动
@[新的小伙伴]
发一个文字欢迎 - 关键字触发,发送个人卡片链接
- 群内发送小程序可获取小程序
相关信息
- 群内发送英文开启翻译功能,最多不可超多2000字
- 当新的小伙伴加入群聊后自动
api接口
核心代码
入口文件
bot.js
1 | javascript复制代码const { Wechaty } = require("wechaty"); |
onMessage.js
监听消息事件触发,这里只判断了接收的主要类型,文字type7,小程序type9,卡片链接type14,使用群聊@的时候你可能会遇到发送不成功,你可以使用另外的一种方法如果你也遇到room.say失效,然后我在获取文本信息处理的时候加了一层判断,因为消息监听默认也会监听到你所有群聊的消息,我测试的时候就遇到机器人主动和群里的人聊天,很尴尬所以拉了几个好友组了一个测试群方便测试
1 | ini复制代码 // 获取@你的群友 |
1 | javascript复制代码const { UrlLink } = require("wechaty"); |
utils文件夹
主要存放的是一些onmessage的方法,api请求以及小程序通过xml-js提取参数类的,这部分相对简单一些,此处不再赘述
百度翻译 使用请到utils-translate文件替换appid以及key
天行api 使用请到src-config文件更换key保证正常使用
效果
常见问题
github wechaty-puppet-padplus升级说明如下:
卸载wechaty-puppet-padplus,安装wechaty-puppet-hostie
代码中启动wechaty的wechaty-puppet-padplus更换成【wechaty-puppet-hostie】
npm官网 Wechaty-Puppet-Hostie模块已重命名为wechaty-puppet-service,请改用【wechaty-puppet-service】
使用wechaty-puppet-service代替Wechaty-Puppet-Hostie
免费token
最后
探索token和对应协议的过程有点痛苦,不过我已经搭建好了,我会给你提供最简单的搭建个人机器人的方式,一起交流学习
本文转载自: 掘金