如何将每日新闻添加到自己博客中,发送到微信群中

大家好,我是雄雄。

在这里插入图片描述

前言

最近新整了个博客网站,同事在gitee上找的,还不错,gitee上的地址在这里:拾壹博客管理系统。
别人的业务,再好也有不满足自己的地方,所以我就拉下来源码看了看,改了些bug,其中我觉得这个需求是有人需要用到的——每日新闻推送到微信群中。

效果图如下:
在这里插入图片描述
每天定时凌晨5.20推送。

why

在说功能之前先说说为什么要做这么件事儿,之前我是从比的微信群中将每日新闻复制到自己的群的,因为群需要互动互动,不能成为一个死群,所以我就每天手动发,偶尔有几次不发,就有群友问我,为啥不发了呢,他们觉的这个东西还挺好(虽然发了之后也没有人回复,大家可能只是在默默的观察关注吧)

于是后面我就每天都发,但是吧,手动发,有时候记得,有时候忘记,并且别的群不发的话,我就没地方找去,还得自己去网上找,所以就想着自己写一个吧。

思路

  1. 网上有专门的这种接口,用来拿到每日新闻简要
  2. 将新闻整理成一篇文章,发送到博客中
  3. 利用别的途径,将新闻标题(因为微信发文字会有字数限制),推送到群中(智能微秘书)

然后按照这个思路我们去实现。

代码实现

  1. 首先我们去天行数据,注册一个账号,然后找到每日新闻,申请改接口。

注册地址:天行数据,找到接口:
在这里插入图片描述
申请下来之后,去个人中心,看看自己的key是多少,我们在请求接口的时候需要拿着这个key去。
在这里插入图片描述
2. 在java中实现调用该接口,拿到数据发布到博客中。

关键代码如下:

 /*** 获取每日新闻,添加到文章里面* @param* @return*/@Overridepublic ResponseResult getDaysNews() {//调用每日简报的接口String body = HttpUtil.createGet(DAYS_NEWS_API + "?key=" + TIAN_KEY).execute().body();JSONObject jsonObjectResult = JSON.parseObject(body);Integer code = jsonObjectResult.getInteger("code");if(code!=200){log.error("请求每日新闻的接口出错,出错信息:"+body);return ResponseResult.error();}log.error("请求每日新闻的接口成功:"+body);JSONObject resultObject = jsonObjectResult.getJSONObject("result");//获取新闻列表JSONArray contentList = resultObject.getJSONArray("list");//获取文章的封面信息String strResult = restTemplate.getForObject(IMG_URL_API, String.class);JSONObject jsonObject = JSON.parseObject(strResult);Object imgUrl = jsonObject.get("imgurl");//将新闻列表封装成markdown文章SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");String todayDate = simpleDateFormat.format(new Date());String titleContent = "# "+todayDate+"新闻简要<br/>";StringBuilder stringBuilder = new StringBuilder(titleContent);//发送到微信群里面的信息JSONObject contentObject = new JSONObject();contentObject.put("todayDate",todayDate);JSONArray array = new JSONArray();//遍历接口返回来的json数据contentList.forEach(item->{JSONObject arrayObject = new JSONObject();JSONObject itemObject = (JSONObject)item;stringBuilder.append("⏱️");stringBuilder.append(itemObject.getString("mtime"));stringBuilder.append("<br/>");stringBuilder.append("### ");stringBuilder.append("🏷️");stringBuilder.append(itemObject.getString("title"));stringBuilder.append("<br/>");stringBuilder.append("📃");stringBuilder.append(itemObject.getString("digest"));stringBuilder.append("<br/>");stringBuilder.append("<br/>");stringBuilder.append("---");stringBuilder.append("<br/>");//标题arrayObject.put("title",itemObject.getString("title"));//内容arrayObject.put("digest",itemObject.getString("digest"));//时间arrayObject.put("mtime",itemObject.getString("mtime"));array.add(arrayObject);});contentObject.put("list",array);stringBuilder.append("(本文所有数据均来自天行数据api,如有侵权,联系即删~)");//将拿到的内容放在Markdown中String newContent = stringBuilder.toString();MutableDataSet options = new MutableDataSet();String markdown = FlexmarkHtmlConverter.builder(options).build().convert(newContent).replace("lang-java","java");//构建文章的实体BlogArticle entity = BlogArticle.builder().userId(7L).contentMd(markdown).categoryId(DAYYS_NEWS).isOriginal(YesOrNoEnum.NO.getCode())//转载地址.originalUrl("https://www.tianapi.com/").isPublish(1).keywords("每日新闻,穆雄雄,新闻简报,早安").title(todayDate+"新闻简要").avatar(imgUrl.toString()).content(newContent).build();baseMapper.insert(entity);//添加标签tagsMapper.saveArticleTags(entity.getId(),new ArrayList<Long>() {{add(63L);}});log.info("每日新闻添加到文章成功:"+ JSON.toJSONString(entity));contentObject.put("aid",entity.getId());//调用推送到微信的方法sendWechat(contentObject);return ResponseResult.success("发送成功");}

需要注册的是:记得吧DAYS_NEWS_APITIAN_KEY的值换一下,换成你自己的,然后生成的文章如下所示:
在这里插入图片描述
有需要看链接的,可以点击这里看:2022年12月18日新闻简要

类似这样的~

给微信群众发送消息,我们下一篇再讲,这一篇内容有点多,写起来很卡。

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

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

相关文章

Hack for Cloud Beginner微软黑客松大赛

在这美丽的西子湖畔&#xff0c;我们欢迎各行各业的开发者参与此次Hack for Cloud Beginner微软黑客松大赛。我们致力于为开发者们提供在技术、社区领域中的交流平台&#xff0c;重在参与&#xff0c;意于创新。 此次黑客松大赛将于10月22日在中国杭州拉开帷幕&#xff0c;参与…

Asp.Net Core 2.0 多角色权限认证

在使用 WebForm 技术开发网站的时候&#xff0c;微软就提供了 Form 身份认证&#xff0c;这使得登录认证简单了许多&#xff0c;不同于 WebForm 以及后来的 Asp.Net Mvc&#xff0c;Asp.Net Core 中的身份认证与之前相比使用更加便捷&#xff0c;本文介绍 Asp.Net Core 2.0 多角…

html近期所学

导航栏&#xff08;新学的&#xff0c;&#xff0c;&#xff0c;&#xff0c;&#xff0c;其实就是简单的href&#xff09; css 开门大吉 轮播样式 js css js1 js1 js1 js1 js1 js7 首先是css 开门大吉 改只需其中的gif <html><head><style>section{width…

asp.net core后台系统登录的快速构建

登录流程图 示例预览 构建步骤 当然&#xff0c;你也可以直接之前前往coding仓库查看源码&#xff0c;要是发现bug记得提醒我啊~ LoginDemo地址 1. 首先你得有一个项目 2. 然后你需要一个登录页面 完整Login.cshtml视图代码戳这里-共计55行 效果预览图 <!DOCTYPE html>&l…

JavaFX Chart设置数值显示

一、XYChart import javafx.application.Application; import javafx.geometry.NodeOrientation; import javafx.geometry.Side; import javafx.scene.Scene; import javafx.scene.chart.*; import javafx.scene.control.Label; import javafx.stage.Stage;public class LineC…

多多自走棋

文章目录[x]形似麻将种族职业各种搭配操作下面还是讲讲攻略&#xff08;主要&#xff09;在朋友的推荐下玩了自走棋&#xff0c;我一个不玩王者不玩吃鸡的人&#xff0c;玩这游戏竟然上瘾了&#xff0c;太不可思议了&#xff0c;这两天被这游戏搞得中午都没睡好&#xff0c;不得…

Linux--用SecureCRT来上传和下载文件

转载自 Linux--用SecureCRT来上传和下载文件 SecureCRT下的文件传输协议有以下几种&#xff1a;ASCII、Xmodem、Ymodem、Zmodem ASCII&#xff1a;这是最快的传输协议&#xff0c;但只能传送文本文件。 Xmodem&#xff1a;这种古老的传输协议速度较慢&#xff0c;但由于使用…

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

工具: 1.Visual Studio 2017 V15.3.5 2.Postman (Chrome的App) 3.Chrome (最好是) 关于.net core或者.net core 2.0的相关知识就不介绍了, 这里主要是从头编写一个asp.net core 2.0 web api的基础框架. 我最近几年一直在使用asp.net web api (传统.net framework)作为后台Api, …

美妙的Github

这十天来&#xff0c;一度被自走棋带入了旋涡。没学到什么&#xff0c;但让我惊喜的是&#xff0c;游戏之余&#xff0c;我尝试了下Github。人们都讲Github是程序员的必备&#xff0c;连Github都不知道做什么程序员。玩了github之后我才是知道什么叫大佬。 通常我找源代码都是上…

白嫖之Github

文章目录[x]微信机器人这十天来&#xff0c;一度被自走棋带入了旋涡。没学到什么&#xff0c;但让我惊喜的是&#xff0c;游戏之余&#xff0c;我尝试了下Github。人们都讲Github是程序员的必备&#xff0c;连Github都不知道做什么程序员。玩了github之后我才是知道什么叫大佬。…

layer之弹层组件文档 layui.layer(v.1.9.0之后)

弹层组件文档 - layui.layer layer 至今仍作为 layui 的代表作&#xff0c;她的受众广泛并非偶然&#xff0c;而是这数年来的坚持、不弃的执念&#xff0c;将那些不屑的眼光转化为应得的尊重&#xff0c;不断完善和维护、不断建设和提升社区服务&#xff0c;在 Web 开发者的圈子…

设置宽带自动连接

刚接触电脑的小伙伴有没有这样的困扰&#xff0c;每次电脑开机的时候都要自己手动重新连接宽带&#xff0c;很麻烦。 而通过一些设置我们可以免除这样的麻烦&#xff0c;不需要输入账号密码&#xff0c;开机自动连接&#xff0c;每次开机省去个一两分钟的宽带连接时间&#xf…

随时随地以任意方式编写 .NET 应用程序

希望大家现在都知道&#xff0c;Microsoft .NET 不再仅适用于 Windows。借助 .NET Core&#xff0c;可以使用想要的语言&#xff08;C#、Visual Basic 或 F#&#xff09;编写应用程序&#xff0c;这些应用程序可以在选定的任何 OS&#xff08;Windows、macOS 或 Linux&#xff…

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

大家好&#xff0c;我是雄雄。 前言 前几天&#xff0c;发了一个系列这样的文章&#xff0c;如下所示&#xff1a; java实现每日给女友微信发送早安等微信信息java实现给微信群中定时推送消息如何将每日新闻添加到自己博客中&#xff0c;发送到微信群中 基本都是说的一个事儿…

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

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

DevOps之发布系统V1.0

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

Nodejs安装及使用

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

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

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

php动态网站

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