支持以下功能
企业ID: 应用AgentID: 应用Secret: 想要收到推送的时间: (以下均非必填)
和风天气Key(如果需要天气预报):天行Key(如果需要彩虹屁): 需要显示天气预报的城市 (省/市-市/县/区,可以多个,例如成都-双流)
纪念日时间及事件(每年固定时间,可以多个,支持农历/公历,例如:猪猪的生日:农历2001-01-01):单日时间及事件(某一年特定,可以多个,支持农历/公历,例如:在一起:2020-01-01)
自定义标题(例如:给猪猪的推送):称呼(例如:宝贝~): 第一段文字(例如:记得喝水哦~): 固定头图链接或者文件,不填使用随机图片
随机头图类型(动漫、妹子、风景、不显示图片):
上传应用LOGO并填写应用名称,即机器人的头像与名字(这里的图片和名字都可以修改),可见范围按需选择,选择企业条目,即表示企业内所有人可见
需要天气预报的话,还需要注册和风天气开发者(链接:https://id.qweather.com/#/login),登录后前往控制台
完成开发者认证以后,在 应用管理-创建应用-免费开发版-输入应用名称-Web API-输入KEY名称-完成创建,得到这一串KEY(即环境变量qweather)并记录
以上,基本的配置数据已经全部到手。
所有命令务必复制完整,例如pip3指令末尾有个-t空格.
最后一行命令务必要按下Enter换行键执行完成
重建前记得备份配置文件config.py(如果有填写,填写在函数配置-环境变量的可以忽略)
git clone https://gitee.com/thund1r/daily-info.git
cd daily-info
pip3 install --upgrade -r requirements.txt -t .
最后一行命令-t空格后面有个点,务必复制完全,执行到最后务必多按几下Enter换行键确保执行完成
完善config.py中的配置,参考腾讯云函数
自行搜索自己使用的服务器/面板如何设置定时执行index.py即可
前往腾讯云官网(链接:https://cloud.tencent.com/),扫码登录,完成身份认证。腾讯云函数按月收费,但是云+校园(链接:https://cloud.tencent.com/act/campus?utm_source=qcloud&utm_medium=navigation&utm_campaign=campus)针对25岁以下用户免学生认证享受1.08元购买一年的腾讯云函数个人标准版。
云函数控制台(链接:https://console.cloud.tencent.com/scf/) -函数服务-新建
1.从头开始-事件函数-环境 Python3.7,自行修改函数名称
2.忽略函数代码,来到高级设置-内存 64M-执行超时时间100秒-填入环境变量
3.如果觉得这里配置环境变量太麻烦,可以跳过此处,在后续的代码文件config.py中配置。
4.两边只需要配置一处,此处优先级大于config.py。更建议在此处填写完配置,方便后续更新。
5.各环境变量含义如图,务必注意填写的格式,最后一行link请在后续完成配置页面之后再填写。
6.网络配置-勾选固定出口IP
7.触发器配置-自定义创建-定时触发-自定义触发周期-Cron表达式示例0 30 9 * * * *,即早上9点30分发送消息,前三位依次是秒 分 时,具体参考Cron相关文档。建议不要设置在整点
待函数加载完成,跳转到函数配置页-网络配置-公网固定IP,把IP复制下来
回到企业微信-应用管理-刚刚创建的应用-最下方企业可信IP-点击配置-粘贴进去-确定
回到云函数控制台,函数管理-函数代码-在线编辑-终端-新终端,复制以下命令,鼠标右键点击终端窗口即粘贴,Enter换行键执行
rm -rf src
git clone https://gitee.com/thund1r/daily-info.git
mv daily-info src
cd src
pip3 install --upgrade -r requirements.txt -t .
最后一行命令-t空格后面有个点,务必复制完全
1.执行到最后务必多按几下Enter换行键确保执行完成,终端出现进度条、点击左侧src文件夹出现如图所示一堆文件即可。
2.如果前面没有填写环境变量,还需要在src文件夹-config.py文件完善配置,在冒号右边的""里面填写相应的数据即可,务必注意备注的格式要求
3.点击部署,部署成功后,点击测试,查看日志输出以及微信消息执行日志末尾显示“企业微信消息发送成功”、微信收到消息,但是打不开卡片。接下来配置可以点击开的图文详情页面。
触发方式-API网关触发-勾选启用集成响应
填写到函数配置-编辑-环境变量-link或填写在config.py中
点击测试发送一条信息,点击卡片,能顺利打开页面显示内容即为成功。
设置在手机微信上接收企业微信消息
所有命令务必复制完整,例如pip3指令末尾有个-t空格.
最后一行命令务必要按下Enter换行键执行完成
重建前记得备份配置文件config.py(如果有填写,填写在函数配置-环境变量的可以忽略)
一切更新问题都可以通过删除整个文件夹,重新拉取代码并安装依赖来解决
cd src
git stash
git pull
git stash pop
pip3 install --upgrade -r requirements.txt -t .
最后一行命令-t空格后面有个点,务必复制完全
执行到最后务必多按几下Enter换行键确保执行完成
终端出现红红绿绿的加减号最后出现新的命令行等待输入,WARNING信息不用管,只要没有红色Error信息即可。
rm -rf src
git clone https://gitee.com/thund1r/daily-info.git
mv daily-info src
cd src
pip3 install --upgrade -r requirements.txt -t .
最后一行命令-t空格后面有个点,务必复制完全
执行到最后务必多按几下Enter换行键确保执行完成
3. 点击部署-测试-查看日志与微信消息
“No module named XXXXX” 日志倒数第三行中出现“No module named XXXXX”,说明函数没有找到依赖。情况一,没有进入src文件夹就运行了pip3指令,请先执行cd命令到文件夹,再执行pip3指令。情况二,pip3
指令执行有误。请务必完整复制完整,整条pip3指令,末尾-t空格后面有个点,复制完整再粘贴执行。“获取企业微信access_token失败” 请检查corpid、corpsecret、agentid是否拼写正确,值是否正确,是否有多余空格字符。
没有找到XX这个地方/获取XXID失败 请检查城市填写格式是否符合要求,格式市-市/区/县,不要携带市/区/县等后缀,例如成都-双流。检查和风天气qweather是否拼写正确,key是否填写正确,是否有多余空格字符。
请先检查配置信息是否填写正确,包括名称(key)的拼写是否正确,内容(value)的格式是否正确,值是否正确,是否有多余的空格。
无法解决,请先备份config.py(如果有填写,填写在函数配置环境变量的可以忽略),删除整个src文件夹,重新执行配置函数时拉取代码并安装依赖的命令。
仍然无法解决,请在文首扫码加入DailyInfo交流群,备注部署方式,发送日志截图。
终端
如果终端执行时间过长,可以结束终端(终端小窗右边的垃圾桶图标),重新开新终端执行命令。
推送延迟
由于准点可能是云函数和api的触发高峰期,可能会导致运行拥堵,由于超时时间设置为900秒即15分钟。如果延迟严重,请尝试不设置在准点或者把超时时间修改为100秒。
日志
腾讯云日志服务CLS将于2022年9月5日开始执行按量计费。请在配置并测试好云函数之后及时贯日日志投递并删除日志。操作如下:
前往 云函数控制台(链接:https://console.cloud.tencent.com/scf/lis),点击进入云函数-函数管理 - 函数配置-右上角编辑-日志配置-取消勾选日志投递
在日志服务 CLS 控制台日志主题(链接:https://console.cloud.tencent.com/cls/topic) -中删除相应日志主题,避免后续产生不必要的费用。
点击上方地名,等待片刻,确认所有地区尾部都出现0,即所有地区日志主题都已经删除。
如果其他地区尾部出现不为0的情况,请点击切换至该地区并删除日志主题。
配置
所有环境变量均可通过直接修改 config.py 完成配置,系统环境变量优先级高于 config.py 。更推荐配置在环境变量中,方便后续更新。
截断
受企业微信API限制,超出字数限制部分文字将自动截断不展示。图文展示页面不受此限制,但仍受图片链接长度和文字长度的制约,请合理安排多地区天气、多日期提醒等内容。
命令
所有命令务必复制完整,例如pip3指令末尾有个-t空格.
最后一行命令务必要按下Enter换行键执行完成
重建前记得备份配置文件config.py(如果有填写)
填写在函数配置-环境变量的可以忽略
云服务器部署/重建
git clone https://gitee.com/thund1r/daily-info.git
cd daily-info
pip3 install --upgrade -r requirements.txt -t .
rm -rf src
git clone https://gitee.com/thund1r/daily-info.git
mv daily-info src
cd src
pip3 install --upgrade -r requirements.txt -t .
git stash
git pull
git stash pop
pip3 install --upgrade -r requirements.txt -t .
cd src
git stash
git pull
git stash pop
pip3 install --upgrade -r requirements.txt -t .
对功能的一些唠叨
• 必应、金山词霸、一个图文都是现成的接口,没啥说的。
• 天气预报
包含天气情况、气氛范围以及穿衣建议,支持多个地区的天气,方便需要多地天气以及异地恋的朋友。由于和风天气的接口不提供具体的天气图片,所以用的正则表达式匹配文字,显示对应的emoji表情☀️⛅☁️️☃️️️️️,嗯,《非常智能》。
• 日期提醒
日期提醒支持纪念日与单日两种类型。纪念日每年都有,例如“距离结婚纪念日还有XX天”,会循环计算离下一次纪念日的时间。单日只有某一年有,过去或者未来均可,例如“和某某在一起已经XX天”、“距离某某考试还有XX天”。
均支持农历与公历,农历在年份前加字母n就好。日期提醒统一自动排序,越靠近的日期越在上方,到期的时间emoji会从日历️变成五角星,以提升提醒的有效性。
• 推送模式
推送支持单图文/多图文两种推送模式。项目原来是多图文,每篇图文内容纯粹,不会各种信息汇合在一起,但是卡片能显示的信息十分有限,更多的消息需要点击进去查看,效率降低。于是又做了单图文的版本,在图文的描述区域显示大部分信息,更加直观方便。
• 图文展示页面
图文卡片均支持点击,链接前往图文详情展示页。页面来源于我的另一个小项目Diary——基于 Python Fastapi
的简易图文展示服务,通过URL传递参数实现,不存储任何数据,也已经开源。
Gitee地址:https://gitee.com/thund1r/diary
Github地址:https://github.com/Thund1R/diary