基于Wechaty的群学习内容推送工具
Author: @GilesWong Code: @GilesWong/wechaty-xiaowang
功能
- 定时采集英语的每日一题,推送到群里
- 早晨问好,同时发送当天天气预报,每半天检查一次未来 24 小时内设定的经纬度处是否有降水。
- 采集网站上的新闻早报,补充时政知识
- 发送每日一句
- 图灵机器人对话
(来源于第三方的数据仅供学习之用,请经常访问这些优质网站) ## 特点
- 使用腾讯云云函数进行定时获取信息的操作,减少了服务器上的配置难度
- 使用 Node.js Express 对 Wechaty 进行了封装,后续功能可以本地写好 python 或 nodejs 云函数后,直接部署在腾讯云上,不用调整服务器
- 使用 pm2 进行 wechaty 运行状态的维持(后续可以考虑改为使用无服务器的环境,比如 Leancloud、Heroku 容器等,减少服务器的开支)
功能示例
项目结构
1 |
|
架构说明
- 服务器端 Express + Wechaty 开放一个 HTTP 接口用于访问,传入 HTTP 接口的内容会被发送到预先指定的群内
- 云函数端 定时获取信息,并通过 HTTP 调用发送给 Wechaty 机器人
使用
wechaty 的部署
- 填写代码中的配置,如Token,服务器地址、端口等
- 上传至服务器
- 在其目录下,获取所有用到的 NPM 包
1 |
|
- 使用
node index.js
命令,启动wechaty,并扫码登录 - (可选)调试好之后,可选择使用pm2等工具维持wechaty的运行
- (可选)使用Nginx的反向代理功能来实现HTTPS,增强安全性
- (可选)使用cloudflare的防火墙规则或者Nginx,来将访问权限限制到特定的范围,增强安全性
云函数的部署
- 打开 https://console.cloud.tencent.com/scf/index 注册并新建云函数
- 新建时选择空白函数即可,然后选择目前要增加的函数的环境,之后点击下一步
- Python 3.6
- Node.js 12.16
- 在
提交方法
处,选择上传文件夹
- 选择当前增加的函数的文件夹,上传即可
- 新建完成后,返回云函数主页面,点击
函数服务
-触发管理
- 弹出的创建触发器的页面内,选择自定义触发,填入Cron表达式
- 完成
对于每日新闻
的代码,其运行于Coding的定时构建计划内,详见:https://help.coding.net/docs/devops/ci/trigger.html
致谢
- JUZI Bot提供的Token,使这个小项目具有可行性
- Wechaty (非常优秀的项目)
- 腾讯云(提供了几乎免费的云函数)
- Coding(提供了免费使用的构建计划的主机) ```
基于Wechaty的群学习内容推送工具