java实现如何定时给微信群中发送消息

大家好,我是雄雄。

在这里插入图片描述

前言

前几天,发了一个系列这样的文章,如下所示:

  1. java实现每日给女友微信发送早安等微信信息
  2. java实现给微信群中定时推送消息
  3. 如何将每日新闻添加到自己博客中,发送到微信群中

基本都是说的一个事儿,那就是如何实现java与微信打通!

今天我们主要来介绍这个事儿,应用场景有以下几块:

  • 我们都知道,企业微信是有许许多多的开放api供开发者使用的,比如使用java实现一个定时给微信中发送消息的功能,配置个群机器人就可以实现,那不借助企业微信可以实现吗?
  • 不借助别的技术,使用纯java可以实现给群中发送消息吗?

当然,是可以的!!今天,我们就来展开的介绍一下,如何直接使用java实现上面所说的技术。

效果图

每天晚上20.30提醒大家发日报
在这里插入图片描述

每天早上5.20发送时事新闻
在这里插入图片描述
来自群成员的好评
在这里插入图片描述

实现思路

  1. 定时任务为了方便快捷,我们直接使用springboot自带的来实现
  2. 如何实现给微信群中发送消息?我们可以使用wechaty技术,也可以使用别的,因为wechaty要想使用它,是有一定的门槛的。技术能力的要求是其一,其二就是需要整一个ipad协议的token,才能使用。有人可能会说:那我整个token不就行了吗?

这倒是,你整一个就行,但是收费的,你愿意吗?一月几百你愿意吗?相信很多人一月拿出来几百肯定是不太愿意的。
3. 既然第二条有点棘手,那么还有没有别的方法,有!那就用封装过的wechaty来实现----智能微秘书(不是打广告哈),因为我刚开始也是看的wechaty,整好久,没有整出来,虽然giteegithub中确实也有demo,但是拉下来之后要想和自己的业务无缝衔接,还是有点麻烦的。

实现代码

  1. 由于我们是基于封装完成wechaty智能微秘书来实现的,所以需要先注册个账号,地址为:点我
  2. 花20块钱开个月度会员,我是觉得20块钱可能就是一顿饭钱的事儿,何不拿来自己整点东西玩玩(只有会员才有openapi)的权限。
    在这里插入图片描述
  3. 剩下的就简单了,然后我们只需要按照接口文档调用就行啦。
    由于调用接口的时候,需要传递一个message对象,所以我这边就封装成了个实体类:
    在这里插入图片描述
    实体类如下WeiZhiMiShuVO
package com.shiyi.vo;import lombok.Data;/*** @author: muxiongxiong* @date: 2022年12月17日 21:26* 公众号:雄雄的小课堂* 博客:https://blog.csdn.net/qq_34137397* 个人站:https://www.穆雄雄.com* 个人站:https://www.muxiongxiong.cn* @Description: 发送群消息的实体类(微秘书)*/
@Data
public class WeiZhiMiShuVO {/*** 消息类型:1 文字 2 图片url 3 图片base64 4 url卡片链接*/private Integer type;/*** 消息内容,如果type为1必填,内容换行使用\n*/private String content;/*** type 为2,3,4必填,图片地址,或者文件地址,例如png,jpg或者zip,excel都可以,必须是网络地址*/private String url;/*** type 为4必填,卡片链接的描述*/private String description;/*** 	type 为4必填,卡片链接的缩略图,网络图片地址*/private String thumbnailUrl;/*** type 为4必填,卡片标题内容*/private String title;}
  1. 调用给群里发送消息的接口,封装成自己想要发送的内容:
public void sendWechat(JSONObject contentObject) {String url = WEI_MI_SHU_API + "/openapi/v1/chat/room";WeiZhiMiShuVO weiZhiMiShuVO = new WeiZhiMiShuVO();weiZhiMiShuVO.setType(1);//拿到发送的消息列表JSONArray array = contentObject.getJSONArray("list");String todayDate = contentObject.getString("todayDate");StringBuilder sb = new StringBuilder("今天是:" + todayDate);//根据阳历计算农历Calendar today = Calendar.getInstance();// 获得今天是一周的第几天,星期日是第一天,星期二是第二天......// 因为按中国礼拜一作为第一天所以这里减1String week = "";try {week = DateUtils.getDaysByWeekChina(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));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).append(",早安🌞🌞🌞").append("\n");} catch (ParseException e) {e.printStackTrace();}int index = 1;for (Object o : array) {JSONObject item = (JSONObject) o;//标题加时间sb.append("\n").append(index).append(".").append(item.getString("title")).append("\n");;index++;}sb.append("\n详情请点击:https://88688.team/articles/").append(contentObject.getString("aid")).append(" 查看~\n");sb.append("\n【早安寄语】").append(goodMorning());System.out.println("发送的消息为:" + sb.toString());weiZhiMiShuVO.setContent(sb.toString());for (String str : SEND_GROUP) {JSONObject object = new JSONObject();object.put("apiKey", WEI_MI_SHU_KEY);object.put("roomName", str);object.put("message", weiZhiMiShuVO);HttpUtil.createPost(url).body(JSON.toJSONString(object)).execute().body();}}

上面的代码,实现的是获取时事新闻,包括每日一句的早安寄语,其中新闻接口是天行数据的,早安寄语也是~

天行数据接口,每个人可以免费10个,智能微秘书结合天行数据,你可以玩出更多花样出来期待你的成果,欢迎评论区留言

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一张图理清ASP.NET Core启动流程

1. 引言 对于ASP.NET Core应用程序来说,我们要记住非常重要的一点是:其本质上是一个独立的控制台应用,它并不是必需在IIS内部托管且并不需要IIS来启动运行(而这正是ASP.NET Core跨平台的基石)。ASP.NET Core应用程序拥…

DevOps之发布系统V1.0

一、发布系统架构 (1)普通发布 (2)微服务发布 二、子系统与功能模块 (1)代码仓库 github、gitlab、svn (2)构建机 jenkins、maven构建机、本地构建包 (3&#xff0…

Nodejs安装及使用

现阶段nodejs我用的多的是它里面的npm js的各种库都可以用npm安装,十分方便,再也不用去网上找了 当然,主要还是github上面的很多项目都要用npm“解封” 那下面说下它的安装吧 进入官网 https://nodejs.org/en/ 它会自动检测你的电脑&#xf…

在ASP.NET Core上实施每个租户策略的数据库

不定时更新翻译系列,此系列更新毫无时间规律,文笔菜翻译菜求各位看官老爷们轻喷,如觉得我翻译有问题请挪步原博客地址 本博文翻译自: http://gunnarpeipman.com/2017/08/database-per-tenant/ 让我们继续使用ASP.NET Core web应用…

php动态网站

记得从五六月份就说要建一个可以注册登录的网站了,结果自己两个多月都没能建成,由于学习动态网站实在需要太多知识了,可以说我这几个月的时间都是花在网页上的,从刚开始的htmlcss 到后面的js,js花了太多太多时间&#…

从头编写 asp.net core 2.0 web api 基础框架 (2)

上一篇是: 从头编写 asp.net core 2.0 web api 基础框架 (1) Github源码地址是: https://github.com/solenovex/Building-asp.net-core-2-web-api-starter-template-from-scratch 本文讲的是里面的Step 2. 上一次, 我们使用asp.net core 2.0 建立了一个Empty project, 然后做了…

java实现上传网络图片到七牛云存储

大家好,我是雄雄。 前言 最近阳了,第二条杠红的发紫,真难受啊,但是吧,博客上有个bug,不解决感觉比阳了还难受。 话还是要从博客的图片显示不出来这里说起,当时做的时候,在发文章这…

gRPC官方快速上手学习笔记(c#版)

上手前准备工作 支持操作系统:windows、OS X、Linux。实例采用.net、.net core sdk。 The .NET Core SDK command line tools. The .NET framework 4.5 (for OS X and Linux, the open source .NET Framework implementation, “Mono”, at version 4, is suitable…

spring cloud+dotnet core搭建微服务架构:Api网关(三)

前言 国庆假期,一直没有时间更新。 根据群里面的同学的提问,强烈推荐大家先熟悉下spring cloud。文章下面有纯洁大神的spring cloud系列。 上一章最后说了,因为服务是不对外暴露的,所以在外网要访问服务必须通过API网关来完成&…

java实现人脸识别源码【含测试效果图】——前期准备工作及访问提示

注意: 看完之后如有不懂,请看:关于人脸和指纹识别共同交流方案,也可以关注微信公众号:雄雄的小课堂,回复:人脸识别群获取群号,群内有直接可以运行的源码可供下载,人脸识…

JS原型链与instanceof底层原理

转载自 JS原型链与instanceof底层原理 一、问题: instanceof 可以判断一个引用是否属于某构造函数; 另外,还可以在继承关系中用来判断一个实例是否属于它的父类型。 老师说:instanceof的判断逻辑是: 从当前引用的…

正则之注册登录

不久前写了个登录注册的网站,因为未对其做出限制,所以,随便你输入什么都可以注册成功,遂想怎么通过js规定注册的账号 我的要求是: 一:输入框不能为空,不能太长也不能太短 二: 1、注…

猿创征文|从酒店前台收银到软件研发教学主管到技术经理之路~

大家好,我是雄雄。 内容先知👉前言☝酒店收银🤨项目组长🤜OA管理系统🤜酒店管理系统👨‍🏫软件研发讲师📌学术主管👨‍💻技术经理👉项目情况&…

微服务~分布式事务里的最终一致性

本地事务ACID大家应该都知道了,统一提交,失败回滚,严格保证了同一事务内数据的一致性!而分布式事务不能实现这种ACID,它只能实现CAP原则里的某两个,CAP也是分布式事务的一个广泛被应用的原型,CA…

JavaFX仿windows文件管理器目录树

一、windows文件管理器目录树 二、代码 /** To change this license header, choose License Headers in Project Properties.* To change this template file, choose Tools | Templates* and open the template in the editor.*/ package cn.util;import imagemanagesystem.…

开源纯C#工控网关+组态软件(三)加入一个新驱动:西门子S7

一、 引子 首先感谢博客园:第一篇文章、第一个开源项目,算是旗开得胜。可以看到,项目大部分流量来自于博客园,码农乐园,名不虚传^^。 园友给了我很多支持,并提出了很好的改进意见。现加入屏幕分辨率自适应…

有没有完全自助的国产化数据库技术?

大家好,我是雄雄。 SPL资料 SPL官网SPL下载SPL源代码 前段时间世界部分地区不断的起冲突,Oracle宣布“暂停在俄罗斯的所有业务”,相信大家的心情绝不是隔岸观火,而是细思恐极。 数据库号称IT领域三大核心之一(其他两…

我为啥不看好ServiceMesh

转载自 我为啥不看好ServiceMesh 前言 今年,ServiceMesh(服务网格)概念在社区里头非常火,有人提出2018年是ServiceMesh年,还有人提出ServiceMesh是下一代的微服务架构基础。作为架构师,如果你现在还不了解ServiceMesh的话&…

ASP.NET Core 2.0 支付宝当面付之扫码支付

前言 自从微软更换了CEO以后,微软的战略方向有了相当大的变化,不再是那么封闭,开源了许多东西,拥抱开源社区,.NET实现跨平台,收购xamarin并免费提供给开发者等等。我本人是很喜欢.net的,并希望.…

Git使用教程:最详细、最傻瓜、最浅显、真正手把手教

转载自 Git使用教程:最详细、最傻瓜、最浅显、真正手把手教 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 工作原理 / 流程: Workspace:工作区 Index / Stage:暂存区 Repository&…