Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >微信个人公众号开发--(3)给用户响应图文信息

微信个人公众号开发--(3)给用户响应图文信息

作者头像
浩Coding
发布于 2019-07-02 08:05:12
发布于 2019-07-02 08:05:12
48900
代码可运行
举报
文章被收录于专栏:浩Coding浩Coding
运行总次数:0
代码可运行

如何创建微信回复的图文消息?

1. 查看微信官方开发文档

根据开发文档,我们要返回一条图文信息需要返回一个如图所以的 XML 格式的信息。所以我们需要根据规定的格式构造出 XML 信息。可以发现信息分成两部分,一部分是所有消息都需要包含的基本的参数,以及图文消息所特有的一些参数,具体含义见图片下半部分。

我们只需要构建出正确的 XML 信息即可。

2. 创建消息对象

XML 的参数分成两种,基本参数BaseMessage和图文消息NewsMessage(继承与基本参数类)参数,所以把它们封装在两个 实体 类中。

BaseMessage

public class BaseMessage { //消息来源用户 private String ToUserName; //消息去向用户 private String FromUserName; // 消息创建时间 private long CreateTime; private String MsgType;

News

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class News {
   private String Title;    private String Description;    private String PicUrl;    private String Url;

NewsMessage

代码语言:java
AI代码解释
复制
public class NewsMessage extends BaseMessage{
   private int ArticleCount;    private List<News> Articles;

微信返回的图文消息可以一次包含多条,所以用集合类型保存。如果包含多条图文消息,不显示描述 (Description)。

3. 组装图文消息

图文消息转成 XML:方法写在MessageUtil消息工具类中,下面组装图文消息方法也是如此。

public static String newsMessageToXml(NewsMessage newsMessage){ XStream xstream = new XStream(); xstream.alias("xml", newsMessage.getClass()); xstream.alias("item", new News().getClass()); return xstream.toXML(newsMessage); }

组装一个图文消息

public static String initNewsMessage(String toUserName,String fromUserName){ String message = null; List<News> newsList = new ArrayList<News>(); NewsMessage newsMessage = new NewsMessage(); /** * 只有单条图文消息才有描述 */ News news = new News(); news.setTitle("图文消息回复"); news.setDescription("图文消息回复图文消息回复图文消息回复图文消息回复图文消息回复图文消息回复图文消息回复图文消息回复图文消息回复图文消息回复"); news.setPicUrl("https://ss1.bdstatic.com/70cFuXSh_Q1YnxGkpoWK1HF6hhy/it/u=1821218122,25120525&fm=23&gp=0.jpg"); news.setUrl("http://blog.csdn.net/shuicsdn/article/details/71023212"); newsList.add(news); newsMessage.setToUserName(fromUserName); newsMessage.setFromUserName(toUserName); newsMessage.setCreateTime(new Date().getTime()); newsMessage.setMsgType(MESSAGE_NEWS); newsMessage.setArticles(newsList); newsMessage.setArticleCount(newsList.size()); message = newsMessageToXml(newsMessage); return message; }

4. 返回图文消息

最后在 Servlet 中返回图文消息即可

在DoCheckServlet处理程序中,用户回复数字2 ,即可收到图文消息。

if ("2".equals(content)) { message = MessageUtil.initNewsMessage(toUserName, fromUserName);

参考文章:https://blog.csdn.net/shuicsdn/article/details/72085716

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浩Coding 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
java微信自动回复机器人开发(java微信开发学习笔记3)「建议收藏」
微信自动回复机器人原理很简单,获取用户发送到后台的数据,然后调用机器人的api进行回复即可。我使用的茉莉机器人,官网地址如下: http://www.itpk.cn/ 茉莉机器人的api:http://www.itpk.cn/robot.php 接口比较简单,看看就会,我直接上源代码 下面代码同样基于之前的微博,需要的可以去看一下: http://blog.csdn.net/zxxz5201314/article/details/76917107 首先对用户发送的文本进行处理,特殊字段分别处理,同样Post请求:
全栈程序员站长
2022/11/10
1.7K0
Java微信公众平台开发(五)--文本及图文消息回复的实现
上篇我们说到回复消息可以根据是否需要上传文件到微信服务器可划分为【普通消息】和【多媒体消息】,这里我们来讲述普通消息的回复实现,在消息回复中存在一个关键字段【openid】,它是微信用户对于公众号的唯一标识,这里不做过多解释后面将给出时间专门来讲解微信生态中的关键字!
用户2417870
2019/09/18
9470
微信个人公众号开发--(2)启用开发者模式接收并响应用户消息
微信的 URL 要求必须是: http:// 80端口,且必须是能够在公网访问的,本地的不行。所以这里用到一个映射工具叫做 ngrok 。下载之后使用,需要切换到下载ngrok文件目录下,cmd
浩Coding
2019/07/02
1.1K0
微信个人公众号开发--(2)启用开发者模式接收并响应用户消息
Java企业微信开发_05_消息推送之被动回复消息
微信加解密包 下载地址:http://qydev.weixin.qq.com/java.zip      ,此包中封装好了AES加解密方法,直接调用方法即可。
shirayner
2018/08/10
4.3K0
java微信公众号开发入门(3)--简单消息回复
版权声明:本文为博主原创文章,未经博主允许不得转载。 为什么需要这俩工具类 因为传输方式为XMl 第一步,解析xml文件工具代码 /** * XML转map集合 * @param request * @return * @throws IOException * @throws DocumentException */ public static Map<String, String> xmlToMap(HttpServletRequest reques
DencyCheng
2018/11/05
9360
手把手教你如何微信公众号开发「建议收藏」
最近的话,发现微信开发其实也有很多挺有意思的地方,比如最近很火的一款游戏“跳一跳”,也让我如此着迷。。但是,今天我所要讲的并不是对于小程序的开发,而是要说一下,关于微信开发的另外一个内容,那就是微信公众号。。
全栈程序员站长
2022/09/25
3.6K0
手把手教你如何微信公众号开发「建议收藏」
微信公众号精选采坑记
微信精选是一个常见的接口api。在此例中,将实现一个回复公众号关键字,实现“全网”文章查询功能。有兴趣的读者可关注本号自己试试。如图。
一粒小麦
2019/07/18
5790
微信公众号精选采坑记
微信个人公众号开发--(4)Java实现天气查询功能
首先我们需要一个天气查询的数据接口,这里我用的是极速数据(百度即可),然后申请一个免费的账号,可以找到免费的天气数据接口,当然有次数限制,不过这已经够我们个人微信公众号使用了.
浩Coding
2019/07/02
1.3K0
微信个人公众号开发--(4)Java实现天气查询功能
微信公众号开发-素材/消息管理接口
本文是 微信公众号开发者模式介绍及接入 的后续,如没看过前文的话,可能看本文会有些懵逼。本文主要介绍微信公众平台的素材、消息管理接口的开发。由于个人的订阅号是没有大多数接口的权限的,所以我们需要使用微信官方提供的测试号来进行开发。测试号的申请可参考下文:
端碗吹水
2020/09/23
2.7K0
微信公众号开发-素材/消息管理接口
独立开发微信公众号服务的一次复盘
上篇文章主要分享了异步编程的一些经验。主要包括回调函数,发布订阅,Promise,async await以及yield关键字。
terrence386
2022/07/14
4800
独立开发微信公众号服务的一次复盘
手把手教你开发微信公众号后台
松哥原创的 Spring Boot 视频教程已经杀青,感兴趣的小伙伴戳这里-->Spring Boot+Vue+微人事视频教程
江南一点雨
2020/08/21
3.1K0
手把手教你开发微信公众号后台
微信 接入机器人 java_Java版微信机器人代码
package com.eiyoung.wechat.web.controller;
全栈程序员站长
2022/07/04
1.3K0
Java微信公众平台开发(四)--回复消息的分类及实体的创建
前面有说道对接收到微信服务器消息后对消息的分类,当时主要分为普通消息和事件消息,这里我们要讲述的是我们在给用户回复的消息类型,在这里也可以大致分为两类:一种为不需要上传资源到微信服务器的这里成为【普通消息回复】;还有一种需要上传资源到微信服务器的这里称为【多媒体消息回复】!
用户2417870
2019/09/18
6630
Java微信公众平台开发(四)--回复消息的分类及实体的创建
Spring Boot 如何给微信公众号返回消息
hello 各位小伙伴,今天我们来继续学习如何通过 Spring Boot 开发微信公众号。还没阅读过上篇文章的小伙伴建议先看看上文,有助于理解本文:
江南一点雨
2019/11/01
1.1K0
微信公众号开发-自定义菜单接口
本文是 微信开发-素材/消息管理接口 的后续,主要介绍微信公众平台的自定义菜单接口开发。由于个人的订阅号是没有大多数接口的权限的,所以我们需要使用微信官方提供的测试号来进行开发。测试号的申请可参考下文:
端碗吹水
2020/09/23
2.8K0
微信公众号开发-自定义菜单接口
[029] 微信公众帐号开发教程第5篇-各种消息的接收与响应[通俗易懂]
前一篇文章里我们已经把微信公众平台接口中消息及相关操作都进行了封装,本章节将主要介绍如何接收微信服务器发送的消息并做出响应。
全栈程序员站长
2022/11/10
6200
[029] 微信公众帐号开发教程第5篇-各种消息的接收与响应[通俗易懂]
微信公众号开发者模式介绍及接入
编辑模式和开发模式是互斥的关系,也就是说,当我们使用开发模式时,编辑模式下的操作就会失效。反之,使用编辑模式时,开发模式下的操作就会失效,所以只能使用其中一个模式进行公众号的开发。
端碗吹水
2020/09/23
1.5K0
微信公众号开发者模式介绍及接入
微信公众号开发消息推送以及图文推送
(adsbygoogle =window.adsbygoogle ||[]).push({});
猿码优创
2019/07/28
2.2K0
Java微信公众号开发(附源码!!!)
笔者最近在为一个艺考服务团队开发手机端的服务,由于开发app需要的时间较长,所以选择开发微信公众号。本人比较擅长Java开发,所以本文是基于Java语言的公众号开发。话不多说,直接进入正题。
全栈程序员站长
2022/08/29
8460
Java微信公众号开发(附源码!!!)
Java企业微信开发_04_消息推送之发送消息(主动)
(1)流程不同:发送消息是第三方服务器主动通知微信服务器向用户发消息。而被动回复消息是 用户发送消息之后,微信服务器将消息传递给 第三方服务器,第三方服务器接收到消息后,再对消息做出相应的回复消息。
shirayner
2018/08/10
6.2K1
推荐阅读
相关推荐
java微信自动回复机器人开发(java微信开发学习笔记3)「建议收藏」
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验