本文介绍了公众号群发图文消息的过程,对图文消息的一系列处理,仅供参考
图文消息
- 要群发图文消息首先你要有图文消息的media_id,这个media_id是通过调用微信公众号上传图文消息接口(https://api.weixin.qq.com/cgi-bin/material/add_news?access_token=ACCESS_TOKEN)上传图文消息之后返回的。
1.图文消息说明
- 因为本文是群发单图文消息,所以上传图文消息时是上传单图文消息。
- 上传参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 调用接口凭证 |
Articles | 是 | 图文消息,支持1到8条 |
thumb_media_id | 是 | 图文消息缩略图的media_id,可以在素材管理-新增素材中获得 |
title | 是 | 图文消息的标题 |
content | 是 | 图文消息页面的内容,支持HTML标签 |
2.创建图文消息实体类
- 根据参数创建实体类WxArticle,其参数可根据官方参数挑选自己所需添加。
String thumb_media_id;
String title;
String content;
实体类的内容可根据上传图文消息的参数自行修改
3.上传图文消息
传入参数为list wxArticle和access_token
方法内容:上传接口路径String url = "https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token="+access_token;
组装参数,将图文实体类转成json对象,封装成json,通过调用HttpUtils的post发送数据。
定义一个String对象接收接口返回的media_id。并保存。
群发图文消息
本文采用根据OPENID进行群发
1. 群发说明
- post示例:
{
"touser":[
"OPENID1",
"OPENID2"
],
"mpnews":{
"media_id":"123dsdajkasd231jhksad"
},
"msgtype":"mpnews",
"send_ignore_reprint":0
}
touser表示用户openid列表,length至少为2,否则会报错:
invalid_openid_list_size,_at_least_two_openid_hint
- 调用接口:
http请求方式: POST https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=ACCESS_TOKEN
- 上传参数说明:
参数 | 是否必须 | 说明 |
---|---|---|
touser | 是 | 填写图文消息的接收者,一串OpenID列表,OpenID最少2个,最多10000个 |
mpnews | 是 | 用于设定即将发送的图文消息 |
media_id | 是 | 用于群发的图文消息的media_id |
msgtype | 是 | 群发的消息类型 |
2.建立对应的实体类
private List<String> toUsers = new ArrayList();
private String msgType;
private String content;
private String mediaId;
private boolean sendIgnoreReprint = false;
private String clientMsgId;
3.群发图文消息
创建String对象url值为群发接口
String url = "https://api.weixin.qq.com/cgi-bin/message/mass/send?access_token=ACCESS_TOKEN"
组装发送数据
- 创建实体类对象.
- 根据实体类封装数据.
3.gson将对象转换为json字符串.
4.使用httpClient发起post请求,将url和数据进行发送
5.定义JSONObject对象接收返回码,根据返回码查看是否发送成功