宝塔服务器面板,一键全能部署及管理,送你10850元礼包,点我领取

微信 在线听歌 在线点歌 在线点播 音乐API 公众平台 微信公众平台消息接口 微信开发模式  
作者:http://www.cnblogs.com/txw1958/
原文:http://www.cnblogs.com/txw1958/archive/2013/02/25/weixin-if50-music.html

微信公众平台在年前开放了新的消息接口-音乐消息,这是广大微信公众平台开发者的福音。
根据这一功能,如果能做出在微信中点歌功能,那么我们以后就可以不用安装其他APP,
直接在微信里面关注一个账号,就可以听歌了,还省去了安装的麻烦,而且不用再占用空间。如果音乐资源足够好,那将秒杀一切手机上在线听歌软件也不是没有可能的。

一、获取音乐资源
方倍工作室推出音乐API接口,目前处于测试阶段,欢迎各位试用。

调用方法:

如调用“最炫民族风” ,传递其其URL编码 %e6%9c%80%e7%82%ab%e6%b0%91%e6%97%8f%e9%a3%8e 就可以了。

以下url可以直接在IE8中打开,能自动转码。

http://api2.sinaapp.com/search/music/?appkey=0020130430&appsecert=fa6095e1133d28ad&reqtype=music&keyword=%e6%9c%80%e7%82%ab%e6%b0%91%e6%97%8f%e9%a3%8e

返回格式:与微信音乐格式类似,json型:

{
    "errcode": 0,
    "msgtype": "music",
    "music": {
        "title": "最炫民族风",
        "description": "music",
        "musicurl": "http://stream10.qqmusic.qq.com/31432174.mp3",
        "hqmusicurl": "http://stream10.qqmusic.qq.com/31432174.mp3"
    }
}

 失败时返回文本信息

{
    "errcode": "1",
    "msgtype": "text",
    "text": {
        "content": "检索音乐失败!"
    }
}

二、封装音乐消息

获取该音乐消息的代码如下:

else if(substr($keyword,0,6) == "点歌"){
    $entityName = trim(substr($keyword,6,strlen($keyword)));
    if ($entityName == ""){
        $contentStr = "发送“点歌”加上歌名,如“点歌最炫民族风”";
        $resultStr = $this->transmitText($object, $contentStr, $funcFlag);
        return $resultStr;
    }
    $apihost = "http://api2.sinaapp.com/";
    $apimethod = "search/music/?";
    $apiparams = array('appkey'=>"0020120430", 'appsecert'=>"fa6095e113cd28fd", 'reqtype'=>"music");
    $apikeyword = "&keyword=".urlencode($entityName);
    $apicallurl = $apihost.$apimethod.http_build_query($apiparams).$apikeyword;
    $api2str = file_get_contents($apicallurl);
    $api2json = json_decode($api2str, true);
    $musicUrl = $api2json['music']['hqmusicurl'];
    if ($musicUrl == ""){
        $contentStr = "没有找到音乐,可能不是歌名或者检索失败,请换首歌试试!";
        $resultStr = $this->transmitText($object, $contentStr, $funcFlag);
    }else{
        $musicArray = array("title"=>$api2json['music']['title'],
                            "description"=>$api2json['music']['description'],
                            "MusicUrl"=>$api2json['music']['musicurl'],
                            "HQMusicUrl"=>$api2json['music']['hqmusicurl']);
        $resultStr = $this->transmitMusic($object, $musicArray, $funcFlag);
    }
    return $resultStr;
}

三、与微信对接

音乐消息格式如下

微信公众平台消息接口开发(50)在线点歌/在线音乐-风君雪科技博客 

参数 描述

ToUserName  接收方帐号(收到的OpenID)
FromUserName  开发者微信号
CreateTime  消息创建时间
MsgType  music
MusicUrl  音乐链接
HQMusicUrl  高质量音乐链接,WIFI环境优先使用该链接播放音乐
FuncFlag  位0x0001被标志时,星标刚收到的消息。

四、效果演示
需要添加 天气神 ,然后发送m,可以看到相关使用说明

1. 发送“点歌”加歌名,如“点歌最炫民族风”,返回指定的歌曲。
2. 只发送“点歌”两个字,系统为您选择一首热门歌曲。
3. 按住说话按钮2秒钟再松开,随机返回一首热门歌曲。

歌曲在WIFI环境中播放很流畅,有很好地体验。

这是点歌成功的界面

微信公众平台消息接口开发(50)在线点歌/在线音乐-风君雪科技博客

这是最上边栏时的显示

微信公众平台消息接口开发(50)在线点歌/在线音乐-风君雪科技博客

这是音乐播放界面

微信公众平台消息接口开发(50)在线点歌/在线音乐-风君雪科技博客

原文:http://www.cnblogs.com/txw1958/archive/2013/02/25/weixin-if50-music.html

=============================================================

关注豆立方(账号BeanCube)方法:
1. 依次进入以下路径:朋友们—>添加朋友—>搜号码,输入beancube,不区分大小写,点击查找,然后点击关注。
2. 扫描二维码:

 微信公众平台消息接口开发(50)在线点歌/在线音乐-风君雪科技博客