当前位置:   article > 正文

Github Actions + 腾讯云函数实现微信推送天气、课表,上课提醒,每日晚安心语_微信推送 github

微信推送 github

前言:

最近发现dy很火的一个小项目,刚好想学习一下微信公众号推送相关知识。基于别人的项目(只有天气推送,原作者忘了抱歉!),增加了一些自己的需求:1、每日推送天气的时候顺便推送当天的课程; 2、如果下一节有课,在上课前推送提醒; 3、每日晚安心语及第二天课程推送。

实现原理:

最开始只有每天的天气推送(每天只需要定时推送一次就好),实现很简单,利用GitHub Actions创建一个定时的工作流就行。
增加需求后,最开始的想法不变,利用GitHub Actions创建工作流多跑项目,让程序一直执行,直到“晚安心语”推送完后就结束。但是有个GitHub Actions有两个致命的限制:1、一个月能够执行项目的总时常为2000分钟,程序一直执行很快就会花光时间! 2、假如你设置的每日推送时间是 7:40 , 由于GitHub Actions是排队执行,如果是高峰期会导致项目延迟执行(一般延迟20-40分钟),所以第二点直接否定了我们想要准时的需求。
值得注意的是,如果我们手动触发GitHub Actions里面的工作流,则是实时执行(本项目部署时间一般是50s左右)。所以,问题转变,通过用腾讯云函数的定时功能来触发GitHub Actions里面的工作流文件,达到曲线救国!
利用腾讯云函数定时触发的功能,只需要在程序设置的每日提醒、每节课上课提醒、每日晚安提醒时间的前两分钟触发Actions里面的工作流文件就能完美解决GitHub Actions时间限制,和定时延迟的弊端。

一、准备条件:

1、GitHub账号,注册地址(https://github.com/)

2、微信公众平台账号,注册地址(https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login)

3、腾讯云函数账号,注册地址(https://cloud.tencent.com/)

4、天行数据账号(用于获取晚安心语内容),注册地址(https://www.tianapi.com/)

二、实现效果图

1、每日提醒

每日提醒

2、上课提醒

上课提醒

3、晚安心语及第二天课程提醒

晚安心语

三、步骤

1、拉取GitHub项目

将仓库里面的项目fork到自己仓库
GitHub项目地址:https://github.com/ghwmx/WeiXinPost

2、更改项目中的配置文件:config.py

更改配置文件
在这里插入图片描述

3、微信公众平台相关配置,登录微信公众平台,免费注册接口测试公众号

复制appIDappsecret 填入config.py 对应位置

在这里插入图片描述

②复制appIDappsecret

在这里插入图片描述

③填入config.py 对应位置

在这里插入图片描述
注意要填写在双引号里面

④复制 config.py 文件最下面的模板,分别添加到微信公众平台

解释:模板中{{***}}以外的文字是固定显示,如图第90行代码,“今天是破壳日的第:{{…}} 天”,这句话对应程序是一个计时器,可以更改为:今天是和。。。恋爱的第{{…}} 天、今天是。。。。等等,根据自己需求更改。
同理,“距离开学还有:{{…}} 天” ,是一个倒计时,可以更改为生日等等,生日暂时只支持阳历,农历可以根据自己需求更改主程序。
复制的时候记得去除每行前面的 “#”,可以先复制到txt文档里面整理好后再添加。
在这里插入图片描述

复制模板 1并添加:

在微信公众平台,往下找到“模板消息接口”---->新增测试模板---->模板标题(就是微信上看到的标题)---->模板内容为刚才复制的内容----->提交
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

⑤复制模板ID,填到config.py的 template_id1

⑥后面的上课提醒模板 和 晚安心语模板同理

在这里插入图片描述

⑦扫描测试二维码,关注公众号,关注后复制微信号,填入config.py中的user

注意:需要填写到双引号里面
在这里插入图片描述
在这里插入图片描述

⑧保存修改

在这里插入图片描述

至此,微信公众平台配置完成!

4、配置GitHub Actions

①打开actions工作流文件模板.yml,并复制里面所有内容

在这里插入图片描述
在这里插入图片描述

②点击Actions,配置工作流文件

在这里插入图片描述
选择 set up a workflow yourself
在这里插入图片描述
删除所有内容,并将复制的内容粘贴到里面,保存
在这里插入图片描述
在这里插入图片描述
点击Actions,会出现刚才新建的工作流文件
在这里插入图片描述
测试工作流程是否正确
在这里插入图片描述
在这里插入图片描述
*若运行失败,点击进去,查看运行过程中产生的错误
在这里插入图片描述
*定位问题出现的原因,是环境配置不正确,还是程序本身的问题。以下问题是程序 main.py 第79行的函数:get_Today_Class运行时发生错误。原因:没有配置开学时间
在这里插入图片描述

③获取GitHub Token为后续腾讯云函数配置做准备

点击个人设置
在这里插入图片描述

滑动到最下面,选择‘开发者设置’
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
至此,github配置完成!

5、配置腾讯云函数

①登录后搜索‘云函数’

在这里插入图片描述

在这里插入图片描述

接下来会有一些身份验证
在这里插入图片描述

②完成相关认证后,选择‘函数服务’,‘新建’

在这里插入图片描述

选择‘从头开始’,函数的名字随意,运行环境选择‘Python3.6’
在这里插入图片描述

接下来更改函数体中的内容,打开GitHub中的 ‘txPost.py’ 复制所有内容
在这里插入图片描述

在这里插入图片描述

粘贴到窗口中,替换其中的token,用户名等信息
在这里插入图片描述

用户名/项目名 如图所示
在这里插入图片描述

其余设置为默认
在这里插入图片描述

在这里插入图片描述

③创建触发函数的定时触发器,按图操作即可在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

恭喜,你已经成功完成所有配置!

结束语

这篇文章因为自己的原因写了很久,到现在写完已经并不是热门话题了哈哈哈哈。2022年暑假的时候在家折腾服务器,恰好看到了某音上给女朋友推送天气,啊啊啊啊,想着虽然没有女朋友,但是我是不是可以从别人的项目里面改一改,写一些自己的需求,学习一下推送的方法,诶!挂到自己的小NAS上岂不美滋滋。当我尝试把写好的程序挂到NAS上时发现小小NAS的性能是在太弱了!

ps:小NAS是我用一个看电视的机顶盒折腾折腾刷成的NAS,芯片是华为的hi3798,Ubuntu系统。又学了学docker,装个openwrt,后来就把他作为一个旁路由了,看看外面的世界。附上小NAS的图,哈哈哈哈还有点小小的成就感。如果后续有感兴趣的朋友,有时间的话可以出一个的刷机顶盒的教程哈哈。
不过后续又折腾了一个群晖NAS,j1900处理器。配合公网ip能够满足我太多稀奇古怪的想法了。
在这里插入图片描述
在这里插入图片描述

因为好朋友需要完成相关Python实验项目,所以又重新熟悉一遍,干脆就趁此机会把它圆满吧。教程应该还是比较详细,我尽可能每一步都截图。希望能够对大家有有些小帮助!感谢!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/70634
推荐阅读
相关标签
  

闽ICP备14008679号