wechat-assistant

koa+wechaty实现的微信个人秘书,把你闲置的微信号利用起来做个个人秘书

Github stars Tracking Chart

由Wechaty提供

node version
node version


Table of Contents generated with DocToc

微信小助手2.0全新升级

让你闲置的微信号成为你的日常小秘书(没有闲置的也没关系,添加我的小助手微信号,给你分配一个小秘书)。

帮你创建定时任务,每日提醒,纪念日提醒,当日提醒。当然基础的给女朋友的每日说功能也是必备的,而且小助手版每日说为那些非常优秀的程序员准备了多女朋友定时发送提醒功能。同时自带微信机器人功能,群资讯消息定时发送,群机器人聊天,垃圾分类,天气查询,土情话查询,老黄历查询,顺口溜查询等众多功能

效果预览

个人定时与群定时任务

小助手功能一览

安装

1、安装MongoDB与Node

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

2、拉取项目并安装依赖

拉取项目前,国内用户请配置好npm的淘宝源,(很重要,防止下载chromium失败,因为下载文件在150M左右,请耐心等待)

npm config set registry https://registry.npm.taobao.org
npm config set disturl https://npm.taobao.org/dist
npm config set puppeteer_download_host https://npm.taobao.org/mirrors

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

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

cd wechat-assistant
npm install

3、修改配置文件

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

注册天行数据账号

由于本项目部分接口来自天行数据,所以需要注册自己的天行数据账号,并在TXAPIKEY位置填写自己的key,默认我贡献了自己的key,不过还是建议大家自行申请一个,注册地址:天行数据注册

注: 如果删除默认的天行数据key,或者留空会导致获取天气失败,无法使用机器人的情况

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

    /**
     * 群定时任务列表(支持多群配置)
     * roomName: 群名
     * sortId: 新闻资讯类别id 详情参见下方资讯数据字典
     * endword: 结尾备注 ‘————————小助手雷欧’
     * date:每天定时的发送时间,案例中代表每天早上7点30分,具体规则见‘wechaty/lib/index.js’(多个群不要设置相同时间!不要设置相同时间!不要设置相同时间!)
     */
    ROOMLIST: [
      {roomName:'微信每日说',sortId:22,endWord:'小助手雷欧',date:'0 23 19 * * *'},
    ],
     /**
      * 自动添加好友关键词,留空代表同意任何好友请求 
      */
    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

执行完成后请等待下载puppet,直到出现二维码界面,拿出手机扫描即可

5、服务器启动项目

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

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

常见问题解决方法

常见问题解决基本方案

  • 先检查node版本是否大于10
  • 确认npm已经配置好淘宝源
  • 存在package-lock.json文件先删除
  • 删除node_modules后重新执行npm installcnpm install
  • 配置文件是否按照要求设置
  • 本地网络是否存在限制,是否开启了代理服务
  • 本地防火墙是否关闭

1、我的微信号无法登陆

从2017年6月下旬开始,使用基于web版微信接入方案存在大概率的被限制登陆的可能性。 主要表现为:无法登陆Web 微信,但不影响手机等其他平台。 验证是否被限制登陆: https://wx.qq.com 上扫码查看是否能登陆,如果无法登录我也是没有办法的,请不要再问我改怎么解决了。 更多内容详见:

Can not login with error message: 当前登录环境异常。为了你的帐号安全,暂时不能登录web微信。

[谣言] 微信将会关闭网页版本

新注册的微信号无法登陆

2、执行npm run start时无法安装puppet-puppeteer&&Chromium

Centos7下部署出现问题

问题原因:https://segmentfault.com/a/1190000011382062

解决方案:安装依赖

#依赖库
yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 -y
 #字体
yum install ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc -y

windows下,下载puppeteer失败

链接:https://pan.baidu.com/s/1YF09nELpO-4KZh3D2nAOhA
提取码:0mrz

把下载的文件放到如下图路径,并解压到当前文件夹中即可

ubuntu下,下载puppeteer失败

问题原因:https://github.com/GoogleChrome/puppeteer/blob/master/docs/troubleshooting.md#chrome-headless-doesnt-launch-on-unix

解决方案:安装依赖库

 sudo apt-get  gconf-service libasound2 libatk1.0-0 libatk-bridge2.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils wget

3、类似Failed to download Chromium rxxx的问题

ERROR: Failed to download Chromium r515411! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.{ Error: read ETIMEDOUT at _errnoException (util.js:1041:11) at TLSWrap.onread (net.js:606:25) code: 'ETIMEDOUT', errno: 'ETIMEDOUT', syscall: 'read' }

解决方案:https://github.com/GoogleChrome/puppeteer/issues/1597

npm config set puppeteer_download_host=https://npm.taobao.org/mirrors

sudo npm install puppeteer --unsafe-perm=true --allow-root

4、如图所示问题解决办法,关闭win/mac防火墙;如果公司网络有限制的话也可能引起无法启动问题

5. 更多问题

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

注意

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

建议使用小号进行测试,有被微信封禁网页端登录权限的风险(客户端不受影响),请确保自愿使用。

体验与技术交流

欢迎有兴趣的小伙伴可以加小助手微信进行体验,回复“小助手”进入微信小助手项目交流群

小助手功能一览

Main metrics

Overview
Name With Ownerleochen-g/wechat-assistant
Primary LanguageJavaScript
Program languageJavaScript (Language Count: 1)
PlatformLinux, Mac, Windows, 微信公众平台
License:MIT License
所有者活动
Created At2019-04-01 09:39:28
Pushed At2021-10-19 09:38:49
Last Commit At2021-10-19 17:38:44
Release Count1
Last Release Namev2.0 (Posted on 2019-12-26 19:34:43)
First Release Namev2.0 (Posted on 2019-12-26 19:34:43)
用户参与
Stargazers Count386
Watchers Count13
Fork Count90
Commits Count61
Has Issues Enabled
Issues Count5
Issue Open Count2
Pull Requests Count0
Pull Requests Open Count0
Pull Requests Close Count1
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private