微信公衆平臺開發——在線點歌

    微信公衆平臺的消息接口-音樂消息,這是廣大微信公衆平臺開發者的福音。 根據這一功能,如果能做出在微信中點歌功能,那麼我們以後就可以不用安裝其他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消息創建時間 (整型)
MsgTypemusic
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);

效果演示:

wKiom1Q6UkfADANGAAEVgiQ-LLA999.jpg

歡迎關注微信公衆號:音比特 微信號:yinbyte  或者用微信掃描下面二維碼來關注

wKioL1Q6Uu2wItQcAABXkDrryfs446.jpg


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章