查看原文
其他

520马上就到了,带你半小时搭建一个微信哄女友神器

点击关注👉 一行Java 2022-08-09

来源: github.com/gengchen528/wechatBot

1微信每日说

wechatBot 是基于 node 与 wechaty 的微信小情话工具。

wechaty: https://github.com/Chatie/wechaty

主要功能

  • 定时给女朋友发送每日天气提醒,以及每日一句
  • 天行机器人自动陪女朋友聊天(需要自己申请天行机器人api,不过目前开源的机器人 api 都不要抱太大希望,因为很傻的,如果你有发现好的机器人可以来推荐)
  • 垃圾分类功能,使用方法:?垃圾名称
  • 最近看到 python 版支持多女朋友配置,我思考了一下,还是不要加了比较好,我们要做一个专一的人,哈哈

可选聊天机器人

  • 天行机器人: 默认设置为天行机器人(智能化程度一般),还是建议大家自行注册自己账号

    天行数据官网: https://www.tianapi.com/signup.html?source=474284281

  • 图灵机器人: 目前比较智能的机器人,但是需要注册后进行身份认证,才可调用,且每天只可免费调用 100 次(收费标准 99 元/月,每天 1000 次)

    图灵官网: http://www.tuling123.com/

  • 天行对接的图灵机器人: 与图灵机器人智能程度相同,通过天行数据平台调用

    详情介绍: https://www.tianapi.com/apiview/98

2天行数据需要申请的api

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

  • 天行机器人:https://www.tianapi.com/apiview/47
  • 天气查询:https://www.tianapi.com/apiview/72
  • 垃圾分类:https://www.tianapi.com/apiview/97
  • 土味情话:https://www.tianapi.com/apiview/80
  • 天行图灵机器人: https://www.tianapi.com/apiview/98

3环境

  • node.js (version >= 12)
  • Mac/Linux/Windows

4docker 部署(新增)

自行构建镜像(推荐)

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

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

拉取已 build 镜像

首先创建一个config目录,里面创建index.js文件后,把项目配置内容拷贝到index.js文件中,修改对应参数

docker push aibotk/wechat-bot
docker run -v config目录的绝对路径:/bot/wechatBot/config aibotk/wechat-bot

下载安装 node

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

  1. windows 下安装 node 步骤详细参考 https://www.cnblogs.com/liuqiyun/p/8133904.html

  2. Mac 下安装 node 详细步骤参考 https://blog.csdn.net/qq_32407233/article/details/83758899

  3. Linux 下安装 node 详细步骤参考 https://www.cnblogs.com/liuqi/p/6483317.html

配置 npm 源

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

npm

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 clone git@github.com:gengchen528/wechatBot.git(如果没有安装git,也可直接下载项目zip包)
cd wechatBot
npm install

项目配置

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

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

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

执行

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

执行成功后可看到

5效果展示

6常见问题处理

问题解决基本方案

  • 先检查 node 版本是否大于 12
  • 确认 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' }

    解决方案: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

  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

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

  • 支持 红包、转账、朋友圈… 吗

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

  • 更多关于 wechaty 功能相关接口

    参考 wechaty 官网文档:https://wechaty.js.org/docs/

  • 7注意

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


    END

    精品资料,超赞福利,免费领


    点击👇名片,关注公众号,回复【  资料  
    获取大厂面试资料1T+视频教程电子书
    各类精品资料。

    注:资料太多,截图为其中部分

    最近开发整理了一个用于速刷面试题的小程序;其中收录了上千常见面试题及答案(包含基础并发JVMMySQLRedisSpringSpringMVCSpringBootSpringCloud、消息队列等多个类型),欢迎您的使用。QQ交流群:912509560



    本以为精通 Java 线程池,看了这些误区,发现还是太年轻了
    单线程 Redis 已经够快了,为什么6.0还要引入多线程?
    面试官: 说说扫码登录的本质与原理?
    单点登录系统原理与实现,工作必备技能
    这样规范 Java 代码,同事直呼:666
    CTO:3年开发?if-else还写这样?
    这样打印日志,才能助我们快速定位问题

    👇👇
    👇点击"阅读原文",获取更多资料(持续更新中)

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存