日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java实现不再单身,微信主动发送早安给女友

發布時間:2024/3/26 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java实现不再单身,微信主动发送早安给女友 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網上案例

網上最多的可能就是利用微信服務號給推送信息,如圖所示:

缺點如下:

  • 需要點進去訂閱號才能看到,沒喲起到吸引的作用
  • 申請的測試服務號,也不知道多久過期,說停就給你停掉了
  • 定制化的需求有的達不到

介于此,我就自己找了一個路子去做,昨晚剛寫完,測了測,效果還是比較不錯的。如下圖所示:

實現方式

下面我們來看看是如何實現的。

準備工作

  • 注冊智能微秘書賬號,花20塊錢開個會員(20塊錢一點都不多)
  • 注冊天行數據的賬號,申請三個接口(早安寄語、每日新聞、土味情話),也可以自己加入別的有意義的內容,直接申請接口就行。
  • 準備一個微信號,可以用你現在自己的,也可以在申請一個。
  • 準備一個服務器
  • 準備一個java項目,放服務器上跑就可以
  • 假使你的準備工作除4、5之外,都已經做完了,下面我們來看看如何從代碼層面來實現。

    實現原理

    • 調用天行數據的api,獲取自己想要的數據,封裝起來
    • 調用只能微秘書的接口,實現給微信好友發送消息
    • 給控制器controller類中添加定時任務,實現定時發送

    關鍵代碼如下所示:

  • 調用天行數據接口,獲取早安寄語:
  • /*** 獲取每日早安寄語**/public static String getGoodMorning() {String path = "zaoan/index";//調用每日簡報的接口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");}
  • 調用天行數據接口,獲取土味情話:
  • /*** 獲取每日土味情話**/public static String getLoveWords(){String path = "saylove/index";//調用每日簡報的接口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");}
  • 調用天行數據接口,獲取天氣預報:
  • /*** 獲取天氣預報**/public static JSONObject getWeather(){String path = "tianqi/index";//調用每日簡報的接口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": "晴天紫外線等級較高,外出注意補水防曬。天氣涼,適宜著一到兩件羊毛衫、大衣、毛套裝、皮夾克等春秋著裝;年老體弱者宜著風衣加羊毛衫等厚型春秋著裝。空氣質量較好,可以參與各類戶外活動。疫情防控不松懈,出門請佩戴口罩。"}}* */}

    日期處理關鍵代碼

  • 獲取今天是周幾
  • /*** 獲取漢字的今天周幾* @param dateTime* @return* @throws ParseException*/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;}
  • 獲取紀念日的天數(兩個日期之間的差):
  • /*** 得到二個日期間的間隔天數** @param date1* @param date2* @return*/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();}

    實現給指定微信好友推送消息

    /*** 每天將指定信息推送到微信個人*/@Overridepublic 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中調用該方法即可實現:

    /*** 發送消息給指定的人*/@GetMapping(value = "/sendWechatToUser")@Scheduled(cron ="0 0 8 * * ?")public void sendWechatToUser(){articleService.sendWechatToUser();}

    cron ="0 0 8 * * ?是一個corn表達式,表示每天早上8點給指定的微信好友推送消息。

    總結

    以上是生活随笔為你收集整理的java实现不再单身,微信主动发送早安给女友的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。