2 APP ID 申請

使用前需要再云音樂開發平臺申請app id

2.1 賬號入駐

  1. 進入網頁:https://developer.music.163.com/st/developer/ 登錄后,點擊導航欄右上角“立即入駐”按鈕
  2. 填寫相關的企業信息,然后提交申請入駐

提交成功后,等待審核

審核成功?

審核成功后,顯示已入駐狀態

2.2 創建應用

選擇應用管理——創建我的第一個應用?

選擇創建其他應用?

創建應用?

填寫信息?

等待審核?

等待審核通過

應用審核通過后在控制臺的應用詳情中,可以看到應用狀態是:未上線

2.3 控制臺

在下面選擇:接口加密方式(秘鑰) ,填寫方式會在下面章節講

秘鑰

生成秘鑰?

3. 生成密鑰對

3.1 方法一:使用命令行生成密鑰對

加密方案使用的RSA密鑰位數為2048位,密鑰格式使用PKCS8, 通過使用OpenSSL來生成

  1. 生成原始RSA私鑰文件app_private_key.pem
openssl genrsa -out app_private_key.pem 2048
  1. 需要將原始 RSA私鑰轉換為 pkcs8格式,得到文件app_private_key_pkcs8.pem
openssl pkcs8 -topk8 -inform PEM -in app_private_key.pem -outform PEM -nocrypt -out app_private_key_pkcs8.pem
  1. 生成RSA公鑰文件 app_public_key.pem
openssl rsa -in app_private_key.pem -pubout -out app_public_key.pem

3.2 方法二:也可以通過代碼生成秘鑰對(備選,demo中示例)

RSA?

生成密鑰對 

獲取秘鑰?

4. demo示例

  1. 將AppID復制到Demo中的Config.java中APPID字段

appid?

設置APP id?

  1. 將生成的三方秘鑰對中的私鑰文件app_private_key_pkcs8.pem按照之前的方式,去除頭尾分割線部分、換行和空格,轉換成一行字符串,復制到config中的APP_PRIVATE_KEY字段中

經過以上步驟可以運行demo了

5. 秘鑰使用

生成成功后,將公鑰文件app_public_key.pem給網易云音樂,私鑰app_private_key.pemapp_private_key_pkcs8.pem需要合作方妥善保管。

如果是通過命令行生成的密鑰對,用文本編輯工具打開app_public_key.pem文件,如圖:

公鑰編輯?

您需要將公鑰文件去除頭尾分割線部分、換行和空格,轉換成一行字符串,如圖:

編輯?

復制該單行公鑰字符串,填寫到服務端公鑰位置,并保存(如果是代碼生成的秘鑰對,直接復制生成的公鑰即可)

公鑰傳云音樂?

上傳確認?

6. API調用

6.1 綁定

  1. 調用前首先綁定CMApiService,冷啟動需要先啟動云音樂進程

注意:targetSdkVersion 30 的話使用bindService會在android11手機上不成功,需要注意不要使用30及以上

private fun bindCMApiService(): Boolean {
val intent = Intent("com.netease.cloudmusic.third.api.CMApiService")
intent.package = "com.netease.cloudmusic" return bindService(intent, this, Context.BIND_AUTO_CREATE) }
  1. 綁定成功后,獲取ICMApi接口
private var cmApi: ICMApi? = null

override fun onServiceConnected(name: ComponentName?, service: IBinder?) {
cmApi = ICMApi.Stub.asInterface(service)
}
  1. 獲取ICMApi接口之后,即可通過此接口獲取云音樂當前播放的歌曲信息
private fun getPlayInfo() {
cmApi?.execute(CMApiConst.CMD_GET_INFOS, Bundle())?.apply {
//封面(url地址)
val cover = get(CMApiConst.EXTRA_MUSIC_COVER) as? String
//歌曲名
val name = get(CMApiConst.EXTRA_MUSIC_NAME) as? String
//歌手名(如果是有多歌手的歌曲,歌手名會以“歌手A/歌手B”的形式返回)
val artist = get(CMApiConst.EXTRA_MUSIC_ARTIST) as? String
//播放狀態(0:暫停, 1:播放中)
val playStatus = getInt(CMApiConst.EXTRA_PLAY_STATUS) == CUSTOM_PLAY_STATUS_PLAY
//播放模式(順序,隨機,單曲循環等)
val playMode = uiHelper.getPlayModeString(getInt(CMApiConst.EXTRA_PLAY_MODE))
}
}
/**
* 播放狀態
* 0.暫停, 1.播放中
*/
const val EVENT_PLAY_STATUS = "EVENT_PLAY_STATUS"
const val CUSTOM_PLAY_STATUS_PAUSE = 0
const val CUSTOM_PLAY_STATUS_PLAY = 1
  1. 為了安全考慮,有些操作都需要通過token進行請求,獲取token的方法如下:
private val actionMap = mutableMapOf<String, Any>()

//構造加密請求參數
actionMap["encRequest"] = uiHelper.generateEncryptString()
val actionJson = JSONObject(actionMap as Map<*, *>)
params.putString(CMApiConst.KEY_DATA, actionJson.toString())

cmApi?.executeAsync(CMApiConst.CMAPIGetToken_CMD, "", params, object : ICMApiCallback.Stub() {
override fun onReturn(bundle: Bundle?) {
val ret = bundle?.getInt("code")
if (ret == CMApiConst.RESULT_CODE_SUCCESS) {
val tokenSign = bundle.getString("encResult") ?: ""
//解密驗證參數
val decryptData = uiHelper.decryptEncryptString(tokenSign)

//decryptData.token 獲取token
//decryptData.expireTime 獲取token失效時間(時間戳)默認失效時長1小時,失效后請重新獲取
}
}
})

6.2 解綁

當不再需要訪問云音樂API時候,可以按需解綁:

override fun onDestroy() {
super.onDestroy()
try {
cmApi?.unregisterEventListener(cmEventListener)
} catch (ignored: Throwable) {
}
if (isBindCMService) {
unbindService(this)
}
}

7. 常見問題

Q:如何找到網易云音樂 API

A:冪簡集成是國內領先的API集成管理平臺,專注于為開發者提供全面、高效、易用的API集成解決方案。冪簡API平臺可以通過以下兩種方式找到所需API:通過關鍵詞搜索API(例如,輸入’網易云音樂 API‘這類品類詞,更容易找到結果)、或者從API hub分類頁進入尋找。

Q:圖片和音樂大多數都是http的, 都能支持https么
A:可以的,已經全覆蓋http和https

Q:免費可收聽的歌曲占比多少
A:曲庫免費歌曲曲庫超千萬,占比90%左右

Q:免費下載的歌曲占比多少
A:很少有免費下載的,基本都是要vip才能下

Q:歌單和專輯會重復么
A:會有一定概率重復,正常的,不是一個東西

Q:網易云音樂 API的替代品有哪些?

提供AI大模型API的服務商除了網易云音樂 API,還有其他替代服務商也提供類似api服務,例如:

Vagalume API開放平臺Binary Jazz API開放平臺VCV Rack API開放平臺

更多競品可以在冪簡集成開放平臺中找到。

Q:網易云音樂 API這個密鑰還適用于哪些api?

每日推薦、獲取場景音樂獲取用戶創建歌單

8.? 總結

本文全面且細致地總結了獲取網易云音樂API開放平臺訪問token的完整流程,為音樂應用開發者們提供了一份條理清晰、操作簡便的分步指南。從初始的網易云音樂API開放平臺賬號注冊,到完成開發者身份驗證,再到最終成功取得訪問token,每一步都輔以詳盡的說明與指導,旨在確保開發者們能夠輕松、順利地完成整個流程。在成功獲取訪問token后,本文還著重強調了進行可用性測試的重要性。這一步驟對于確保API能夠無縫集成到音樂應用中,并發揮出最佳效能至關重要。通過測試,開發者們可以及時發現并解決可能存在的問題,為后續的音樂應用開發奠定堅實的基礎。本文不僅為開發者們提供了一份詳盡的指南,更為他們順利獲取并有效利用網易云音樂API開放平臺資源提供了強有力的支持。這不僅有助于提升音樂應用的性能和用戶體驗,更將進一步推動音樂領域的數字化創新與發展。

上一篇:

網易企業郵箱 API開放平臺訪問token分步指南

下一篇:

如何申請和獲取ipgeolocation API key 密鑰: 詳細操作指南
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費