告别查岗与遗忘!企业微信 + Python 零感打造专属情侣推送管家

2026-04-07 14:05
4516 字
13 分钟
...
#Python#企业微信开发#自动化部署#Serverless#极客教程

前言: 谈恋爱最怕什么?怕忘了纪念日,怕忘记提醒她带伞。身为极客,我绝不容许每天手动去查天气查日子再发微信这种低效操作。由于企业微信的推送通道不需要用户主动扫码确认,刚好成了我们构建“无感触达”服务的绝佳跳板。今天,我把这个饱受好评的私家小项目 Cloud_Letter 进行了底层配置级别的重构,带你用最优雅、纯粹的姿势,给对象准备一份赛博朋克式的硬核浪漫。

🔗 开源仓库地址:nianshu2022/Cloud_Letter


🧱 阶段一:扫清障碍,获取企微 API 凭证

获取推送权限是我们迈出的第一步。我们需要在企微的生态里构建出一个属于我们自己的应用沙盒,并提取通信所需的鉴权密钥。

  1. 注册企业微信
    直接前往 企业微信官网 正常注册。 jJVPySQxv8kFesq.png

  2. 创建内部应用
    登录后台,在「应用管理」下方点击“创建应用”。上传头像,填写应用名称,点击“创建应用”。
    tISfraBupkh3TAW.png

  3. 提取三核心:AgentId 与 Secret
    应用创建后,点击进入应用详情页,保存好 AgentId (应用ID)和 Secret(应用秘钥)。这是之后与企微服务器握手的安全根基。
    1DNz3fEkjTR2QXy.png

  4. 配置企业可信 IP(核心网络放行)
    页面底部点击“企业可信IP”。

    🚨 踩坑提示: 此配置是企微接口放行的一道硬围栏!不论你是在家里的软路由上跑、还是扔上了云服务器、Serverless 云函数,必须严格查明你程序的公网出口 IP 并填入此处。否则,企微安全网关会直接以 IP not allowed 的报错踢掉你的推送请求。

    TqX2MsWFmNlwajH.png

  5. 提取企业 ID (CORPID)
    点击控制台底部“我的企业”,在“企业信息”最底部找到 企业ID。
    vXsUhQJDPEFbRCW.png

  6. 扫码接收消息
    点击“微信插件”,使用私人日常用的微信扫码关注微工作台!这样,后续应用发出的所有载荷,都会直接透传到个人微信的消息列表,免除了额外下载企微 APP 的累赘。
    JOpe6i2cdXHbl9q.png


🌤️ 阶段二:打通气象数据源(和风天气)

我们要推送气象预报等数据,通过和风天气的开发者 API 获取是最稳妥的方式,其免费额度对于个人极客而言简直绰绰有余。

  1. 注册并登录 和风天气控制台,进入“开发服务控制台”。
    vAFWCm8Kyp3Igrj.png

  2. 点击“项目管理”,进入后创建项目,类型务必选择 Web API,把生成的 KEY 字符串复制保存下来,待会儿配置环境变量时要用。
    MpNPARyXQ1HelUt.png


🛠️ 阶段三:环境重构与源码解耦配置

之前老粗犷版本的代码,需要去各种 python 脚本里进行全局替换,一旦拉取代码直接爆炸,极其不利于 Git 迭代维护。在此次重构中,我完整剥离了业务逻辑,引入了统一的 .env 环境变量挂载机制,实现了代码与隐私配置的绝对分离。

首先,克隆我们的工程内核并安装运行底座:

# 获取源码镜像
git clone https://github.com/nianshu2022/Cloud_Letter.git
cd Cloud_Letter

# 解析并安装运行所需的三方依赖库包(建议基于 virtualenv 等虚拟环境进行)
pip install -r requirements.txt

接下来,我们生成并投喂配置文件。使用这个一行命令快速提取母本文本:

# Windows 环境下的拷贝
copy .env.example .env

# Linux / MacOS 等类 Unix 环境下的拷贝
cp .env.example .env

现在打开这个新生成的隐身文件 .env 配置文件,把上述我们搜括来的系统参数准确填好。不再需要在源码里飞线:

# --- 企业微信核心鉴权凭证 ---
# 【阶段一步骤5】企业级ID
CORPID=ww1a2b3c4d5e6f7g8h
# 【阶段一步骤3】当前应用私密密钥(极其关键,切勿上传 Github!)
CORPSECRET=XyZ_1234567890abcdefghijklmnopqrstuvw
# 【阶段一步骤3】当前应用的节点门牌号
AGENTID=1000002

# --- 和风天气数据挂载 ---
# 【阶段二生成的和风天气鉴权 KEY】
QWEATHER=a1b2c3d4e5f6g7h8i9j0k
# 要求解析的定位系(多个目标区域用 && 进行级联处理)
CITY=北京-丰台区&&上海-浦东新区

# --- 日期溯源计算引擎引擎 ---
# 所需盯梢的目标大日子序列名称
TARGETNAME=宝宝生日&&相识纪念日
# 与上面名称绑定的匹配时间戳(对于国人数学习惯,加一个前缀n代表进入农历模式测算)
TARGETDAY=1999-01-01&&n1999-01-01 
# 起始恋爱日界定模块
BEGINNAME=我们相爱的日子
BEGINDAY=2021-05-20

# --- 自定义渲染装潢板 ---
# 数据装载协议:是否携带图片渲染?(1为包含图文流式混合)
MSGTYPE=1
# 提供一张图片做顶图外链
PIC=https://你喜欢的头图直链.jpg
# CSS/UI底板的预置底包
PICTYPE=fengjing
TITLE=专属早安早报
CONTENT=新的一天也要充满极客精神与快乐!~
CALL=宝贝

🚀 阶段四:自动化极客部署闭环

底座的配置完成以后,首先请在本地开终端执行一遍主测逻辑 python main.py!只要你的微信号“叮”地一声吃到了推送并显示无损,再考虑直接将其挂载上云端。为了满足极客的多样化需求,我准备了这几套云部署打法:

方案 A:Linux 本机 Crontab(守旧稳健派)

如果你拥有一台一直跑着后台服务的便宜云机(切记:服务器出口 IP 必须要塞到企微的管理白名单里头去!):

# 唤出系统原生定时器调度表
crontab -e

# 在尾行写死该命令(举例定义成清晨 7:00 通过绝对路径精确拉起)
0 7 * * * /usr/bin/python3 /root/Cloud_Letter/main.py

方案 B:Serverless 云函数方案(降本免维护派)

不论是腾讯云的 SCF 还是阿里云的 FC,非常适合去跑这种一击即走的轻型执行脚本,连这只用一瞬间的 CPU 的使用费都是完全白给的水平,真正的低开销极客思路。

  1. 构建主线容器:选择开建,配置运行底层跑设环境,选 Python 3.10+ 以上的版本。

  2. 源码打包推送云盘:把我们配好的 Cloud_Letter 一级根目录封包,zip 后传上去。如果你有云原生强迫症,嫌弃本地存放明文 .env 的安全问题,大可放心:你同样可以直接打散参数,挨个全塞到 Serverless 侧板原生的「环境变量」里面去保存。程序自身自带智能嗅探抓取功能!

  3. 捆绑静态 NAT 网关:

    ⚠️ 危险操作: 千万不要漏了这一步!!Serverless 每一次拉起执行时,它向外网抛出请求的源 IP 全是随机动态变化的!这在上一阶段提到的“企微可信IP”过滤门槛面前等于直接撞防火墙送死。必须要花几块钱,在此服务外侧绑定专属的 VPC 并搭建固定出口 NAT 系统,拿一个死守的内向公网 IP,之后再去企业微信后方完成填写白名单步骤。

  4. 对齐主函数钩子入口:不同云厂商唤醒主函数的方法略有差异。针对腾讯云,要把启动目标定位到 main.main_handler;如果是阿里云,必须将入口方法设置为 main.handler 否则会找不到主路径。

  5. 挂载 Cron 轮询规则:利用定时触发器组件,设置一则如同 0 0 7 * * * * 这样的规则参数(意为每天七点)。

方案 C:基于 PythonAnywhere 的免费池方案(无缝白嫖版)

作为良心的免费极客跳板,这老牌站点有个极为可喜的特质 —— 那里有自带极其固定的默认免费 IP 池流,刚好能非常巧妙地跨过企微那套烦死人的IP审查限制。

  1. 进行常规免费账号配置登记之后,顺势唤入一个免费配额的 Bash 外壳终端。
  2. 通过 clone 命令接通主干道源库代码拉出,进入子文件夹创建 .env,把配置文本注入。
  3. 转切到这网站的网页前端:点选挂入 Tasks(任务流)版块。直接塞入跑设入口行段脚本 /usr/bin/python3 /home/你的云端用户名/Cloud_Letter/main.py。
  4. 去配置每日几点几分运行。至于白名单的填写,自己随便拉起执行跑通一次报错日志,它日志控制台里抛出来的受阻阻截 IP,正是你要顺藤摸瓜回抄给“企微内定IP白名单”内的最终出口地址!

📝 总结

对于极客而言,真正的赛博朋克浪漫,从来都不是那些堆砌着价格的礼盒;而是凭借代码与自动化的掌控感,把冰冷的字符化作有温度的每日守护。在此套逻辑闭环里,借助企微高层级的透传通道不仅让我们能越过复杂的企业账号主体认证大坑;同时也依托极客范儿的 .env 配置抽离以及云函数的微服务玩法使得整包项目的代码干净又可以随时异地起调复现。

既然有这空,别再每天设七点的闹钟爬起来粘贴天气预报了,赶紧抽空把你这心上人的定时关怀脚本通过终端自动推上去吧!Enjoy Coding!

mobile-screenshot

© 西贡梦想家·

转载请注明:5ok.net/blog/wecom-daily-push-guide

上一篇
今天把一个自动信息流系统跑通了
下一篇
实录:手机跑通 Gemma 4 离线多模态大模型的踩坑笔记

相关推荐

内网 Nexus 离线 PyPI 镜像搭建全攻略(含 PyTorch CUDA 版)

物理隔离内网、无法访问外网?本文手把手教你用 Sonatype Nexus 搭建私有 PyPI 镜像,完整覆盖仓库创建、离线包下载、twine 批量推送与 pip 配置,并附常见报错排查表。

2026-03-25阅读