微信公众平台开发(33)在线点歌/在线音乐

原文: http://www.cnblogs.com/imaker/p/5491433.html

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

一、获取音乐资源

调用方法:

<a href="http://api2.sinaapp.com/search/music/?appkey=0020130430&appsecert=fa6095e1133d28ad&reqtype=music&keyword">http://api2.sinaapp.com/search/music/?appkey=0020130430&appsecert=fa6095e1133d28ad&reqtype=music&keyword</a>=歌曲名称

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

{

    "errcode": 0,

    "msgtype": "music",

    "music": {

        "title": "歌曲名称",

        "description": "music",

        "musicurl": "音乐地址",

        "hqmusicurl": "音乐地址"

    }

}

失败时返回文本信息

{

    "errcode": "1",

    "msgtype": "text",

    "text": {

        "content": "检索音乐失败!"

    }

}

  

二、封装音乐消息

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

public string GetMusic(string MusicName)

       {

           WebClient MyWebClient = new WebClient();

           MyWebClient.Credentials = CredentialCache.DefaultCredentials;//获取或设置用于对向Internet资源的请求进行身份验证的网络凭据。

           Byte[] Comp = MyWebClient.DownloadData("http://api2.sinaapp.com/search/music/?appkey=0020130430&appsecert=fa6095e1133d28ad&reqtype=music&keyword=" + MusicName); //获取快递公司数据

           var pageHtml = Encoding.UTF8.GetString(Comp); //如果获取网站页面采用的是UTF-8,则使用这句

           JavaScriptSerializer js = new JavaScriptSerializer();

           var obj = js.DeserializeObject(pageHtml);

           Dictionary<string, object> dic = obj as Dictionary<string, object>;

           if (dic["errcode"].ToString() == "0")

           {

               Dictionary<string, object> dic2 = dic.Values.ToArray()[2] as Dictionary<string, object>;

               string title = dic2["title"].ToString();

               string musicurl = dic2["musicurl"].ToString();

               string hqmusicurl = dic2["hqmusicurl"].ToString();

               return ResponseMusicMsg(title, "按住可转发好友,播放失败请换首歌!", musicurl, hqmusicurl);

           }

           else {

               return ResponseText("[流泪] Sorry~ 你要的音乐我没有找到~ [流泪]");

           }

          

       }

  

生成微信相对应的xml

/// <summary>

       /// 回复音乐内容

       /// </summary>

       /// <param name="to">接收者</param>

       /// <param name="from">消息来源</param>

       /// <param name="title">标题</param>

       /// <param name="description">描述信息</param>

       /// <param name="musicurl">音乐链接</param>

       /// <param name="hqmusicurl">高质量音乐链接,WIFI环境优先使用该链接播放音乐</param>

       /// <returns>生成的输出文本</returns>

       public string ResponseMusicMsg(string title, string description, string musicurl, string hqmusicurl)

       {

           StringBuilder sb = new StringBuilder();

           sb.AppendFormat("<xml>");

           sb.AppendFormat("<ToUserName><![CDATA[{0}]]></ToUserName>", clientUser);

           sb.AppendFormat("<FromUserName><![CDATA[{0}]]></FromUserName>", serverUser);

           sb.AppendFormat("<CreateTime>{0}</CreateTime>", DateTime.Now.Ticks.ToString());

           sb.AppendFormat("<MsgType><![CDATA[music]]></MsgType>");

           sb.AppendFormat("<Music>");

           sb.AppendFormat("   <Title><![CDATA[{0}]]></Title>", title);

           sb.AppendFormat("   <Description><![CDATA[{0}]]></Description>", description);

           sb.AppendFormat("   <MusicUrl><![CDATA[{0}]]></MusicUrl>", musicurl);

           sb.AppendFormat("   <HQMusicUrl><![CDATA[{0}]]></HQMusicUrl>", hqmusicurl);

           sb.AppendFormat("   <FuncFlag>0</FuncFlag>");

           sb.AppendFormat("</Music>");

           sb.AppendFormat("</xml>");

           return sb.ToString();

       }

  

二、效果展示

建议使用wifi时候听歌

时间: 2024-10-25 09:18:24

微信公众平台开发(33)在线点歌/在线音乐的相关文章

微信公众平台开发基础知识38问

最近接触微信公众号后台的开发,看了一些资料基本可以满足简单的需求开发.笔者将这些问题及解答整理出来,以帮助更多初学者少走弯路. 1.订阅号与服务号的主要区别是什么? 订阅号每天能群发一条消息,没有自定义菜单及高级接口权限(目前 个人.企业订阅号关联腾讯微博认证之后才有自定义菜单):服务号有自定义菜单微信认证之后有高级接口权限,但每月只能群发一条消息. 2.到底该申请订阅号还是服务号? 申请哪种类型的公众账号,主要取决于账号的用途.服务号主要面向企业和组织,旨在为用户提供服务:订阅号主要面向媒体和

微信公众平台开发教程新手解惑40则

[编者按]由CSDN和<程序员>杂志联合主办的 2014年微信开发者大会 将于8月23日在北京举行,邀请了来自于一线的微信开发商技术负责人或资深工程师从企业应用开发高级篇.智能客服与LBS.微信支付.微信上的HTML5社交应用.微信小店开发等角度为与会者带来实战分享( 议程 ).目前报名处于优惠票价阶段,通过申请加入CSDN CTO俱乐部即可享受8折购票价格(票款中均含午餐),在8月1日前完成付款的同学还将免费获赠微信开发图书一本(两选一,活动现场发放).  值得一提的是,CSDN优秀博主.畅

微信公众平台开发教程第1篇-新手解惑

1.订阅号与服务号的主要区别是什么?订阅号每天能群发一条消息,没有自定义菜单及高级接口权限(目前 个人.企业订阅号关联腾讯微博认证之后才有自定义菜单):服务号有自定义菜单微信认证之后有高级接口权限,但每月只能群发一条消息. 2.到底该申请订阅号还是服务号?申请哪种类型的公众账号,主要取决于账号的用途.服务号主要面向企业和组织,旨在为用户提供服务:订阅号主要面向媒体和个人,旨在为用户提供信息和资讯. 3.订阅号是否支持编程开发?不管是订阅号,还是服务号,在高级功能中都有编辑模式和开发模式,订阅号也

微信公众平台开发教程--方培工作室,PHP语言版本

准备工作 微信公众平台的注册 介绍如何注册一个微信公众账号. 入门教程 微信公众平台开发入门教程 内容:1.申请SAE作为服务器; 2.启用开发模式; 3.微信公众平台PHP SDK; 4.接收发送消息类型解析; 5.微信公众平台开发模式原理; 6.快速开发天气预报功能. 入门教程是下面所有教程的基础. 基础接口 微信公众平台开发(2) 天气预报 介绍了使用中国天气网气象数据,实现微信上的天气预报功能. 微信公众平台开发(3) 中英翻译 介绍了使用有道翻译的接口,在微信公众平台上,开发中英互译的

微信公众平台开发最佳实践(第2版)

<微信公众平台开发最佳实践 第2版>微信公众平台开发经典之作全新改版,精心挑选最经典的商业项目开发,成千上万人次微信公众平台开发者从中受益 前言 出版说明 自从方倍工作室在博客园推出微信公众平台开发系列教程后,受到广大微信开发人员及爱好者的热情关注,相关文章的日访问量高达2万人次,而<微信公众平台开发入门教程>的阅读量超过50万,博客访问量总计超过500万,成为微信公众平台开发更新最快,传播最广.受众最多.资料最全的博客,很多博文被许多有影响力的网站转载,并被各大搜索引擎收录且排名

Senparc.Weixin.MP SDK 微信公众平台开发教程(二十一):在小程序中使用 WebSocket (.NET Core)

本文将介绍如何在 .NET Core 环境下,借助 SignalR 在小程序内使用 WebSocket.关于 WebSocket 和 SignalR 的基础理论知识不在这里展开,已经有足够的参考资料,例如参考 SignalR 的官方教程:https://docs.microsoft.com/zh-cn/aspnet/core/signalr/introduction?view=aspnetcore-2.1 我们先看一下完成本教程内容后,在小程序内实现的 WebSocket 效果: 私有及群发消息

微信公众平台开发之会员卡

微信公众平台开发之会员卡是商家获取用户信息和实现线上线下交易的重要途径之一.通过在微信上发布会员卡,然后让用户填写自己的个人信息之后就可以领取到线上的会员卡,这个会员卡在线下也是可以使用的.可以在会员卡上发布一些最新通知,礼品券,优惠券,会员特权等等,用户达到一定的积分或者在线下消费一定的金额才可以领取这些优惠,这样可以吸引用户去获取积分实现每日签到的功能,这样用户就能看到我们推送的消息.下面就由微时代来简单介绍一下会员卡吧: 1.在微时代后台设置会员卡的回复信息,当用户回复关键词"会员卡&qu

[050] 微信公众平台开发入门视频教程已发布

2014年4月26日晚8点,我在CSDN社区在线培训课堂讲解了微信公众平台开发入门的相关知识,受到广大网友的一致好评,在此非常感谢大家的支持!课程结束后,很多网友表示由于报名人数限制.临时有事等原因,未能参加,希望能够提供录制视频的观看地址.视频教程的主要内容包括: 1.移动APP发展趋势(Native APP.Web APP.Light APP) 2.微信公众平台基础知识(服务号/订阅号.公众账号注册的注意事项.微信认证) 3.开发模式的使用(启用开发模式.接收与响应消息.回复文本/图文/音乐

小蚂蚁学习微信公众平台开发(3)--获取token,绑定微信号,自定义菜单,事件响应demo

这个教程的基础篇和提升篇都看完了,总感觉有点隔靴挠痒的感觉,讲的东西我都懂,没有吸收多少新鲜的知识.貌似还没有我这个一年前写的脚本好呢,估计也是照顾新人吧.期待高级篇的讲解,不过现在高级篇估计还在录制当中,所以对微信公众平台开发的学习就先到这里吧. 下面介绍一下我很久以前写的这个脚本.基本上常用的几个功能都有了,access_token的获取,用户的微信号和公司的账号的绑定,查询公司服务器上的资料,自定义表单什么.不过随着水平的提高,现在返回头来看,确实有很多的不足,比较最明显的就是token获

微信公众平台开发教程(四) 实例入门:机器人(附源码)

微信公众平台开发教程(四) 实例入门:机器人(附源码) 上一篇文章,写了基本框架,可能很多人会觉得晕头转向,这里提供一个简单的例子来予以说明,希望能帮你解开谜团. 一.功能介绍 通过微信公众平台实现在线客服机器人功能.主要的功能包括:简单对话.查询天气等服务. 这里只是提供比较简单的功能,重在通过此实例来说明公众平台的具体研发过程.只是一个简单DEMO,如果需要的话可以在此基础上进行扩展. 当然后续我们还会推出比较复杂的应用实例. 二.具体实现 1.提供访问接口 这里不再赘述,参照上一章,微信公