发送图片消息
上一篇我们已经上传一个图片素材,并且微信服务器也返回给我们一个media_id,接下来我们使用media_id来构造图片消息
代码实现功能
在Message.Util工具类添加代码
1. 添加buildImageMessage构建图片消息的方法
/**
* 构建图片消息
* @param map
* @param picUrl
* @return
*/
private static String buildImageMessage(Map<String, String> map, String picUrl) {
String fromUserName = map.get("FromUserName");
String toUserName = map.get("ToUserName");
/*返回指定的图片(该图片是上传为素材的,获得其media_id)*/
//String media_id = "E-2tkzlW0KAygeJvmY8Zmb_-AQzV7vDDA-54ZYg5Oxb4s2jdroltKLHJQUUaP2XB";
/*返回用户发过来的图片*/
String media_id = map.get("MediaId");
return String.format(
"<xml>" +
"<ToUserName><![CDATA[%s]]></ToUserName>" +
"<FromUserName><![CDATA[%s]]></FromUserName>" +
"<CreateTime>%s</CreateTime>" +
"<MsgType><![CDATA[image]]></MsgType>" +
"<Image>" +
" <MediaId><![CDATA[%s]]></MediaId>" +
"</Image>" +
"</xml>",
fromUserName,toUserName, getUtcTime(),media_id
);
}
2.在 buildXml 构建消息的方法中新增代码
if(msgType.toUpperCase().equals("IMAGE")){
String fromUserName = map.get("FromUserName");
String toUserName = map.get("ToUserName");
/*返回用户发过来的图片*/
String media_id = map.get("MediaId");
return String.format(
"<xml>" +
"<ToUserName><![CDATA[%s]]></ToUserName>" +
"<FromUserName><![CDATA[%s]]></FromUserName>" +
"<CreateTime>%s</CreateTime>" +
"<MsgType><![CDATA[image]]></MsgType>" +
"<Image>" +
" <MediaId><![CDATA[%s]]></MediaId>" +
"</Image>" +
"</xml>",
fromUserName,toUserName, getUtcTime(),media_id
);
}
打开公众号,查看效果
OK,往公众号里发送图片消息,公众号会返回刚上传的图片;