springboot的微信公众号(九)图文消息

图文消息也叫作新闻消息,我们从这里可以看个大概的结构,标题、图片、简介、然后你点进去是个链接

我们例行看一下官方文档,这个解释的比较清楚

xml里面是个Articles,而且是个数组,也就是说可以发多个,但是有上限的

通过前面的文章,我们应该想着怎么去建这个实体类:一个msg,属性包含数组,数组指向Article,大概就是这样,你可以试着先建一个

这里先贴出来实体类,相关的解释注释都有


import java.util.Date;
import java.util.List;

public class NewsMsg extends BaseMessage{
	private int ArticleCount;//文章的个数
    private List<News> Articles;
	public NewsMsg(){
		this.setMsgType("news");
		this.setCreateTime(new Date().getTime());
	}
	public int getArticleCount() {
		return ArticleCount;
	}
	public void setArticleCount(int articleCount) {
		ArticleCount = articleCount;
	}
	public List<News> getArticles() {
		return Articles;
	}
	public void setArticles(List<News> articles) {
		Articles = articles;
	}
	
	

}
public class News {
	private String Title;//图文消息标题
	private String Description;//图文消息描述
	private String PicUrl;//图片链接,支持JPG、PNG格式,较好的效果为大图360*200,小图200*200
	private String Url;//点击图文消息跳转链接
	public String getTitle() {
		return Title;
	}
	public void setTitle(String title) {
		Title = title;
	}
	public String getDescription() {
		return Description;
	}
	public void setDescription(String description) {
		Description = description;
	}
	public String getPicUrl() {
		return PicUrl;
	}
	public void setPicUrl(String picUrl) {
		PicUrl = picUrl;
	}
	public String getUrl() {
		return Url;
	}
	public void setUrl(String url) {
		Url = url;
	}
}

然后调用

if ("3".equals(content)) {
			MsgUtil.sendNewsMsgToUser( openId,formUser,response);
		}

然后执行发送

/**
	 * 发送图文消息
	 * @param openId
	 * @param formUser
	 * @param response
	 */
	public static void sendNewsMsgToUser(String openId, String formUser, HttpServletResponse response) {
		NewsMsg msg = new NewsMsg();
		List<News> articles = new ArrayList<News>();
		News news = new News();
		news.setTitle("猫和老鼠");
		news.setDescription("《猫和老鼠》以闹剧为特色,描绘了一对水火不容的冤家:汤姆和杰瑞猫鼠之间的战争,片中的汤姆经常使用狡诈的诡计来对付杰瑞,而杰瑞则时常利用汤姆诡计中的漏洞逃脱他的迫害并给予报复");
		news.setPicUrl(WeiXinUtil.NATURL+"/wx-demo/jerry.jpg");
		news.setUrl("https://image.baidu.com/search/index?tn=baiduimage&ct=201326592&lm=-1&cl=2&ie=gb18030&word=jerry&fr=ala&ala=1&alatpl=adress&pos=0&hs=2&xthttps=111111");
		articles.add(news);
		msg.setArticleCount(articles.size());
		msg.setArticles(articles );
		msg.setFromUserName(formUser);
		msg.setToUserName(openId);
		String textMessageToXml = XMLUtils.newsMessageToXml(msg);
		logger.info("发送的消息是-------"+textMessageToXml);
		PrintWriter out=null;
		try {
			out = response.getWriter();
			//写入返回的response中
			out.println(textMessageToXml);
		} catch (IOException e) {
			logger.error("发送微信消息失败",e);
			e.printStackTrace();
		}finally{
			//注意关流,不然会发送失败
			out.close();
		}
	}

注意这里有一个地方跟其他的不一样,就是xml转为字符串的方法,因为它是类中包含类的数组的,所以会多一个

然后成功的样例就是上面的那个

封装的xml数组如下:

2018-11-20 10:34:52.718  INFO 5196 --- [nio-8080-exec-8] com.example.weixin.demo.utils.MsgUtil    : 发送的消息是-------<xml>
  <ToUserName>oHz9D0TObxbKYC720R61svLa0YDg</ToUserName>
  <FromUserName>gh_7781317207c9</FromUserName>
  <CreateTime>1542681292687</CreateTime>
  <MsgType>news</MsgType>
  <ArticleCount>1</ArticleCount>
  <Articles>
    <item>
      <Title>猫和老鼠</Title>
      <Description>《猫和老鼠》以闹剧为特色,描绘了一对水火不容的冤家:汤姆和杰瑞猫鼠之间的战争,片中的汤姆经常使用狡诈的诡计来对付杰瑞,而杰瑞则时常利用汤姆诡计中的漏洞逃脱他的迫害并给予报复</Description>
      <PicUrl>http://pnvcvv.natappfree.cc/wx-demo/jerry.jpg</PicUrl>
      <Url>https://image.baidu.com/search/index?tn=baiduimage&amp;ct=201326592&amp;lm=-1&amp;cl=2&amp;ie=gb18030&amp;word=jerry&amp;fr=ala&amp;ala=1&amp;alatpl=adress&amp;pos=0&amp;hs=2&amp;xthttps=111111</Url>
    </item>
  </Articles>
</xml>

被动回复消息当然还有其他的消息,语音消息、视频消息等等,有兴趣可以自己研究下

### 回答1: Spring Boot 是一个用于快速构建基于 Java 的应用程序的开源框架。微信公众号是微信平台提供的一种服务,允许开发者在微信上创建自己的公众号,从而能够与用户进行交互、提供信息、进行营销等。 使用 Spring Boot 构建微信公众号意味着我们可以利用 Spring Boot 的优势快速开发和部署我们的公众号应用。Spring Boot 提供了丰富的特性和功能,例如自动配置、快速启动、内嵌 Servlet 容器等,使得我们能够以更高效的方式开发微信公众号应用程序。 在使用 Spring Boot 构建微信公众号时,我们可以利用微信公众平台提供的开发接口和 SDK,与微信服务器进行交互。该接口和 SDK 提供了丰富的功能,例如接收和回复消息、获取用户信息、上传素材、推送模板消息等。我们可以通过编写相应的代码,与微信服务器进行通信,并实现自定义的业务逻辑。 使用 Spring Boot 构建微信公众号还可以结合其他技术和框架,例如 Spring MVC、Spring Data JPA 等,来实现更复杂的功能。我们可以利用 Spring MVC 来处理微信服务器的请求,使用 Spring Data JPA 来操作数据库存储用户信息等。这些技术和框架的集成可以提高开发效率和代码质量。 总之,使用 Spring Boot 构建微信公众号能够帮助我们快速开发和部署应用,同时利用 Spring Boot 提供的特性和功能,使得开发过程更加高效和简化。 ### 回答2: Spring Boot是一个用于构建独立的、生产级的Spring应用程序的框架。它简化了Spring应用程序的配置和部署过程,并提供了许多默认配置,让开发者可以专注于业务逻辑的实现。 微信公众号是基于微信开放平台的一种应用,开发者可以通过微信公众号来与用户进行交互。使用微信公众号可以实现发送消息、接收消息、拉取用户信息等功能。通过集成Spring Boot框架,可以更加方便地开发和管理微信公众号应用。 使用Spring Boot开发微信公众号,可以通过Spring框架的依赖注入和控制反转等功能,更加灵活地管理公众号的业务逻辑和组件。开发者可以定义不同的Controller来处理用户的请求,并通过注解来实现自动装配和依赖管理。此外,Spring Boot还提供了许多自动配置的功能,使得开发者可以快速构建、测试和部署微信公众号应用。 Spring Boot还支持与微信公众平台的API进行交互,开发者可以通过SDK或自定义开发来实现微信公众号的各种功能。例如,可以使用SDK提供的API来发送消息、获取用户信息、创建菜单等。 总之,通过使用Spring Boot框架,开发者可以更加高效地开发和管理微信公众号应用,减少了繁琐的配置和部署过程,提高了开发效率和代码质量。 ### 回答3: Spring Boot 是一个基于 Spring 框架的开源项目,用于快速构建、运行和部署应用程序。微信公众号是基于微信平台的一种社交媒体营销工具,被广泛用于企业的宣传推广、客户互动等方面。那么,Spring Boot 如何与微信公众号结合呢? 首先,我们可以通过 Spring Boot 提供的 Web 应用程序开发框架,结合微信公众号的开发文档和接口,编写实现微信公众号功能的后端代码。通过使用 Spring Boot 的 MVC 架构,我们可以定义处理微信公众号各种请求的控制器,并利用 Spring 的依赖注入特性,调用微信公众号提供的接口实现相关功能。 其次,Spring Boot 提供了丰富的开箱即用的插件和组件,可以方便地集成第三方库和工具。我们可以利用 Spring Boot 的插件,快速集成微信公众号的 SDK 或 API,简化开发过程。同时,Spring Boot 还提供了很多自动配置选项,可以减少开发者的配置工作,提高开发效率。 另外,通过使用 Spring Boot 的自动化部署特性,我们可以将微信公众号的后端应用程序快速打包为可执行的 JAR 文件,并使用常用的部署或容器工具(如 Docker、Tomcat 等)进行部署和运行。这样,我们可以轻松地将微信公众号应用程序部署到云端,实现高可用性和扩展性。 总之,Spring Boot 提供了一个便捷、快速、可靠的开发框架,可以与微信公众号无缝结合,帮助开发者快速构建和部署功能丰富的微信公众号应用程序。无论是小型企业还是大型企业,利用 Spring Boot 可以极大地简化微信公众号的开发和运维工作,提升开发效率和用户体验。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值