[转载]微信公众平台消息接口开发(50)在线点歌 - 方倍 - 博客园

[转载]微信公众平台消息接口开发(50)在线点歌 – 方倍 – 博客园.

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

微信公众平台在年前开放了新的消息接口-音乐消息,这是广大微信公众平台开发者的福音。
根据这一功能,如果能做出在微信中点歌功能,那么我们以后就可以不用安装其他APP,
直接在微信里面关注一个账号,就可以听歌了,还省去了安装的麻烦,而且不用再占用空间。如果音乐资源足够好,那将秒杀一切手机上在线听歌软件也不是没有可能的。
一、获取音乐资源
要做这样一个功能,首先当然是需要有音乐资源,对于普通开发者没有这些资源,怎么办?好在有高人在之前已经找到了相关音乐的API
★搜索QQ音乐
下面这个是QQ音乐的API地址

这个网上搜索不到的,它会返回一个json,注意的是返回的json的key没有用引号引起来而且需要对URL本身和返回的内容使用gb2312编(解)码
然后可以得到这样的不标准json,截取searchCallBack()中间的内容,对key进行加引号,然后就可以用json解码框架来解码

★获取音乐地址

http://stream1歌曲信息中的location值.qqmusic.qq.com/3歌曲ID(7位数,不足在前面补0).mp3

例如之前搜索出来的第一首歌的地址应该是:

第二首歌的地址应该是

这个QQ音乐API还可以获取专辑插图和歌词,但目前还用不上,所以就不讲了。

 

二、封装微信音乐消息
音乐消息格式如下

参数 描述

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

我们对标题,描述,链接进行填写,就能生成一个音乐消息了。
再有微信公众平台账号上的自定义回复设置相关规则,就能实现自动点歌。

 

三、与微信对接

在其中contentStr处改为对接函数就可以了,很简单。

复制代码
//define your token
define("TOKEN", ""); $wechatObj = new wechatCallbackapiTest(); //$wechatObj->valid();
$wechatObj->responseMsg(); class wechatCallbackapiTest { public function valid() { $echoStr = $_GET["echostr"]; //valid signature , option
        if($this->checkSignature()){ echo $echoStr; exit; } } public function responseMsg() { //get post data, May be due to the different environments
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //extract post data
        if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $keyword = trim($postObj->Content); $time = time(); $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; if(!empty( $keyword )) { $msgType = "text"; $contentStr = "Welcome to wechat world!"; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; }else{ echo "Input something..."; } }else { echo ""; exit; } } private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } } }
复制代码

 

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

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

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

这是点歌成功的界面

这是最上边栏时的显示

这是音乐播放界面

 

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

————————————————————————————————————————–

关注天气神(账号WeatherGod)方法:

1. 依次进入以下路径:朋友们—>添加朋友—>搜号码,输入WeatherGod,不区分大小写,点击查找,然后点击关注

2. 扫描二维码:

猜你喜欢:微信公众平台上的第一个图像处理应用-人脸识别

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏