/wechat-assistant-padplus

基于 wechaty-puppet-padpro 制作的微信机器人

Primary LanguageJavaScriptMIT LicenseMIT

 由Wechaty提供 Wechaty开源激励计划

node version node version node version

微信机器人秘书

使用须知

  1. 本项目适用网页版微信登录不成功的用户, 该项目是使用微信ipad协议开发。
  2. 使用本项目前需要先申请token, 具体操作流程请参考教程

初衷

前段时间发现微信群里有人天天准时准点的在发咨询或者消息, 身为程序员的我一眼就发现这是机器人所为, 于是萌生了利用机器人每天向女票定时发消息的想法, 那么开始我的折腾之旅吧。

关于微信机器人的开源项目, github一搜也是有一大堆了, 身为前端, 自然是拥抱node啦, 于是我找到了wechaty, 于是正当我满心欢喜的clone 下来,扫码登录后,却报了这个错误:

<error><ret>1203</ret><message>当前登录环境异常。为了你的帐号安全,暂时不能登录web微信。你可以通过手机客户端或者windows微信登录。</message></error>

issues里一搜发现, 这个问题已经有很多人提过了, 而且目前没有什么解决办法, 去wx.qq.com扫码登录一下, 如果你的账号可以正常在网页版微信登录的话, 那你也不用再折腾了, 直接去github 搜下微信机器人的开源项目, 可以用这个微信每日说项目, 而我的两个账号, 都无法登录网页版微信, 那就无法使用这些依赖网页版微信的机器人项目了, 于是我又找到了 基于ipad协议版本的wechaty项目, 作者在介绍里是这样介绍的,

Snipaste_2020-05-12_10-36-29

大体的意思是通过puppet这个中间件再基于各个平台的协议(如ipad、web、mac), 就可以用wechaty控制我们的微信号了。

话不多说, 那就开始搬砖了。

须知:本项目必须向wechaty团队申请token, 否则该项目是无法使用的. 申请流程参考: 申请token

安装过程

1、安装MongoDB与Node

为了让数据持久化,使用了mongodb数据库,保存所有的定时任务,所以需要本地安装好mongodb数据库,本项目mongodb端口默认27017。Node请选择大于10的版本安装

请自行安装好git客户端,没有客户端的可以直接下载zip包

git clone https://github.com/Anonlyy/wechat-assistant-padplus.git // 下载zip包的忽略本步骤

cd wechat-assistant-padplus
npm install

2.注册天行数据账号

由于本项目部分接口来自天行数据,所以需要注册自己的天行数据账号,并在wechat.config.js中的TXAPIKEY位置填写自己的key,注册地址:天行数据注册

注: 申请完天行数据账号后, 需对应申请一些API接口, 否则本项目的某些接口是没有权限访问的 feature4 图中画框的即是必须申请的接口

3、修改配置文件

根目录下存在一个wechat.config.example.js文件,请copy一份到当前目录并修改文件名为wechat.config.js或直接修改文件名为wechat.config.js,配置文件中已对各字段说明清晰,项目出现问题时,请先对照配置内容自行排查问题原因

// 本文件是配置案例文件,请拷贝一份此文件后重命名为wechat.config.js,否则项目无法运行
module.exports = {
  AUTOREPLY: false, // 是否设置机器人自动回复,默认关闭 false  开启为 true
  DEFAULTBOT: '0', // 默认机器人 0 天行机器人 1 天行对接的图灵机器人 2 图灵机器人
  TULINGKEY: '', //图灵机器人KEY
  WECHATYTOKEN: '', // 必填,wechaty token
  TXAPIKEY: '',// 必填,天行数据key,目建议申请自己的天行数据key,可以对机器人个性化定制
  /**
   * 每日说定时任务(支持多人)
   * name:要发送好友的昵称 (注:不是微信号!不是微信号!不是微信号!)
   * alias:要发送好友的备注(默认查找备注优先,防止昵称带表情特殊字符)
   * memorialDay:你与朋友的纪念日
   * city:朋友所在城市,写的时候不要带‘市’
   * endWord:每日说内容的最后的落款 案例中效果为‘——————————爱你的朋友Leo_chen’
   * date:每天定时的发送时间,案例中代表每天早上8点钟,具体规则见‘wechaty/lib/index.js’ (多个好友不要设置相同时间!不要设置相同时间!不要设置相同时间!)
   */ 
  DAYLIST: [
    {name:'昵称',alias:'备注',memorialDay:'2015/04/18',city:'上海',endWord:'爱你的朋友Leo_chen',date:'0 0 8 * * *'},
  ],

  /**
   * 群定时任务列表(支持多群配置)
   * roomName: 群名
   * sortId: 新闻资讯类别id (详情参见README.md数据字典)
   * endword: 结尾备注 ‘————————小助手雷欧’
   * date:每天定时的发送时间,案例中代表每天早上7点30分,具体规则见‘wechaty/lib/index.js’(多个群不要设置相同时间!不要设置相同时间!不要设置相同时间!)
   */
  ROOMLIST: [
    {roomName:'群名',sortId:22,endWord:'小助手雷欧',date:'0 30 7 * * *'},
  ],
   /**
    * 自动添加好友关键词,留空代表同意任何好友请求 
    */
  ACCEPTFRIEND: [],
  /**
   * 好友进群通知,可配置多个
   */
  ROOMJOINLIST: [{name:'群名',welcome:'有什么问题都可以群里提出,大家都是很热情的'}],
  /**
   * 关键词回复列表
   * key: 多个关键词触发相同内容,非模糊匹配,为全匹配
   * reply: 回复内容
   */ 
  KEYWORDLIST:[{key:['你好','您好'],reply:'你好啊,我是小助手雷欧'}],
  /**
   * 新通过好友,默认发送消息
   */
  NEWFRIENDREPLY: '你好,请问有什么可以帮助的',
  /**
   * 关键词加群配置
   * key: 多个关键词触发相加群操作,全匹配
   * roomName: 发送邀请的群名
   */
  ADDROOMKEYLIST:[
    {key:['加群'],roomName:'群名'}
  ],
  /**
   * 关键词触发指定事件,适用于私聊与群聊
   * key: 关键词
   * position: 关键词所在位置 start 开头  middle 不限 end 结尾
   * event: 触发事件名称,更多查看事件字典
   */
  EVENTKEYWORDLIST:[
    {key:'?',position:'start',event:'rubbish'},
    {key:'?',position:'start',event:'rubbish'},
    {key:'是什么垃圾',position:'end',event:'rubbish'},
    {key:'名人名言',position:'middle',event:'mingyan'},
    {key:'*',position:'start',event:'star'},
    {key:'姓',position:'start',event:'xing'},
    {key:'姓',position:'end',event:'xing'},
  ],  
}

4、本地启动项目

npm run koa // 执行此命令后需新开命令窗口执行以下命令
npm run start

执行完成后请等待,直到出现二维码界面,拿出手机扫描确认登录即可

5、服务器启动项目

服务器部署项目时,请全局安装进程守护工具pm2,命令npm i pm2 -g。执行安装完成后

npm run pm2 //此操作产生的log日志在/koa/log/文件夹中,如果有报错请自行查看log是否koa未启动成功
npm run start //执行此操作,出现二维码,扫描登录成功后,键盘ctrl+c退出,然后执行
npm run pm2-wechaty // 执行日志在/wechaty/log/目录中,如果发现掉线,请重新执行npm run start后再执行此命令

**注意: **

两个服务都运行成功后, 就可以测试一下自己的机器人微信号会不会自动回复你的消息啦.

如果发现无法正常使用, 可以执行pm2 logs wechaty看是否是卡在扫码阶段了, 如果是再次扫码登录即可

Snipaste_2020-05-11_22-46-08

更多问题

关于wechaty的相关接口,请 参考wechaty官网文档,如果以上还没有解决你的问题,请先往wechaty的项目issues中查找是否存在相同的问题,由于本项目是依赖wechaty开发,所以启动时遇到的问题大部分是wechaty的。

事实上, 如果需要一些其他自定义功能, 也可以很方便的在项目里修改哦!

使用效果

feature1

feature2

feature3

注意事项

本项目属于个人兴趣开发,开源出来纯粹是为了技术交流,请勿使用此项目做违反微信规定或者其他违法事情。

建议使用小号进行测试。