基于Wechaty的群学习内容推送工具


Author: @GilesWong Code: @GilesWong/wechaty-xiaowang

功能

  • 定时采集英语的每日一题,推送到群里
  • 早晨问好,同时发送当天天气预报,每半天检查一次未来 24 小时内设定的经纬度处是否有降水。
  • 采集网站上的新闻早报,补充时政知识
  • 发送每日一句
  • 图灵机器人对话

(来源于第三方的数据仅供学习之用,请经常访问这些优质网站) ## 特点

  • 使用腾讯云云函数进行定时获取信息的操作,减少了服务器上的配置难度
  • 使用 Node.js Express 对 Wechaty 进行了封装,后续功能可以本地写好 python 或 nodejs 云函数后,直接部署在腾讯云上,不用调整服务器
  • 使用 pm2 进行 wechaty 运行状态的维持(后续可以考虑改为使用无服务器的环境,比如 Leancloud、Heroku 容器等,减少服务器的开支)

功能示例

img-4425.jpg img-4418.jpg

项目结构

1
2
3
4
5
6
7
8
9
10
11
12
13
|-- wechaty-xiaowang
|-- index.js //主程序
|-- package-lock.json
|-- package.json
|-- puppet-config.js //pupet参数
|-- serverchan.js //通过方糖报告错误
|-- tulingbot.js //图灵机器人
|-- cloudFunctions // 运行在腾讯云上的云函数爬虫
|-- dailyEnglishTest //英语每日一题
|-- dailySentence //英语每日一句
|-- moringNews //每日早报
|-- rainDetection //降雨提醒
|-- weatherTip //早晨问好,及天气预报

架构说明

  • 服务器端 Express + Wechaty 开放一个 HTTP 接口用于访问,传入 HTTP 接口的内容会被发送到预先指定的群内
  • 云函数端 定时获取信息,并通过 HTTP 调用发送给 Wechaty 机器人

使用

wechaty 的部署

  • 填写代码中的配置,如Token服务器地址、端口
  • 上传至服务器
  • 在其目录下,获取所有用到的 NPM 包
1
2
npm i

  • 使用node index.js命令,启动wechaty,并扫码登录
  • (可选)调试好之后,可选择使用pm2等工具维持wechaty的运行
  • (可选)使用Nginx的反向代理功能来实现HTTPS,增强安全性
  • (可选)使用cloudflare的防火墙规则或者Nginx,来将访问权限限制到特定的范围,增强安全性

云函数的部署

对于每日新闻的代码,其运行于Coding的定时构建计划内,详见:https://help.coding.net/docs/devops/ci/trigger.html

致谢

  • JUZI Bot提供的Token,使这个小项目具有可行性
  • Wechaty (非常优秀的项目)
  • 腾讯云(提供了几乎免费的云函数)
  • Coding(提供了免费使用的构建计划的主机) ```

基于Wechaty的群学习内容推送工具

http://wwg.xyz/wechaty/

作者

Giles

发布于

2020-08-24

更新于

2022-07-22

许可协议

评论

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×