KuGouMusicApi项目中的歌曲成绩单API签名问题解析
KuGouMusicApi 酷狗音乐 Node.js API service 项目地址: https://gitcode.com/gh_mirrors/ku/KuGouMusicApi
在KuGouMusicApi项目中,开发者遇到了一个关于歌曲成绩单API接口的签名加密问题。这个API接口用于获取酷狗音乐中歌曲的详细成绩单信息,位于APP播放界面的详情页中。
接口分析
该API的请求URL包含多个参数,其中关键参数包括:
- album_audio_id:歌曲专辑ID
- appid:应用ID
- clienttime:客户端时间戳
- clientver:客户端版本号
- dfid:设备标识
- mid:机器ID
- token:用户令牌
- userid:用户ID
- uuid:设备唯一标识
- signature:签名参数
签名问题
开发者发现该接口的signature参数使用了几种常见的加密算法都无法正确生成。经过对比其他API接口,发现缺少了srcappid参数。这是一个值得注意的细节,因为在酷狗音乐的API体系中,srcappid参数通常用于标识请求来源的应用ID。
解决方案
根据项目所有者的建议,可以尝试以下两种解决方案:
-
去除srcappid参数:虽然原版接口可能包含srcappid参数,但在实际测试中发现可以暂时去掉这个参数,这样就能使用现有的签名加密方法。
-
使用安卓原生接口:开发者还发现了一个替代接口/song/ranking,这个接口可以直接获取歌曲排名信息,且签名方式更为简单。
技术建议
在处理酷狗音乐API签名问题时,开发者需要注意以下几点:
-
参数完整性:确保所有必要参数都包含在请求中,包括看似可选但实际上影响签名的参数。
-
参数顺序:签名生成通常对参数的顺序敏感,需要按照特定顺序拼接参数。
-
版本差异:不同版本的客户端可能使用不同的签名算法,需要注意clientver参数的影响。
-
测试验证:在无法确定签名算法时,可以通过对比合法请求来排除干扰参数。
总结
对于KuGouMusicApi项目中的歌曲成绩单API,目前最实用的解决方案是暂时去除srcappid参数,使用现有的签名加密方法。这种处理方式虽然可能不是最完美的解决方案,但在实际应用中已被证明是有效的。未来如果需要更完整的实现,可以进一步研究srcappid参数的具体作用和影响。
KuGouMusicApi 酷狗音乐 Node.js API service 项目地址: https://gitcode.com/gh_mirrors/ku/KuGouMusicApi
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考