回复音乐消息
<xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[fromUser]]></FromUserName> <CreateTime>12345678</CreateTime> <MsgType><![CDATA[music]]></MsgType> <Music> <Title><![CDATA[TITLE]]></Title> <Description><![CDATA[DESCRIPTION]]></Description> <MusicUrl><![CDATA[MUSIC_Url]]></MusicUrl> <HQMusicUrl><![CDATA[HQ_MUSIC_Url]]></HQMusicUrl> <ThumbMediaId><![CDATA[media_id]]></ThumbMediaId> </Music> </xml>
核心代码:
public function getMusicInfo() { if ($this->name == ){ $content = array( Title=>, Description=>你还没告诉我音乐名称呢?, MusicUrl=>, HQMusicUrl=>); } else { if (strpos($this->name, +)){ $music = explode(+,$this->name); $url = http://Box.zhangmen.baidu.com/x?op=12&count=1&title=.$music[1].$$.$music[0].$$$$; }else{ $url = http://Box.zhangmen.baidu.com/x?op=12&count=1&title=.$this->name.$$; } $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $data = curl_exec($ch); $content = array( Title=>歌曲【.$this->name.】, Description=>检索失败, MusicUrl=>, HQMusicUrl=>); try{ @$menus = simplexml_load_string($data, 'SimpleXMLElement', LIBXML_NOCDATA); if ($menus->count > 0 && isset($menus->url[0]) && isset($menus->durl[0])){ $url_prefix = substr($menus->url[0]->encode,0,strripos($menus->url[0]->encode,'/') + 1); $url_suffix = substr($menus->url[0]->decode,0,strripos($menus->url[0]->decode,'&')); $durl_prefix = substr($menus->durl[0]->encode,0,strripos($menus->durl[0]->encode,'/') + 1); $durl_suffix = substr($menus->durl[0]->decode,0,strripos($menus->durl[0]->decode,'&')); if (strpos($this->name, +)){ $content = array( Title=>$music[1], Description=>$music[0], MusicUrl=>$url_prefix.$url_suffix, HQMusicUrl=>$durl_prefix.$durl_suffix); }else{ $content = array( Title=>$this->name, Description=>百度音乐提供, MusicUrl=>$url_prefix.$url_suffix, HQMusicUrl=>$durl_prefix.$durl_suffix); } } }catch(Exception $e){ } } return $content; }
接口调用:
include ('music.class.PHP'); $m = new MusicApi($musicContent); $mArr = $m->getMusicInfo(); return $this->responseMusic($mArr[Title], $mArr[Description], $mArr[MusicUrl], $mArr[HQMusicUrl], 0);
效果演示: