专属微信公众号消息推送(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并发知识体系总览