专属微信公众号消息推送(java版)
gitee地址:
所用框架及Api
-
springboot搭建应用 天行数据Api(彩虹屁、早安语句、天气)
前置条件
-
新增消息模板,模板中参数内容必须以".DATA"结尾,否则视为保留字,模板保留符号"{ { }}"; 例如{ {date.DATA}}
```tex
我的模板:
{
{morning.DATA}}
{
{date.DATA}} {
{week.DATA}}
城市:{
{city.DATA}}
天气:{
{weather.DATA}}
最低气温: {
{lowest.DATA}}
最高气温: {
{highest.DATA}}
降雨概率:{
{pop.DATA}}
今日建议: {
{tips.DATA}}
今天是我们恋爱的第{
{loveDay.DATA}}天
距离我的生日还有{
{myBirthday.DATA}}天
距离崽崽生日还有{
{babyBirthday.DATA}}天
彩虹屁: {
{pipi.DATA}}
```
-
注册一个天行数据API的账户,申请一个接口获取一个自己apiKey。 传送门:
-
我这里用到了3个接口,早安语句、彩虹屁及天气接口,其中天气接口是计次的,在使用完免费次数后扣天豆,具体看接口详细
项目结构
实现逻辑
-
@Override public String getAccessToken(String appId, String appSecret) { String requestUrl = UrlConstant.ACCESS_TOKEN_URL + "appid=" + appId + "&secret=" + appSecret; String resp = HttpUtil.get(requestUrl); JSONObject result = JSONUtil.parseObj(resp); logger.info("获取access_token:" + resp); String token = result.getStr("access_token"); logger.info("token:" + token); return token; } @Override public List<String> getUserList(String accessToken) { String requestUrl = UrlConstant.GET_USER_LIST+ accessToken; String resp = HttpUtil.get(requestUrl); JSONObject result = JSONUtil.parseObj(resp); logger.info("用户列表:" + resp); JSONArray openIdJsonArray = result.getJSONObject("data").getJSONArray("openid"); List<String> openIds = JSONUtil.toList(openIdJsonArray, String.class); return openIds; } 定时任务推送(我设置的是每天早上7点,可自行调整),根据上面新增的模板格式,填充数据,设置模板id、accessToken、openId发送消息。
配置修改
resource目录下“application.yml”中配置文件修改。
测试
test目录下“TemplateApplicationTests”类,单元测试,可不启动服务,测试代码是否有问题
下一篇:
java并发知识体系总览
