您好,登錄后才能下訂單哦!
微信公眾平臺的消息接口-音樂消息,這是廣大微信公眾平臺開發者的福音。 根據這一功能,如果能做出在微信中點歌功能,那么我們以后就可以不用安裝其他APP, 直接在微信里面關注一個賬號,就可以聽歌了,還省去了安裝的麻煩,而且不用再占用空間。如果音樂資源足夠好,那將秒殺一切手機上在線聽歌軟件也不是沒有可能的。
<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>
參數 | 是否必須 | 說明 |
---|---|---|
ToUserName | 是 | 接收方帳號(收到的OpenID) |
FromUserName | 是 | 開發者微信號 |
CreateTime | 是 | 消息創建時間 (整型) |
MsgType | 是 | music |
Title | 否 | 音樂標題 |
Description | 否 | 音樂描述 |
MusicURL | 否 | 音樂鏈接 |
HQMusicUrl | 否 | 高質量音樂鏈接,WIFI環境優先使用該鏈接播放音樂 |
ThumbMediaId | 是 | 縮略圖的媒體id,通過上傳多媒體文件,得到的id |
核心代碼:
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);
效果演示:
歡迎關注微信公眾號:音比特 微信號:yinbyte 或者用微信掃描下面二維碼來關注
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。