Skip to content
This repository has been archived by the owner on Feb 7, 2025. It is now read-only.
/ wechatBot Public archive

微信每日说,三步教你用Node做一个微信哄女友(基友)神器!还能帮女朋友解决垃圾分类难题

License

Notifications You must be signed in to change notification settings

leochen-g/wechatBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d2e4aa2 · Apr 22, 2023

History

92 Commits
May 12, 2021
Jul 15, 2021
May 12, 2021
Jul 9, 2019
Mar 30, 2020
Mar 30, 2020
Feb 12, 2022
Jul 15, 2022
Apr 16, 2021
Jun 20, 2019
Feb 23, 2023
Feb 12, 2022
Jan 30, 2023
Apr 22, 2023

Repository files navigation

微信每日说

node version node version

wechatBot 是基于 node 与 wechaty 的微信小情话工具。最初功能只有每日发送天气和一句情话,后来添加了智能机器人聊天功能。但由于本项目面向小白用户与刚接触 node 开发的用户,故拆分了两个项目,一个是功能专一面向小白的 《微信每日说》 (也就是本项目) ,另一个也在我的仓库下 《智能微秘书》 面向有较多编程经验的用户。下面主要介绍微信每日说的使用

主要功能

  • 定时给女朋友发送每日天气提醒,以及每日一句
  • 天行机器人自动陪女朋友聊天(需要自己申请天行机器人api,不过目前开源的机器人 api 都不要抱太大希望,因为很傻的,如果你有发现好的机器人可以来推荐)
  • 垃圾分类功能,使用方法:?垃圾名称
  • 想要更多群管理,自动加好友功能,群定时任务,好友定时任务,并体验在线配置服务,请移步《智能微秘书》

可选聊天机器人

  • 天行机器人: 默认设置为天行机器人(智能化程度一般),还是建议大家自行注册自己账号 天行数据官网
  • 图灵机器人: 目前比较智能的机器人,但是需要注册后进行身份认证,才可调用,且每天只可免费调用 100 次(收费标准 99 元/月,每天 1000 次)图灵官网

天行数据需要申请的api (重要)

如遇到获取不到天气数据,或者机器人无法自动回复等问题,请登录天行数据个人中心查看是否申请了对应的接口权限,以下链接为快速申请链接:

环境

  • node.js ( 16 > version, 推荐使用 V16)
  • Mac / Linux / Windows

docker 部署

直接拉取镜像(推荐)

由于自己构建部分依赖安装比较慢,或者经常会卡住,所以本项目已经提前构建好发布到dockerhub了,直接pull就行了

step1: 拉取镜像

docker pull aibotk/wechat-bot

step2: 配置config/index.js

目录config/index.js中的内容按照说明配置,请注意阅读说明

step3: 启动docker

以下两个命令自己选择一个执行就行,执行的时候会下载puppet,可能会比较慢,耐心等待一下即可

1、请在项目根目录执行,这个命令是前台执行可以直接看到log日志的,但是没法关闭,只能销毁终端实例

docker run -e TZ="Asia/Shanghai" --name=chatBot --volume="$(pwd)/config/":/bot/config aibotk/wechat-bot

2、这个命令可以在后台运行,多了一个-d

docker run -e TZ="Asia/Shanghai" -d --name=chatBot --volume="$(pwd)/config/":/bot/config aibotk/wechat-bot

如何查看docker日志

自行构建docker镜像 (不建议)

需要提前安装 docker 环境,并且配置好config/index.js中的内容

docker build -t wechat-bot .
docker run wechat-bot

安装配置

视频教程: 《三步教你用 Node 做一个微信哄女友神器》

下载安装 node

访问 node 官网:http://nodejs.cn/download/,下载系统对应版本的 node 安装包,并执行安装。

  1. windows 下安装步骤详细参考 NodeJs 安装 Windwos 篇
  2. Mac 下安装详细步骤参考 NodeJs 安装 Mac 篇
  3. Linux 下安装详细步骤参考 NodeJs 安装 Linux 篇

配置 npm 源

配置 npm 源为淘宝源(重要,因为需要安装 chromium,不配置的话下载会失败或者速度很慢,因为这个玩意 140M 左右)

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

下载代码

download-project

# 如果没有安装 git,也可直接下载项目zip包
git clone https://github.com/leochen-g/wechatBot.git
cd wechatBot
npm install

项目配置

所有配置项均在 config/index.js 文件中

  // 配置文件
  module.exports = {
      // 每日说配置项(必填项)
      NAME: 'leo助手', //女朋友备注姓名
      NICKNAME: 'leo助手', //女朋友昵称
      MEMORIAL_DAY: '2015/04/18', //你和女朋友的纪念日
      CITY: '上海', //女朋友所在城市(城市名称,不要带“市”)
      SENDDATE: '0 6 8 * * *', //定时发送时间 每天8点06分0秒发送,规则见 /schedule/index.js
      TXAPIKEY: '', //此处须填写个人申请的天行apikey,请替换成自己的(自行申请天行天气和土味情话的接口) 申请地址https://www.tianapi.com/signup.html?source=474284281

      //高级功能配置项(非必填项)
      AUTOREPLY: true, //自动聊天功能 默认开启, 关闭设置为 false
      DEFAULTBOT: '0', //设置默认聊天机器人 0 天行机器人 1 图灵机器人 2 天行对接的图灵机器人,需要到天行机器人官网充值(50元/年,每天1000次)
      AUTOREPLYPERSON: ['好友1备注','好友2备注'], //指定多个好友开启机器人聊天功能   指定好友的备注,最好不要带有特殊字符
      TULINGKEY: '图灵机器人apikey',//图灵机器人apikey,需要自己到图灵机器人官网申请,并且需要认证

  }

执行

当以上步骤都完成后,在命令行界面输入 node index.js,第一次执行会下载 puppeteer,所以会比较慢,稍等一下,出现二维码后即可拿出微信扫描

执行成功后可看到

效果展示

常见问题处理 (FAQ)

问题解决基本方案:

  • 先检查 node 版本是否大于 16
  • 确认 npm 或 yarn 已经配置好淘宝源
  • 存在 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. 类似 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' }

    解决方案:puppeteer/puppeteer#1597

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

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

  3. 执行 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
      
    • 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
      
    • windows 下,下载 puppeteer 失败

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

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

    • 下载 puppeteer 失败,Linux 和 Mac 执行以下命令 PUPPETEER_DOWNLOAD_HOST = https://npm.taobao.org/mirrors npm install wechaty-puppet-wechat

    • 下载 puppeteer 失败,Windows 执行以下命令

      SET PUPPETEER_DOWNLOAD_HOST = https://npm.taobao.org/mirrors npm install wechaty-puppet-wechat

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

  5. 支持 红包、转账、朋友圈… 吗 ?

    支付相关 - 红包、转账、收款 等都不支持

  6. 更多关于 wechaty 功能相关接口

    参考 wechaty 官网文档

  7. 希望输出运行日志相关 DEBUG 信息, 并保存到本地

    • 在运行前, 系统里输入 export WECHATY_LOG=verbose 就能将默认日志输出改为详细 (其他等级参考官方文档)
    • 保存到本地, 在支持 bash 环境的命令行中, 可以用这样的方式启动程序: node index.js 2>&1 | tee bot.log, 这样控制台和后台会同时显示/存储日志信息.

8 .CentOS 安装 better-sqlite3 报错的问题

  • 首先执行 sudo yum install centos-release-scl-rhsudo yum install devtoolset-8-build 这两个方法

  • 安装相应的gdb,sudo yum install devtoolset-8-gdb

  • 同样,也可以安装相应版本的 gcc 和 g++,sudo yum install devtoolset-8-gcc devtoolset-8-gcc-c++

  • yum安装完后,原来的gcc不覆盖,所以需要执行enable脚本更新环境变量,sudo source /opt/rh/devtoolset-8/enable

  • 可以通过加入到profile里面开机自动source, vim /etc/profile, 跳到最后一行加入以下内容,source /opt/rh/devtoolset-8/enable

参考文章 better-sqlite3

有其他问题也可添加小助手微信后,发送'加群'进入微信每日说技术交流群

注意

本项目属于个人兴趣开发,开源出来是为了技术交流,请勿使用此项目做违反微信规定或者其他违法事情。 建议使用小号进行测试,有被微信封禁网页端登录权限的风险(客户端不受影响),请确保自愿使用。因为个人使用不当导致网页端登录权限被封禁,均与作者无关,谢谢理解

最后

加好友后发送加群,会自动拉你进入群聊,同时此微信号有更多高级功能等待你的发现。

赶快亲自试一试吧,相信你会挖掘出更多好玩的功能

关注公众号:随时获取最新消息

鸣谢

感谢天行数据提供,天气,土味情话,智能机器人 api 等接口

捐助

如果您认为这个项目对你有所帮助,是否可以为它捐助一点资金呢?

不管钱多钱少,您的捐助将会激励我持续开发新的功能!🎉

感谢您的支持!

捐助方法如下:

更新日志

2023-01-30

  • 切换puppet为wechat4u,减少安装时的报错

2022-07-15

  • 升级Wechaty 到1.x,支持UOS协议

2021-05-20

  • 添加docker支持,摆脱环境困扰

2021-04-13

  • 重大更新,被限制web登录的微信也可以使用了

2021-02-08

  • 更新 wechaty 版本 2020-12-07
  • 更新 wechaty 版本

2020-04-02

  • 添加 docker 部署支持
  • 更新 wechaty 版本

2019-07-05

  • 添加垃圾分类功能,默认开启,使用方法: ?垃圾名称

2019-07-04

  • 添加天行数据的图灵机器人接口支持()

2019-07-02

  • 添加机器人多人回复配置项
  • 添加图灵机器人与天行机器人可选配置项

2019-06-27

  • 更新天气接口使用天行 api
  • 每日说添加每日情话
  • 依赖中直接加入wechaty-puppet-puppeteer安装
  • .npmrc中设置项目 npm 源为淘宝源
  • 添加错误解决方案

2019-06-16

  • 更新 wechaty 版本,更改图灵机器人为天行机器人,简化操作配置,修改说明文档,更适合小白用户

2019-03-06

  • 添加图灵机器人配置项,需要先去注册图灵机器人,网址

2019-03-04

  • 进群后播报欢迎词

2019-03-02:

  • 添加自动加好友,自动拉群可配置项
  • 重启后可维持登录状态

About

微信每日说,三步教你用Node做一个微信哄女友(基友)神器!还能帮女朋友解决垃圾分类难题

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published