大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂
目录
- 前言
- 效果图
- 前期准备
前言
你是否遇到过这样的场景:
- 自己的私域群或粉丝群,为了活跃群内气氛,每日早晨发送热点新闻至群中,供大家讨论
- 自己的小团队,每天或者每周需要发送日报(周报),但是需要你每天去提醒,不然成员容易忘记
- 做个福利群,每当有福利时,自动给微信群中推送
- …
类似这样的情况,其实还有好多,那么有相关的解决方案吗?
答案当然是:有的,今天,我们就来看看,针对上述的应用场景,我们是如何通过华为云云耀云服务器L实例
效果图
上面就是我再实际应用中的场景,有的是提醒发日报,有的是主动推送新闻,有的是根据群成员发送关键词触发部分功能(签到功能),后期准备签到功能与我的小程序相结合,这样群成员在小程序中的操作和在群内操作,数据都是同步的。
前期准备
接下来,我们将来介绍一下如何实现上述所说的功能,需要我们准备如下环境
- 一个装有win系统的华为云云耀云服务器L实例,参考连接:点击这里
一定要是win
系统,不然无法部署微信机器人
2. 准备个微信小号,如果没有,用自己常用的微信号也行(免责声明:可能有风险哈,自己斟酌)
3. 登录雄雄的小课堂-微信机器人服务端,如果没有账号,可以点击注册。
4. 打开基础配置的菜单,然后找到【自定义接口】
5. 点击【新增自定义接口】
将自己自定义的接口路径填写上去,即可。
- 自定义接口返回格式:文档地址在这里
- 自定义接口参考代码:(高质量热点新闻15条),注意,这个代码是在自己项目中写的,写完之后打包成
jar
发布到服务器中即可,通过ip
的方式或者域名的方式能请求该接口即可。
/**
* (微信机器人)高质量热点新闻15条
*/
@PostMapping("/getNewsByReBang")
public JSONObject getNewsByReBang() {
SimpleDateFormat formatChina = new SimpleDateFormat("yyyy年MM月dd日");
StringBuilder sb = new StringBuilder();
// 将今天日期转换为 SimpleDateFormat 格式,并将明天的日期转换为 SimpleDateFormat 格式
String todayDate = formatChina.format(new Date());
//根据阳历计算农历
Calendar today = Calendar.getInstance();
today.setTime(new Date());
Date tomorrowDate = today.getTime();
String dateTomorrow = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault()).format(tomorrowDate);
sb.append("今天是:" + todayDate);
String week = "";
try {
week = DateUtils.getDaysByWeekChina(dateTomorrow);
//today.setTime(DateUtils.chineseDateFormat.parse(todayDate));
DateUtils lunar = new DateUtils(today);
String nongli = lunar.toString();
nongli = nongli.substring(nongli.indexOf("年") + 1);
sb.append(",星期")
.append(week)
.append(",农历")
.append(nongli);
} catch (ParseException e) {
e.printStackTrace();
}
sb.append("。下面是今天的热点新闻");
sb.append("br");
sb.append("br");
//从缓存中获取新闻信息
Object rebangnews = redisService.getCacheObject("reBangNews");
if (rebangnews == null) {
//调用方法重新执行一遍
setReBangNewsRedis();
rebangnews = redisService.getCacheObject("reBangNews");
}
//获取缓存中的新闻信息
JSONArray array = JSONArray.parseArray(rebangnews.toString());
int i = 1;
for (Object o : array) {
sb.append(i).append(".").append(o);
if (i == 7) {
sb.append("#公众号:雄雄的小课堂");
}
sb.append("br");
i++;
}
ApiGetInfoUtils apiGetInfoUtils = new ApiGetInfoUtils();
JSONObject jsonObjectResult = JSON.parseObject(apiGetInfoUtils.getTxDataInfo(TIAN_KEY, 2, null));
JSONObject resultObject = jsonObjectResult.getJSONObject("result");
String jiyu = resultObject.getString("content");
sb.append("br");
sb.append("【微语】" + jiyu);
sb.append("br");
sb.append("#公众号:雄雄的小课堂,点击关注,可获得最新消息~");
String result = sb.toString();
JSONObject object = new JSONObject();
object.put("code", 200);
object.put("message", "success");
object.put("line", "br");
object.put("image", "");
object.put("aiteOr", false);
object.put("result", result);
return object;
}
- 继续回到微信机器人服务端界面,然后我们找到【定时任务】的菜单,新增一个定时任务即可。
至此,该应用场景已经实现,就等着按照自己定的时间,看看能否发送成功即可,这个案例主要用到的服务器为华为云云耀云服务器L实例,再加上一个微信机器人,即可实现。如果想要稍微复杂点儿的功能,只需要更改自己的业务代码即可。