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

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

前言

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

  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");
        //图文消息的封面id
        articles.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");
        //图文消息的封面url
        articles.setThumbUrl("https://ucc.alicdn.com/images/user-upload-01/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. 群发完之后,后台就可以看到了

在这里插入图片描述

后台信息如下:

在这里插入图片描述

目录
相关文章
|
人工智能 Java API
Google Gemini API 接口调用方法
Google 最近发布的 Gemini 1.0 AI 模型通过其升级版,Gemini,标志着公司迄今为止最为强大和多功能的人工智能技术的突破。
|
自然语言处理 API 开发者
One API接入豆包
本文详细介绍如何将One API集成,以调用豆包模型。步骤涵盖火山引擎注册、实名认证、创建在线推理接入点及生成API Key,并在One API中配置相应渠道与模型映射关系。适用于希望利用豆包模型进行自然语言处理任务的开发者。关键词:火山引擎、在线推理、接入点、模型名称、API Key、字节跳动豆包、One API。如需进一步了解或遇到问题,欢迎留言交流。
1920 2
One API接入豆包
|
12月前
|
监控 前端开发 安全
如何开发一个网站:全面解析与实战指南
在数字化时代,网站是企业和个人展示形象、传播信息的关键平台。本文提供从规划、设计、开发、上线到后期维护的全方位网站开发指南,涵盖明确目标、分析用户、设定功能需求、设计风格、技术选型、测试部署及优化升级等内容,帮助你打造既美观又实用的网站。
885 4
链动 2 + 1 商业模式:弊端、解决方案、合法性与玩法
链动2+1模式是一种依托科技和数字技术的新型分销模式,主要通过增加贡献、帮扶机制、换位机制、合伙机制等方式解决团队发展难题,提高粘性和复购率。该模式以销售产品为主,不构成传销,通过设置多种身份和奖励机制,鼓励用户积极参与,提高销售效率。以499元某品牌白酒为例,展示了具体的玩法和奖励分配方式。
|
运维 监控 网络协议
IP 地址是什么,有什么用,通俗易懂答案?
**IP地址是互联网上设备的唯一标识,分为IPv4(32位,如192.168.1.1)和IPv6(128位,如2001:0db8:85a3:0000:0000:8a2e:0370:7334)。IP地址用于定位设备、数据包传递、网络安全和管理。分为公有(全球唯一)和私有(局域网内使用)IP,以及动态(DHCP分配)和静态(固定不变)IP。IP管理由ICANN和区域机构负责。了解IP地址基础知识对网络理解和故障排查至关重要。**
1847 3
|
存储 人工智能 数据处理
阿里云CTO周靖人:全面投入升级AI大基建
9月19日,在2024杭州云栖大会上,阿里云CTO周靖人表示,阿里云正在围绕AI时代,树立一个AI基础设施的新标准,全面升级从服务器到计算、存储、网络、数据处理、模型训练和推理平台的技术架构体系,让数据中心成为一台超级计算机,为每个AI和应用提供高性能、高效的算力服务。
18464 15
|
PyTorch 算法框架/工具 异构计算
PyTorch 2.2 中文官方教程(十七)(1)
PyTorch 2.2 中文官方教程(十七)
427 1
PyTorch 2.2 中文官方教程(十七)(1)
|
监控 网络安全 Perl
使用 Scapy 库编写 Ping of Death 脚本
使用 Scapy 库编写 Ping of Death 脚本
|
机器学习/深度学习 数据可视化 前端开发
【Python机器学习专栏】机器学习模型评估的实用方法
【4月更文挑战第30天】本文介绍了机器学习模型评估的关键方法,包括评估指标(如准确率、精确率、召回率、F1分数、MSE、RMSE、MAE及ROC曲线)和交叉验证技术(如K折交叉验证、留一交叉验证、自助法)。混淆矩阵提供了一种可视化分类模型性能的方式,而Python的scikit-learn库则方便实现这些评估。选择适合的指标和验证方法能有效优化模型性能。
584 0
|
开发者 异构计算 容器
NRI - 在容器的生命周期焊接“芯片”
个人调研containerd 1.7版本新特性NRI,欢迎指正
804 1