问题描述:
在使用QQ音乐API接口获取音乐的时候,微信后台请求成功,但是出现403禁止访问页面,导致无法播放音乐。
解决办法
一、首先进行QQ音乐官网抓包分析
对RequestURL进行分析,得知每首歌曲音乐源的“VKey"都不同,所以要先获取到目标歌曲的“VKey”。
二、获取“VKey”
function getSongVkey(songmid,callback) {wx.request({url: 'https://c./base/fcgi-bin/fcg_music_express_mobile3.fcg',data: {// callback: 'musicJsonCallback',loginUin: 3051522991,format: 'jsonp',platform: 'yqq',needNewCode: 0,cid: 205361747,uin: 3051522991,guid: 5931742855,songmid: songmid,filename: 'C400' +songmid+'.m4a'},method: 'GET',header: {'content-Type': 'application/json'},success: function(res) {if (res.statusCode == 200) {console.log("请求VKey成功")console.log(res.data)callback(res.data);} }})}
songmid是从歌曲信息中获取得到的,微信小程序进行后台请求,代码片段如上。
请求后返回的数据如下,主要获取"VKey"
musicJsonCallback({"code":0,"cid":205361747,"userip":"175.167.138.19","data":{"expiration":80400,"items":[{"subcode":0,"songmid":"000wdsPT2DJfTL","filename":"C400000wdsPT2DJfTL.m4a","vkey":"577AFCD8396DD62F1EF4BB62B7BB2E54C3D0C12DD970E15EB21EBBDF913B0AD752F2EB470DE418FCAD3CFB94D2B07D286A5A5F08A5A2C4D5"}]}})
三、拼接音乐源URL
最后请求的URL格式如下
'http://dl.stream./C400' +songmid + '.m4a?fromtag=38&guid=5931742855&vkey='+VKey