微信公众号推送天气预报


前言

通过SpringBoot实现定时推送早中晚天气预报、心灵鸡汤、生日、情侣在一起时间等,机器人自动回复文字、图片消息、语言等。


提示:以下是本篇文章正文内容,下面案例可供参考

一、微信公众测试号注册

注册用于后续获取注册号信息、接口配置信息、新增模板,链接:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

二、申请聚合数据

https://www.juhe.cn/apiservice,完成注册后获取API

1.天气预报

搜索天气预报API,然后免费获取

在这里插入图片描述

2.心灵鸡汤

搜索心灵鸡汤API,然后免费获取

在这里插入图片描述

3.获取API的KEY

个人中心中获取我的API的KEY,替换application.yml配置中对应的 key,以及想要获取天气预报城市的名称

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

三、配置模板

1.配置微信公众信息

在这里插入图片描述
appID、appsecret、token ,替换application.yml配置中。公众平台接口配置信息,配置 URL(需要公网ip)和 Token(自定义),可以通过内网穿透方式。

在这里插入图片描述

2.微信关注公众号

在这里插入图片描述
关注后可在测试关注平台查看关注人的微信号信息,将该微信号配置到application.yml配置中的 openidList 中,支持多个微信用户。

3.添加消息模板

模板学习接口中新增测试模板,填写模板标题(比如:早上好~),模板内容,添加完将对应的模板ID,配置到 application.yml配置中 templateId 中。templateId1 代表早上模板,templateId2 中午模板,templateId3 晚上模板。

模板内容示例:

{{first.DATA}}

城市:{{city.DATA}}

实况天气:{{weather.DATA}}
气温:{{temperature.DATA}}
风速:{{wind.DATA}}
湿度:{{wet.DATA}}
空气质量指数:{{aqi.DATA}}
今天~后天:{{day1_wea.DATA}},{{day2_wea.DATA}},{{day3_wea.DATA}}

距离MM生日:{{birthDate1.DATA}}
距离GG生日:{{birthDate2.DATA}}

{{note_En.DATA}}
{{note_Zh.DATA}}

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

四、自定义信息

提供男朋友的生日年月,女朋友的生日年月,在一起的日期以及自定义消息,配置到 application.yml中的 message 配置中:

在这里插入图片描述

五、定时推送

本文通过继承 quartz 实现定时任务,定义3个时间点的任务(如:早上7点30、中午12点、晚上6点),需要在这时间点项目是正常运行的,能正常推送消息。(可自定义)

在这里插入图片描述

六、效果图

推送效果:

在这里插入图片描述

机器人回复效果:(支持文本、图片、语音消息)

在这里插入图片描述

在这里插入图片描述

总结

可自定义目标内容、包括字体颜色、定时推送时间、推送内容、自定义回复消息等扩展

### 实现微信公众号天气预报自动推送功能 #### 接口选择 为了实现天气预报的获取,可以选择调用微信官方或其他第三方提供的天气API接口。对于微信公众号而言,通常会选择集成度较高的服务提供商,如和风天气等。这些服务商提供标准化RESTful API接口,开发者只需要按照文档说明传递城市名称或经纬度参数即可获得详细的天气数据。 #### 消息模板设置 针对微信公众平台的消息模板设定部分,在进入微信测试公众账号后台之后,需前往模板消息接口配置区域进行操作。这里可以预先定义好用于发送天气预报的通知样式[^2]。具体来说: - **创建个性化模板**:依据实际需求编辑适合的内容结构,比如包含日期、最高最低气温、空气质量指数(AQI)等要素; - **保存并记录模板ID**:成功提交审核后的模板将会分配唯一的标识符——即模板ID,后续编程逻辑中需要用到此编号来指定所使用的模版形式; ```json { "touser": "OPENID", "template_id": "TEMPLATE_ID", "url": "", "data": { "first": { "value":"您好,以下是今天的天气情况:", "color":"#173177" }, "keyword1":{ "value":"北京", "color":"#173177" }, "keyword2": { "value":"晴朗", "color":"#173177" } } } ``` 上述JSON片段展示了构建一条典型天气预报通知所需的字段布局,其中`first`, `keyword1`, 和 `keyword2`代表不同的占位符位置,可以根据实际情况调整显示的文字内容以及颜色风格。 #### 定时任务配置 要使整个流程自动化运行,则依赖于后端服务器的支持。如果具备云服务器资源的话,那么就可以考虑部署定时执行脚本的任务计划程序(cron job),从而确保每天固定时间触发向订阅者群发最新的气象资讯[^5]。主要步骤如下: - 配置应用基本信息(`appID`, `appsecret`)到项目中的配置文件(application.yml)[^4]; - 编写Python/Node.js等语言编写的脚本来定期抓取目标城市的天气状况,并组装成符合微信要求的数据包格式; - 使用Linux系统的cron表达式安排周期性的命令调度,例如每晚凌晨两点钟启动一次更新作业。 通过以上三个方面的协同工作,便能够顺利完成基于微信公众号平台上的天气预报自动推送服务建设。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值