Logo
Section 1 / 2

查找曲目并管理收藏夹

学习如何查找歌曲并更新用户的收藏歌曲。

导入

查找曲目并管理收藏夹

学习如何查找歌曲并更新用户的收藏歌曲。

在本课程中,我们将使用三种不同的 HTTP 请求:GET、POST 和 DELETE。我们将通过这些请求来查找歌曲、将歌曲添加到用户的播放列表或收藏夹,以及从用户的播放列表或收藏夹中删除歌曲。

在 Deezer 上查找歌曲

我们可以使用此接口查找 Deezer 平台上任意可用的歌曲。要使当前用户能够读取该歌曲,需要提供一个访问令牌。

...
获取歌曲详情的接口

该接口的基础 URL 为:

1https://api.deezer.com/track/id

上述 URL 中的路径参数 id 需替换为歌曲的 ID。

请求参数

参数类型必填描述
access_token字符串是你的访问令牌
id整数是歌曲的 ID(此参数作为路径参数传递)

在下表中,“Harder, Better, Faster, Stronger”这首歌的歌曲 ID 为 3135556。我们可以使用这个 id 通过该接口获取歌曲信息。

歌曲 ID 列表

歌曲名称歌曲 ID
Harder, Better, Faster, Stronger3135556
Closer129310248
Lose Yourself1109731
Levitating1124841682

点击“运行”按钮查看调用该接口返回的响应:

1// 导入所需库 2import fetch from "node-fetch" 3 4// 定义接口地址 5const endpointUrl = new URL("https://api.deezer.com/track/3135556"); 6 7const headerParameters = { 8 contentType: "application/json", 9}; 10 11// 定义查询参数 12const queryParameters = new URLSearchParams({ 13 access_token: '{{ACCESS_TOKEN}}' 14}); 15 16// 设置 API 调用选项 17const options = { 18 method: "GET", 19 headers: headerParameters, 20}; 21 22// 发起 API 请求的函数 23async function fetchTrack() { 24 try { 25 endpointUrl.search = queryParameters; 26 const response = await fetch(endpointUrl, options); 27 28 // 输出响应结果 29 printResponse(response); 30 } catch (error) { 31 // 输出错误信息 32 printError(error); 33 } 34} 35 36// 调用函数发起请求 37fetchTrack();

在上述代码中:

  • 第 5 行:将接口地址定义在 endpointUrl 变量中。
  • 第 12–14 行:将 access_token 添加到 queryParameters 中。
  • 第 26 行:使用 fetch 函数发起 API 请求。

响应字段

字段名类型描述
id整数歌曲的 ID
readable布尔值用户是否可以收听该歌曲,是则为 true,否则为 false
name字符串歌曲名称
linkURL歌曲在 Deezer 上的链接
shareURL分享该歌曲的链接
duration整数歌曲时长(秒)
rank整数歌曲在 Deezer 上的排名
release_date字符串歌曲发行日期
explicit_lyrics布尔值歌曲是否包含脏话歌词,是则为 true,否则为 false
bpm浮点数歌曲的每分钟节拍数
gain浮点数歌曲的信号强度
available_countries字符串数组该歌曲可播放的国家列表
artist对象包含艺术家 ID、名称、头像和链接的对象
album对象包含专辑 ID、标题、封面图和链接的对象

将歌曲添加到用户的收藏夹

当你听到新歌时,有些歌曲会特别喜欢。你可以将这些歌曲保存到收藏夹,以便日后收听。 我们可以通过此 API 接口将歌曲添加到用户的收藏夹中。本接口使用 POST 类型的 HTTP 请求。

...
将歌曲添加到用户收藏夹的接口

该接口的基础 URL 为:

1https://api.deezer.com/user/me/tracks

该接口接收以下请求参数:

请求参数

参数类型必填描述
track_id整数是歌曲的 ID
access_token字符串是应用认证后获得的令牌
request_method字符串是若想将歌曲添加到收藏夹,需设置为 POST

注意:如果将 request_method 参数改为 DELETE,则可使用相同的基地址和请求参数,从用户的收藏夹中删除歌曲。

点击下方代码模块中的“运行”按钮查看响应结果:

1// 导入所需库 2import fetch from "node-fetch" 3 4// 定义接口地址 5const endpointUrl = new URL('https://api.deezer.com/user/me/tracks'); 6 7const headerParameters = { 8 contentType: "application/json", 9}; 10 11// 定义查询参数 12const queryParameters = new URLSearchParams({ 13 access_token: '{{ACCESS_TOKEN}}', 14 track_id: 3135556, 15 request_method: 'POST' 16}); 17 18// 设置 API 调用选项 19const options = { 20 method: "GET", 21 headers: headerParameters, 22}; 23 24// 发起 API 请求的函数 25async function addTrackToFavorites() { 26 try { 27 endpointUrl.search = queryParameters; 28 const response = await fetch(endpointUrl, options); 29 30 // 输出响应结果 31 printResponse(response); 32 } catch (error) { 33 // 输出错误信息 34 printError(error); 35 } 36} 37 38// 调用函数发起请求 39addTrackToFavorites();

在上述代码中:

  • 第 12–16 行:将 access_token、track_id 和 request_method 添加到 queryParameters 变量中。

注意:如果响应为 true,表示歌曲已成功添加至收藏夹;若为 false,则添加失败。

检查用户的收藏歌曲

通过此接口,我们可以获取并返回用户收藏的歌曲列表。

...
获取用户收藏的接口

该 API 的基础 URL 为:

1https://api.deezer.com/user/me/tracks

注意:该接口的基地址与上一个相同,但仅需在请求参数中提供 access_token。

点击下方代码模块中的“运行”按钮查看响应结果:

1// 导入所需库 2import fetch from "node-fetch" 3 4// 定义接口地址 5const endpointUrl = new URL('https://api.deezer.com/user/me/tracks'); 6 7const headerParameters = { 8 contentType: "application/json", 9}; 10 11// 定义查询参数 12const queryParameters = new URLSearchParams({ 13 access_token: '{{ACCESS_TOKEN}}', 14}); 15 16// 设置 API 调用选项 17const options = { 18 method: "GET", 19 headers: headerParameters, 20}; 21 22// 发起 API 请求的函数 23async function checkUserFavorites() { 24 try { 25 endpointUrl.search = queryParameters; 26 const response = await fetch(endpointUrl, options); 27 28 // 输出响应结果 29 printResponse(response); 30 } catch (error) { 31 // 输出错误信息 32 printError(error); 33 } 34} 35 36// 调用函数发起请求 37checkUserFavorites();

在上述代码中:

  • 第 12–14 行:将 access_token 添加到 queryParameters 变量中。

注意:在响应结果中,你可以找到之前代码模块执行时添加的那首歌曲。

艺术家与流派

在 Deezer 上探索专辑