微信公众号开发整理(四)--音乐消息回复

1.首先,我们先看回复音乐消息数据格式:

微信公众号开发整理(四)--音乐消息回复

2.与回复图片消息一样,首先我们需要先创建音乐消息的实体类

public class Music {
private String Title;
private String Description;
private String MusicUrl;
private String HQMusicUrl;//高质量的链接
private String ThumbMediaId;
set、get方法略。。。

}

public class MusicMessage extends BaseMessage{
private Music Music;


public Music getMusic() {
return Music;
}


public void setMusic(Music music) {
Music = music;
}

}


3.组装消息 音乐消息转XML及XML转音乐消息:

//音乐消息转XML
public static String musicMessageToXml(MusicMessage musicMessage){
XStream xstream = new XStream();
xstream.alias("xml", musicMessage.getClass());
return xstream.toXML(musicMessage);

}

获取缩略图的媒体ID,运行测试方法:

微信公众号开发整理(四)--音乐消息回复

得到音乐消息缩略图的媒体ID

微信公众号开发整理(四)--音乐消息回复

进行消息的组装,先把我们的音乐文件准备好:

微信公众号开发整理(四)--音乐消息回复

实现代码如下:

//XML转音乐消息(即音乐消息的组装)
public static String initMusicMessage(String toUserName,String fromUserName){
String message = null;
Music music = new Music();
music.setThumbMediaId("50R-CSj0i8fv9lIWB7vpDtFObkD_uTKJVouTS8axKrCbvkIH-W4c2Pj_cx3hJXbK");//测试获取到的ThumbMediaId
music.setTitle("青春");
music.setDescription("激情");
music.setMusicUrl("http://588979f4.ngrok.io/WeiXinTest/resource/music.mp3");//这里http为ngrok映射的网址
music.setHQMusicUrl("http://588979f4.ngrok.io/WeiXinTest/resource/music.mp3");
MusicMessage musicMessage = new MusicMessage();
musicMessage.setFromUserName(toUserName);
musicMessage.setToUserName(fromUserName);
musicMessage.setMsgType(MESSAGE_MUSIC);
musicMessage.setCreateTime(new Date().getTime());
musicMessage.setMusic(music);
message = musicMessageToXml(musicMessage);
return message;
}

4.补全业务逻辑,完成音乐消息的回复功能:

微信公众号开发整理(四)--音乐消息回复

运行结果截图:

微信公众号开发整理(四)--音乐消息回复

至此,音乐消息被动回复完成!