专属微信公众号消息推送(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”类,单元测试,可不启动服务,测试代码是否有问题

经验分享 程序员 微信小程序 职场和发展