java实现给微信群中定时推送消息

news2024/12/23 19:14:56

大家好,我是雄雄。

在这里插入图片描述

前言

上一篇,我们介绍了如何通过调用接口的方式,将每日新闻发送到自己的博客中。我们会发现,将新闻以文章的形式发布,并且相关内容按照markdown的形式进行格式调整,有需要的可以点击这里查看:如何将每日新闻添加到自己博客中

今天,我们看看如何将每日新闻推送到自己的社群中。

准备工作

  1. 你可以没有自己的博客,但是你需要跑一个springboot的项目(java环境下,别的语言另说,不过需要在服务器上跑)
  2. 你已经申请了天行数据的【每日新闻简报】接口
  3. 你项目中引入了hutoolmaven,因为需要用它来请求接口
  4. 本位是以springboot项目来介绍的,别的实现方式也基本上一样,大家可以简单做个修改。
  5. 注册智能微秘书的账号,能够有权限调用openapi接口,不然无法实现给群里面发送消息。
  6. 如果不想用自己的微信号来发送,则还需要准备一个别的微信好。
  7. 有自己的服务器。

以上准备工作是个基础,如果你是个几年的程序员的话,上面基本上没啥问题,如果有其他问题的,可以私信我,或者评论区留言。

注册智能微秘书

准备工作的1 2 3 4我就不做介绍了,2我在上篇文章中介绍过,现在我们介绍一下4,因为我们要想给微信群或者好友发消息,离不开一个技术wechaty,而如果我们自己去研究它,不值得,晦涩难懂(我自己去看过)

所以我们借助这个跳板去操作,它就是智能微秘书,它将wechaty封装了下,我们直接调用它提供的api即可实现,非常简单。

首先我们打开智能微秘书,地址:这里

然后我们需要拿到这个key,调用接口的时候需要用到,在个人中心的里面就有
在这里插入图片描述
然后接下来我们写后端代码,实现给微信群中发送消息。

代码实现

 /**
     * 将每日新闻推送到微信群中
     * @return
     */
    @Override
    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");
        StringBuilder sb = new StringBuilder("今天是:" + contentObject.getString("todayDate") + ",早安🌞🌞🌞");
        int index = 1;
        for (Object o : array) {
            JSONObject item = (JSONObject) o;
            //标题加时间
            sb.append("\n")
                    .append(index)
                    .append(".")
                    .append(item.getString("title"))
                    .append("\n");
            ;
                   /* .append("[")
                    .append(item.getString("mtime"))
                    .append("]")
                    .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()
            ;
        }

    }

代码说明:

  1. WEI_MI_SHU_API 是接口地址
  2. 这个接口我传了个JSONObject对象过来,里面存放的是新闻的标题列表,时间,然后在接口中对该列表进行遍历。
  3. 【早安寄语】直接调用天行数据api的接口就行,封装方法一样。
  4. apiKey为智能微秘书的
  5. roomName是你要发送的群名称
  6. 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;





}

然后我们在控制器controller中,写个接口调用一下该service即可,定时顺便也加上。

 /**
     * 获取每日新闻
     * @Scheduled 表示定时,每天早上5点执行
     * @param
     * @return
     */
    @GetMapping(value = "/getDaysNews")
    @Scheduled(cron ="0 20 5 * * ?")
//    @Scheduled(cron ="0/1 * * * * ?")
    public ResponseResult getDaysNews() {
      
        return articleService.getDaysNews();
    }

这样就实现了每天早上凌晨5.20给微信群众推送消息了。

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

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

相关文章

获取小程序生产、开发、体验等环境、版本信息、appid等信息

if (typeof __wxConfig "object"){const version __wxConfig.envVersion;console.log("当前环境:" version)if (version "develop"){cosole.log(测试 开发环境)}else if (version "trial"){cosole.log(测试 体验版)}else if (versio…

【电力系统】基于YALMIP+CPLEX求解带储能的微电网优化调度问题附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

【树莓派不吃灰】兄弟连篇② 文件编辑器vim与RPM软件包管理、yum

目录1、文件编辑器Vim1.1 工作模式1.2 插入命令1.3 定位命令1.4 删除命令1.5 复制和剪切命令1.6 替换和取消命令1.7 搜索和搜索替换命令1.8 保存和退出命令1.9 使用技巧2、yum包管理2.1 网络yum源2.2 yum命令2.3 rpm包与源码包安装位置❤️ 博客主页 单片机菜鸟哥,一…

联盛德W801开发板流水灯示例

联盛德W801开发板流水灯示例📺📽🎞🎬本实验通过利用开发板中间的7个led,控制对应的IO实现流水灯效果。 📜W801 32位WiFi蓝牙双模SoC开发板 🛠开发工具以及示例Demo工程 参考:《W801…

【数学模型】基于ARMR模型模拟风速附matlab完整代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

图计算的学习与思考

好的软件不是靠程序分析、查错查出来的,而是由正确的人构建出来的。图成为日益重要的运算对象,图结构是对群体关系的一种抽象,可以描述丰富的对象和关系。图计算的核心是如何将数据建模为图结构以及如何将问题的解法转化为图结构上的计算问题…

MySQL高级【存储引擎】

目录 1:Mysql体系结构图: 2:存储引擎简介 3:存储引擎特点 InnoDB存储引擎: MyISAM存储引擎: Memory存储引擎: 4:存储引擎选择 5:存储引擎小结 1:Mysq…

.net core 在arm linux 上运行

一、环境 开发板:OKMX6ULL 硬件:cortex A7 软件环境:Linux version 4.1.15-00041-g92e8c0f (zsdeveloper-RH2485-V2) (gcc version 5.3.0 (GCC) ) #1 SMP PREEMPT Mon May 24 17:20:23 CST 2021 .net core 版本: 二、问题 1…

网络攻防中的支持多种社交媒体的网络 go-fish 工具(包含智能探测、用户查找、权限提升等等),需谨慎使用,不然要被请去喝茶了

网络攻防中的支持多种社交媒体的网络 go-fish 工具(包含智能探测、用户查找、权限提升等等),需谨慎使用,不然要被请去喝茶了。 ShellPhish是一个可定制的网络 go-fish 工具,基于SocialFish。 支持以下社交平台: Instagram Facebook Twitter Snapchat Github Yahoo…

Linux学习笔记——Linux基础命令

02、Linux基础命令 2.1、Linux的目录结构 1、学习目标 掌握Linux系统的目录结构掌握Linux系统的路径表达式 2、Linux的目录结构是一个树型结构 Windows系统可以拥有多个盘符,如C盘、D盘、E盘 Linux没有盘符这个概念,只有一个根目录/,所有…

【大数据趋势】趋势在发生变化,稍安勿躁。

昔日(12月以前)行情核心源头 : 纳斯达克指数主连日线,趋势预测准确,继续筑底可能中 回顾一下上周大数据预测的趋势,指数用上引线方式神奇完成目标 【12.3趋势模拟情况】 预计:趋势不变情况下,预测反弹到黄金分割线…

基于预训练和对比学习的新意图发现

前言 从对话人的语句中发现新意图是一个研究方向 一般来说就是对句子通过聚类来解决这一问题,所以这里通常会涉及到两个问题: (1)怎么表征好一个句子 (2)怎么更好的聚类 今天就给大家介绍本篇~&…

通信技术对自动驾驶发展的关键作用

【摘 要】随着自动驾驶的快速发展,新技术逐渐涌现,通信技术被产业认为是未来网联化自动驾驶发展的关键技术。从通信角度出发,分析通信技术为自动驾驶在技术及可靠性、成本控制、以及社会效益方面带来的提升,详细介绍了3GPP R16 5G-V2X在自动驾驶业务方面带来的技术优化,并…

Spring Boot整合分布式搜索引擎ElasticSearch 实现相关基本操作

文章目录一、ElasticSearch 介绍二、环境准备三、创建Spring Boot项目导入依赖四、创建高级客户端五、基本操作索引操作文档操作批量插入数据其他操作六、总结一、ElasticSearch 介绍 Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据…

【MySQL】史上最全的MySQL高性能优化总结

【MySQL】史上最全的MySQL高性能优化总结 【1】深入理解MySQL索引底层数据结构与算法 1. 为什么不使用二叉树、红黑树、B树来作为索引? 2. MyISAM 与 Innodb存储引擎有什么区别? 3. MySQL 的索引按照功能分类可以分几种? 4. MySQL 的的聚…

《领导力就是不装》——读书摘要

最近阅读的这本领导力就是不装–游戏化思维引领管理变革,分析问题的视角有新意,值得一看。以下是我的一点读书摘要。 领导力的三个关键点 具备进行管理变革、引领大家去解决难题的能力。具备成就他人、成就团队,让人才涌现,引领…

100天精通Python(数据分析篇)——第69天:Pandas常用数据筛选方法(between、isin、loc、iloc)

文章目录每篇前言一、布尔索引二、between()三、isin()1. 单列筛选2. 多列筛选3. 通过字典的形式传递多个条件4. 删除异常值所在行5. isnotin实现四、loc、iloc(重要)0. 创建DataFrame1. 提取行数据2. 提取列数据3. 提取多列数据4. 提取指定行、指定列数…

vmware16安装windows server 2008 VMware Tools

vmware16安装windows server 2008,安装完成后不会自动安装VMware Tools。而是出现如下提示: 简易安装正在安装Windows Server 2008 R2 x64。安装完操作系统后,需要手动安装VMware Tools。请参阅 https://kb.vmware.com/s/article/78708 附件下载 本文…

FPGA时序优化技术之重定时(Retiming)

介绍 重定时(Retiming)是一个智能过程,通过组合延迟路径向后和/或向前移动和平衡寄存器以获得最佳定时,同时保持电路的功能行为。重定时算法可以在不考虑互连延迟的情 况下,在同一边沿上由一个时钟对电路进行定时时找到…

【Linux vim】vim的基本使用,命令模式的指令集

目录 1.yum相当于手机的应用商店 2.vim的3种常用的模式 3.vim的基本使用(写出一个hello vim的代码) 4. 命令模式的指令集 1.yum相当于手机的应用商店 1.1查找 [rootVM-24-5-centos ~]# yum list #查找所有的安装包 但是查找结果太多了,可…