上一篇我们用代码实现发送图片消息,接下来我们来实现发送语音消息功能
发送语音消息
代码实现
1.在Message.util工具类中新增 buildVoiceMessag方法
/**
* 构造语音消息
* @param map
* @return
*/
private static String buildVoiceMessage(Map<String, String> map) {
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[voice]]></MsgType>" +
"<Voice>" +
" <MediaId><![CDATA[%s]]></MediaId>" +
"</Voice>" +
"</xml>",
fromUserName,toUserName, getUtcTime(),media_id
);
}
2. 在 buildXml 构建消息的方法中新增代码
//如果用户发送的消息类型为语音格式,返回用户发过来的语音
if (msgType.toUpperCase().equals("VOICE")){
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[voice]]></MsgType>" +
"<Voice>" +
" <MediaId><![CDATA[%s]]></MediaId>" +
"</Voice>" +
"</xml>",
fromUserName,toUserName, getUtcTime(),media_id
);
}
3.打开微信公众号,发送语音测试
当用户发送语音,公众号就回复你语音