DEV Community

Hollow Man
Hollow Man

Posted on

Schedule notifications on WeChat with Azure AKS

Overview of My Submission

An application that allows you to schedule notifications on WeChat so that you can get notified while keep connected with your friends.

This app is realized through several WeChat message push platforms, such as PushPlus and ServerChan, as well as the native Enterprise version of WeChat (WeCom) message push API.

The application be deployed using Azure AKS by helm chat with this script. For meanings of configurations please refer to the README file.

Submission Category: Computing Captains

Link to Code on GitHub

GitHub logo HollowMan6 / Wechat-Timed-Message

Send timed message to Wechat. (向微信推送定时消息)

向微信推送定时消息

last-commit Artifact HUB release-date Python package

Followers watchers stars forks

Open Source Love GPL Licence Repo-Size

Total alerts Language grade: Python

(English version is down below)

源Github项目地址:https://github.com/HollowMan6/Wechat-Timed-Message

好用记得收藏(右上角加星★Star)哦!

微信消息推送脚本

工作流存放文件夹

支持Fork本仓库直接使用工作流(推荐)GitLab使用Pipeline自行创建仓库使用工作流CronTab/Python后台定时调度运行Docker运行Kubernetes直接运行使用Helm包管理在Kubernetes运行Heroku部署运行等。

Docker镜像支持在amd64arm64arm32v7arm32v6ppc64les390xi386mips64le多架构(包括大型机、普通PC机以及树莓派等开发板)运行。

使用方法

你需要fork本仓库,之后在你fork的仓库中创建相关Actions Secret并进行相关设置(按下图所示点击1,2,3的次序,即可进入新建Actions secrets的界面):

你可以从以下三个推送平台中任选一个或多个来接受推送的消息:

PushPlus(推荐)

登录PushPlus,然后在pushplus网站中找到您的token,创建一个Name为PPTOKEN,value为您的token值的Actions secret,就可以进行一对一推送信息。

如果需要对多个账号推送信息,即一对多推送,还需要另外新建一个群组,记下群组编码,然后创建一个Name为PPTOPIC,value为您的群组编码的Actions secret。

企业微信推送

  1. 首先注册企业微信
  2. 注册成功后,获取企业id,创建一个Name为CORPID,value为您的企业id值的Actions secret。
  3. 选择应用管理应用创建应用
  4. 自己创建完成后获取Secret和AgentId,创建分别Name为CORPSECRETAGENTID,value为这些值的Actions secret。
  5. 进入我的企业微信插件,拉到下边扫描二维码,关注以后即可收到推送的消息。

效果示意 示例内容

Server酱

如果要使用Server酱,请创建一个/修改Name为SERVERCHANSCKEY,value为你的SendKey值的Actions secret。


上述配置成功后,配置工作流文件,以工作流1.yml为模板,创建你自己的工作流或者在提供的工作流上进行修改。你可以任意更改name为无空格的英文字母和数字组合的字符串,cron为你想要发送消息的指定时间(你可以使用crontab guru进行cron表达式的调试,所有时间均为UTC时间,请进行时区换算)(因为Github方的原因,预定运行时间可能会有半小时左右的延迟)。然后创建一个或者两个Actions secrets,一个必须创建,其name为TITLE[name](请将这里的[name]修改为workflow的name),value为要发送消息的标题,例如在提供的工作流中,这里的name为TITLE1;另一个为可选的,其name为MSG[name],同理进行相应的替换,value为要发送消息的标题。

随后,按下图所示点击1,2,3,4的次序,你可以手动触发工作流的执行来进行测试。

点开任意一个运行记录,依次点开下图所示1,2,你可以看到运行记录。

如果某次因为某些因素工作流运行失败,GitHub会自动发邮件提醒工作流运行失败。

:增加可选的遇到发送消息失败的情况,自动重启工作流,并等待一段时间后再次发送消息。如果你需要这个功能,则请创建一个Personal Access Token, 获取教程(第7步令牌的作用域权限你只需要选中workflow这一栏即可)。然后创建一个Name为GPATOKEN,value为你的令牌值的Actions Secret。

默认再次发送消息等待时间为30分钟,如果你有需要可以修改你的fork仓库对应的这里30m替换为你想要的数值,这里的时间遵循Linux sleep 函数对应时间语法:一个数字后接 s 对应秒, m 对应分钟等。

如果是因为本仓库程序本身因为失效而导致的报错,你可以取消正在运行中的工作流从而终止这一循环。

GitLab

GitLab仓库地址:https://gitlab.com/HollowMan6/Wechat-Timed-Message

你还可以使用GitLab的Pipeline来进行消息推送:

同理,fork完GitLab仓库到你的名下后,创建Variables(类似于GitHub Actions Secrets):

同理,你还可以创建一个Pipeline triggers(类似于Github Access Token)并加入到Variables中来启用自动打开失败再次消息推送:

默认再次消息推送等待时间为30分钟,如果你有需要可以修改你的fork仓库对应的…

Additional Resources / Info

Top comments (0)