还在手动发早安吗?教你用java实现每日给女友微信发送早安(java发消息)

  本篇文章为你整理了还在手动发早安吗?教你用java实现每日给女友微信发送早安(java发消息)的详细内容,包含有java 发微信消息 java发消息 java实现给手机发短信 java发送消息 还在手动发早安吗?教你用java实现每日给女友微信发送早安,希望能帮助你了解 还在手动发早安吗?教你用java实现每日给女友微信发送早安。

  摘要:教你如何用java实现每日给女友微信发送早安等微信信息。

  本文分享自华为云社区《java实现每日给女友微信发送早安等微信信息》,作者:穆雄雄 。

  据说这个功能最近在抖音上很火,我没有抖音,没有看到。

  但是我在网上看了,相关案例确实很多,但是大家都是借助于了微信服务号,在我看来,效果很不佳。

  其实我原来的初衷是这样的,每天定时给群里推送新闻,这个原因在之前的文章中也提到过,这边就不在细说了,然后实现了给群中推送之后,就想着,能不能每天给指定人发送消息,网上搜了搜,果然有,各种实现方式五花八门,但是都没看上,于是就自己找了个,自己写。

  网上最多的可能就是利用微信服务号给推送信息,如图所示:

  缺点如下:

  需要点进去订阅号才能看到,没哟起到吸引的作用

  申请的测试服务号,也不知道多久过期,说停就给你停掉了

  定制化的需求有的达不到

  介于此,我就自己找了一个路子去做,昨晚刚写完,测了测,效果还是比较不错的。如下图所示:

  (有点肉麻~)

  下面我们来看看是如何实现的。

  注册智能微秘书账号,花20块钱开个会员(20块钱一点都不多)

  注册天行数据的账号,申请三个接口(早安寄语、每日新闻、土味情话),也可以自己加入别的有意义的内容,直接申请接口就行。

  准备一个微信号,可以用你现在自己的,也可以在申请一个。

  准备一个服务器

  准备一个java项目,放服务器上跑就可以

  假使你的准备工作除4、5之外,都已经做完了,下面我们来看看如何从代码层面来实现。

  调用天行数据的api,获取自己想要的数据,封装起来

  调用只能微秘书的接口,实现给微信好友发送消息

  给控制器controller类中添加定时任务,实现定时发送

  关键代码如下所示:

  1.调用天行数据接口,获取早安寄语:

  
String body = HttpUtil

   .createGet(Constants.TIAN_XING_API + path + "?key=" + TIAN_KEY)

   .execute()

   .body();

   JSONObject jsonObjectResult = JSON.parseObject(body);

   Integer code = jsonObjectResult.getInteger("code");

   if (code != 200) {

   log.error("请求每日新闻的接口出错,出错信息:" + body);

   return "一切都是最好的安排~";

   log.info("请求每日新闻的接口成功:" + body);

   JSONObject resultObject = jsonObjectResult.getJSONObject("result");

   return resultObject.getString("content");

   }

 

 

  
String body = HttpUtil

   .createGet(Constants.TIAN_XING_API + path + "?key=" + TIAN_KEY)

   .execute()

   .body();

   JSONObject jsonObjectResult = JSON.parseObject(body);

   Integer code = jsonObjectResult.getInteger("code");

   if(code!=200){

   log.error("请求每日新闻的接口出错,出错信息:"+body);

   return "一切都是最好的安排~";

   JSONObject resultObject = jsonObjectResult.getJSONObject("result");

   log.info("请求每日新闻的接口成功:"+resultObject);

   return resultObject.getString("content");

   }

 

 

  
String body = HttpUtil

   .createGet(Constants.TIAN_XING_API + path + "?key=" + TIAN_KEY+" type=1 city=370100")

   .execute()

   .body();

   JSONObject jsonObjectResult = JSON.parseObject(body);

   Integer code = jsonObjectResult.getInteger("code");

   if(code!=200){

   log.error("请求每日新闻的接口出错,出错信息:"+body);

   return null;

   return jsonObjectResult.getJSONObject("result");

   "code": 200,

   "msg": "success",

   "result": {

   "date": "2022-12-19",

   "week": "星期一",

   "province": "上海",

   "area": "上海",

   "areaid": "101020100",

   "weather": "晴",

   "weatherimg": "qing.png",

   "weathercode": "qing",

   "real": "3℃",

   "lowest": "2℃",

   "highest": "9℃",

   "wind": "北风",

   "windspeed": "0",

   "windsc": "0级",

   "sunrise": "06:47",

   "sunset": "16:54",

   "moonrise": "",

   "moondown": "",

   "pcpn": "0",

   "uv_index": "0",

   "aqi": "54",

   "quality": "良",

   "vis": "18",

   "humidity": "48",

   "alarmlist": [

   "tips": "晴天紫外线等级较高,外出注意补水防晒。天气凉,适宜着一到两件羊毛衫、大衣、毛套装、皮夹克等春秋着装;年老体弱者宜着风衣加羊毛衫等厚型春秋着装。空气质量较好,可以参与各类户外活动。疫情防控不松懈,出门请佩戴口罩。"

   * */

   }

 

 

  
public static String getDaysByWeekChina(String dateTime) throws ParseException {

   Calendar cal = Calendar.getInstance();

   SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

   Date date = dateFormat.parse(dateTime);

   cal.setTime(date);

   int day = cal.get(Calendar.DAY_OF_WEEK);

   day = day - 1;

   //周的汉字

   String week = "";

   switch (day) {

   case 0:

   week = "日";

   break;

   case 1:

   week = "一";

   break;

   case 2:

   week = "二";

   break;

   case 3:

   week = "三";

   break;

   case 4:

   week = "四";

   break;

   case 5:

   week = "五";

   break;

   case 6:

   week = "六";

   break;

   return week;

   }

 

 

  
public static int getDayByTwoDay(String date1, String date2) {

   SimpleDateFormat myFormatter = new SimpleDateFormat("yyyy-MM-dd");

   Long day = 0L;

   try {

   java.util.Date date = myFormatter.parse(date1);

   java.util.Date mydate = myFormatter.parse(date2);

   day = (date.getTime() - mydate.getTime()) / (24 * 60 * 60 * 1000);

   } catch (Exception e) {

   return 0;

   return day.intValue();

   }

 

 

  
public void sendWechatToUser() {

   String url = WEI_MI_SHU_API + "/openapi/v1/chat/contact";

   WeiZhiMiShuVO weiZhiMiShuVO = new WeiZhiMiShuVO();

   //发送文字信息

   weiZhiMiShuVO.setType(1);

   try {

   //拿到发送的消息列表

   SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日");

   SimpleDateFormat format_h = new SimpleDateFormat("yyyy-MM-dd");

   //今天的日期

   String toDate = format_h.format(new Date());

   //相恋的日期

   String lian = "2022-03-28";

   //两个日期相差的天数

   int cha = DateUtils.getDayByTwoDay(toDate, lian);

   String todayDate = format.format(new Date());

   //根据阳历计算农历

   Calendar today = Calendar.getInstance();

   String week = DateUtils.getDaysByWeekChina(toDate);

   today.setTime(DateUtils.chineseDateFormat.parse(todayDate));

   DateUtils lunar = new DateUtils(today);

   String nongli = lunar.toString();

   nongli = nongli.substring(nongli.indexOf("年") + 1);

   StringBuilder sb = new StringBuilder();

   sb.append("亲爱的老婆~早\n\n")

   .append("充满希望的一天又开始了,今天也要一直开心,不能生我气气~")

   .append("\n\n今天是:")

   .append(todayDate)

   .append(",星期")

   .append(week)

   .append(",农历")

   .append(nongli)

   .append("\n")

   .append("是我们相爱的第:")

   .append(cha)

   .append("天")

   .append("\n\n")

   JSONObject tianqiObject = TianXingApiUtil.getWeather();

   sb.append("目前济南天气:")

   .append(tianqiObject.getString("weather"))

   .append("\n")

   .append("当前气温:")

   .append(tianqiObject.getString("real"))

   .append("\n")

   .append("今天最高温度:")

   .append(tianqiObject.getString("highest"))

   .append("\n")

   .append("最低温度:")

   .append(tianqiObject.getString("lowest"))

   .append("\n")

   .append("风向:")

   .append(tianqiObject.getString("wind"))

   .append("\n")

   .append("空气质量:")

   .append(tianqiObject.getString("quality"))

   .append("\n")

   .append("空气质量指数:")

   .append(tianqiObject.getString("aqi"))

   .append("\n")

   .append("小提示:")

   .append(tianqiObject.getString("tips"));

   //土味情话

   sb.append("\n\n")

   .append("爱你一日言:")

   .append(TianXingApiUtil.getLoveWords())

   .append("\n\n【早安寄语】")

   .append(goodMorning());

   weiZhiMiShuVO.setContent(sb.toString());

   for (String str : SEND_USER) {

   JSONObject object = new JSONObject();

   object.put("apiKey", WEI_MI_SHU_KEY);

   //好友昵称

   object.put("name", str);

   //好友备注

   object.put("alias", str);

   object.put("message", weiZhiMiShuVO);

   String body = HttpUtil.createPost(url)

   .body(JSON.toJSONString(object))

   .execute()

   .body();

   System.out.println("传递的参数是:" + JSON.toJSONString(object));

   System.out.println("发送成功了吗?" + body);

   } catch (ParseException e) {

   e.printStackTrace();

   }

 

 

  
WeiZhiMiShuVO类可以参考文章:java实现给微信群中定时推送消息

  代码中涉及到的常量,都放在了常量类中,SEND_USER是要发给微信好友的好友昵称,不是备注哈。

  智能微秘书接口地址:接口地址

  然后我们在控制器controller中调用该方法即可实现:

  以上就是还在手动发早安吗?教你用java实现每日给女友微信发送早安(java发消息)的详细内容,想要了解更多 还在手动发早安吗?教你用java实现每日给女友微信发送早安的内容,请持续关注盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: