使用wxjava实现发表内容、预览信息以及推送文章

大家好,我是雄雄。

在这里插入图片描述

文章目录

    • 前言
    • 保存草稿的方法
    • 获取草稿箱列表
    • 根据media_id获取草稿箱信息
    • 给指定人发送预览文章
    • 推送文章(按照标签推送)

前言

今天分享的内容有如下几个:

  1. 保存草稿
  2. 根绝media_id会哦去草稿箱的信息
  3. 发表内容,并不是发发布(已发表的内容不会推送给用户,不占用群发次数)
  4. 给指定用户发送文章预览
  5. 群发文章(按照分组推送给用户文章)

我这边使用的微信开发工具类是:WxJava,非常的牛。

保存草稿的方法

在这里插入图片描述
代码如下:

    @GetMapping("/saveDrafts")public String saveDrafts() {WxMpAddDraft wxMpAddDraft = new WxMpAddDraft();List<WxMpDraftArticles> wxMpDraftArticlesList = new ArrayList<>();WxMpDraftArticles articles = new WxMpDraftArticles();articles.setTitle("这是标题");articles.setAuthor("雄雄");articles.setDigest("这里是摘要信息,主要内筒不在这里哈。");articles.setContent("【这里是主要内容】图文消息的具体内容,支持HTML标签,必须少于2万字符,小于1M," +"<br/>换一行在说。且此处会去除JS,涉及图片url必须来源 <br/><p>这是再开了个段落</p> " +"<span><b style='color:red;'>我是红色的加粗的字体</b></span> " +"欢迎来到<b>穆雄雄的博客</b>啊。<a href='http://muxiongxiong.cn'>点击这里</a>");//这是原文地址articles.setContentSourceUrl("http://muxiongxiong.cn");//图文消息的封面idarticles.setThumbMediaId("这里是零时素材或者永久素材的mediaId");//是否显示封面,0为false,即不显示,1为true,即显示(默认)articles.setShowCoverPic(0);//是否打开评论,0不打开(默认),1打开articles.setNeedOpenComment(0);//是否粉丝才可评论,0所有人可评论(默认),1粉丝才可评论articles.setOnlyFansCanComment(0);//草稿的临时链接,点击图文消息跳转链接articles.setUrl("https://blog.csdn.net/qq_34137397");//图文消息的封面urlarticles.setThumbUrl("https://img-blog.csdnimg.cn/6aeb54b426bc492e880aba5564a2a591.png");wxMpDraftArticlesList.add(articles);//添加图文消息进去wxMpAddDraft.setArticles(wxMpDraftArticlesList);//调用添加的方法?WxMpAddDraft draftFromat = WxMpAddDraft.fromJson(wxMpAddDraft.toJson());//调用添加的方法String media_id = "";try {media_id = wxMpDraftService.addDraft(draftFromat);} catch (WxErrorException e) {e.printStackTrace();}return media_id;}

说明:

  1. 保存草稿之前需要先添加临时或者永久素材,因为后面需要mediaId
  2. setContent中可以写html标签内容
  3. 保存成功后,会给我们返回一个media_id,发表文章的时候需要使用
    在这里插入图片描述

获取草稿箱列表

代码如下:

 @GetMapping("/getDraftsList")public String getDraftsList(int offset,int count,int no_content){JSONObject object = new JSONObject();try {WxMpDraftList wxMpDraftList =  wxMpDraftService.listDraft(offset,count);List<WxMpDraftItem> wxMpDraftItemList =  wxMpDraftList.getItems();wxMpDraftItemList.forEach(WxMpDraftItem::getMediaId);object.put("item",wxMpDraftList.getItems());object.put("total_count",wxMpDraftList.getTotalCount());object.put("item_count",wxMpDraftList.getItemCount());} catch (WxErrorException e) {e.printStackTrace();}return object.toJSONString();}

说明:

  1. offset:从全部素材的该偏移位置开始返回,0表示从第一个素材返回
  2. count:返回素材的数量,取值在1到20之间
  3. no_content:1 表示不返回 content 字段,0 表示正常返回,默认为 0
    在这里插入图片描述

根据media_id获取草稿箱信息

代码如下:

  @GetMapping("/getDraftsInfo")public String getDraftsInfo(String mediaId){JSONObject object = new JSONObject();try {WxMpDraftInfo draftInfo =  wxMpDraftService.getDraft(mediaId);object.put("news_item",draftInfo.getNewsItem());} catch (WxErrorException e) {e.printStackTrace();}return object.toJSONString();}

接口调用如下:
在这里插入图片描述

给指定人发送预览文章

代码如下

@GetMapping("/massMessagePreview")public String massMessagePreview(String openId,String mediaId){WxMpMassPreviewMessage mpMassPreviewMessage = new WxMpMassPreviewMessage();mpMassPreviewMessage.setToWxUserOpenid(openId);mpMassPreviewMessage.setMediaId(mediaId);mpMassPreviewMessage.setMsgType(WxConsts.MassMsgType.MPNEWS);try {WxMpMassSendResult massSendResult =wxMpMassMessageService.massMessagePreview(mpMassPreviewMessage);log.info("发送预览成功");log.info("dataId====="+massSendResult.getMsgDataId());log.info("msgId======"+massSendResult.getMsgId());} catch (WxErrorException e) {e.printStackTrace();}return "发送预览成功";}

说明

  1. openId:让谁预览的openid
  2. mediaId:文章的media_id

接口调用如下:
在这里插入图片描述

推送文章(按照标签推送)

代码如下:

  @GetMapping("/massGroupMessageSend")public String massGroupMessageSend(String mediaId){WxMpMassTagMessage wxMpMassTagMessage = new WxMpMassTagMessage();//标签id,如果不设置则就意味着发给所有用户.//wxMpMassTagMessage.setTagId();wxMpMassTagMessage.setMediaId(mediaId);wxMpMassTagMessage.setMsgType(WxConsts.MassMsgType.MPNEWS);wxMpMassTagMessage.setSendAll(true);try {WxMpMassSendResult massSendResult =wxMpMassMessageService.massGroupMessageSend(wxMpMassTagMessage);log.info("发送推文成功");log.info("dataId====="+massSendResult.getMsgDataId());log.info("msgId======"+massSendResult.getMsgId());} catch (WxErrorException e) {e.printStackTrace();}return "发送推文成功";}

说明

  1. mediaId:让谁预览的media_id
  2. 群发完之后,后台就可以看到了
    在这里插入图片描述

后台信息如下:

在这里插入图片描述

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

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

相关文章

ssl提高组周六模拟赛【2018.9.22】

前言 这周居然考两道数学&#xff0c;反正是我的弱项。然后第一题考试的时候zz了竟然忘了怎么二分 成绩 只放Rank1∼10Rank\ 1\sim10Rank 1∼10 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC1112015hjw2015hjw2015hjw2102102101001001007070704040402222017mysel…

指针数组(三)

#include<stdio.h>void g(int *pArr,int len){pArr[2]88;pArr[4]88;}void f(){int a[]{1,2,3,5,9},i;g(a,5);for(i0;i<5;i){printf("%d\t",a[i]);}}main(){f();}利用指针改变数组里的内容和内容

腾讯面试题:一条SQL语句执行得很慢的原因有哪些?

最近的招聘季&#xff0c;腾讯有一道面试题&#xff1a;一条SQL语句执行得很慢的原因有哪些&#xff1f; 其实&#xff0c;这个问题可以涉及到 MySQL 的很多核心知识&#xff0c;可以扯出一大堆&#xff0c;就像要考你计算机网络的知识时&#xff0c;问你“输入URL回车之后&am…

spring cloud+dotnet core搭建微服务架构:服务发现(二)

前言上篇文章《手把手教你使用spring clouddotnet core搭建微服务架构&#xff1a;服务治理&#xff08;-&#xff09;》实际上只讲了服务治理中的服务注册&#xff0c;服务与服务之间如何调用呢&#xff1f;传统的方式&#xff0c;服务A调用服务B&#xff0c;那么服务A访问的是…

猿创征文|公众号开发之路——为了研究公众号,我注册了公司

大家好&#xff0c;我是雄雄。 内容先知&#x1f60a;1.前言&#x1f636;2.想法&#x1f913;3.注册及研究&#x1f4aa;4.注册公司现在是北京时间&#xff1a;2022年9月10日23:34&#xff0c;农历八月十五日&#xff0c;2022年的教师节&#xff0c;也是中秋节&#xff0c;祝大…

学习手记(2018.9.15~2018.11.10)——备战NOIP2018

分层图常见方法 二进制压缩 用二进制表示一些东西的状态 形态 就是用第几层表示第几个形态(如第几天这样的) 树不重合点对数量 取下面的更优。 换元法 求一个数时可以不一定要求它&#xff0c;可以通过求和他有关联的式子从而间接的得到他。 数学归纳法 先证明i0i0i0时&…

动态数组(四)

#include<stdio.h>void f(int *q){*q200;}main(){int *p(int *)malloc(sizeof(int));*p10;printf("%d\n",*p);f(p);printf("%d\n",*p);}动态数组应用&#xff1a;&#xff08;记得导入#include<malloc.h>&#xff09; #include<stdio.h>…

Docker 实战笔记

Docker的安装与配置CentOS前提条件目前&#xff0c;CentOS 仅在发行的版本中的内核支持DockerDocker 运行在CentOS 7 上要求系统为64位&#xff0c;系统内核版本在3.10以上。本次测试运行使用的是 centOS 7.2 64位的系统版本。使用代码 uname -r即可查看系统内核版本Docker软件…

JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解

转载自 JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解 现实企业级Java开发中&#xff0c;有时候我们会碰到下面这些问题&#xff1a; OutOfMemoryError&#xff0c;内存不足 内存泄露 线程死锁 锁争用&#xff08;Lock Contention&#xff09; Java进…

jeecg微服务中如何实现机构的概念(当前机构只能查到其子机构)

大家好&#xff0c;我是雄雄。 内容先知前言代码实现前言 以前&#xff0c;我们做的国家平台项目&#xff0c;都是采用现在开源的框架来做的&#xff0c;比如若依&#xff0c;bladex&#xff0c;相比之下&#xff0c;若依用的要稍多点儿。因为那时候刚开始接触vue&#xff0c;…

nssl1162-农夫约的假期【中位数,贪心】

正题 题目大意 n∗nn*nn∗n的矩阵&#xff0c;给若干个点&#xff0c;求一个位置让这些点的距离和这个位置的曼哈顿距离和最小。 解题思路 我们可以将x坐标和y坐标分开来处理。 这样就是一个线性问题了。 我们先定义这个位置为所有x的平均数&#xff0c;然后我们考虑将x左右移…

初学结构体(一)

#include<stdio.h>struct Student{int age;float score;char sex;};main(){struct Student st{25,88,M};printf("%d\n",st.age); struct Student *pst&st;pst->age100;printf("%d\n",st.age);printf("%d",pst->age); }构造结构…

.NET Conf 2017后初尝Xamarin Forms 3.0@Linux

对很多.NET粉&#xff0c;.NET Conf 2017的东西估计提前一个月都熟悉了&#xff0c;Xamarin粉估计最大惊喜不是Xamarin Live Player, 也不是Xamarin.Forms混合NativeControl &#xff0c;而是Xamarin.Forms 3.0&#xff0c;因为它融入到 Linux平台. Xamarin.Forms 跨平台&#…

Redis单例、主从模式、sentinel以及集群的配置方式及优缺点对比

转载自 Redis单例、主从模式、sentinel以及集群的配置方式及优缺点对比 redis作为一种高效的缓存框架&#xff0c;使用是非常广泛的&#xff0c;在数据存储上&#xff0c;在运行时其将数据存储在内存中&#xff0c;以实现数据的高效读写&#xff0c;并且根据定制的持久化规则…

微信小程序中使用画布canvas实现动态心电图绘制

大家好&#xff0c;我是雄雄。 内容先知前言效果图实现代码前言 近期&#xff0c;接了个项目&#xff0c;三端&#xff08;小程序、PC、公众号&#xff09;同步开发&#xff0c;PC端没的问题&#xff0c;以前一直做的就是PC端&#xff0c;但是小程序和公众号之前没有做过&…

nssl1163-小x游世界树【树形dp,二次扫描和换根法】

正题 题目大意 一棵树&#xff0c;一条边的权是原本的权值减去出发点的加速。 求一个点使得这个点到所有点路径边权和最小。 解题思路 我们先求出以1为根时的答案 然后用换根法 我们从1转移到2&#xff0c;我们会发现 红色的部分的路径都减去的紫色的路径长度&#xff0c;蓝…

结构体跨函数应用(二)

#include<stdio.h> struct Student { int age;char sex; };int main(void){struct Student st;InputStudent(&st);printf("%d,%c",st.age,st.sex);}void InputStudent(struct Student *pstu) {(*pstu).age88;pstu->sexF;}老是出现警告&#xff0c;排查好…

ASP.NET Core依赖注入解读使用Autofac替代实现

1. 前言关于IoC模式&#xff08;控制反转&#xff09;和DI技术&#xff08;依赖注入&#xff09;&#xff0c;我们已经见过很多的探讨&#xff0c;这里就不再赘述了。比如说必看的Martin Fowler《IoC 容器和 Dependency Injection 模式》&#xff0c;相关资料链接都附于文章末尾…

jmeter如何进行一个简单的测试(超级详细,有图有文字,闭着眼都能成功)

大家好&#xff0c;我是雄雄。 内容先知前言软件获取开始测试1.新建线程组2.创建一个请求3.添加HTTP信息头4.开始测试5.查看请求情况前言 上头问题要服务器的配置&#xff0c;基于我们现在做的项目&#xff0c;需要安排别人去采购服务器&#xff0c;给出的消息是&#xff1a;2…

三年半Java后端面试经历

转载自 三年半Java后端面试经历 经过半年的沉淀&#xff0c;加上对MySQL&#xff0c;redis和分布式这块的补齐&#xff0c;终于开始重拾面试信心&#xff0c;再次出征。 鹅厂 面试职位&#xff1a;go后端开发工程师&#xff0c;接受从Java转语言 都知道鹅厂是cpp的主战场&…