导入
创建和查看用户播放列表
了解如何在 Deezer 上创建和查看用户播放列表。
每个人都有不同的情绪,每种情绪对应不同的音乐。派对歌曲与低落时听的歌曲风格迥异,连续播放往往效果不佳。因此,我们创建不同的播放列表来匹配不同的心情。
在本课中,我们将学习如何创建和删除用户播放列表。
创建新播放列表
我们可以使用 Deezer API 端点为任意用户创建播放列表,前提是该用户已在应用中启用了 manage_library 权限。
...
创建新播放列表的端点
此 API 端点的基础 URL 为:
1https://api.deezer.com/user/me/playlists
以下是该端点的请求参数:
请求参数
| 参数 | 类型 | 必填项 | 说明 |
|---|---|---|---|
| title | 字符串 | 是 | 新播放列表的标题 |
| access_token | 字符串 | 是 | 应用认证后获取的令牌 |
| request_method | 字符串 | 是 | 若想创建播放列表,需设置为 POST |
注意: 下面的代码会提取播放列表的 ID,并保存在名为
playlist_id的键中,供后续使用。
点击下方代码区域中的“运行”按钮来创建一个播放列表:
1// 导入所需库 2import fetch from "node-fetch" 3 4// 定义端点 URL 5const endpointUrl = new URL("https://api.deezer.com/user/me/playlists"); 6 7const headerParameters = { 8 contentType: "application/json", 9}; 10 11// 定义查询参数 12const queryParameters = new URLSearchParams({ 13 access_token: '{{ACCESS_TOKEN}}', 14 request_method: 'POST', 15 title: '新播放列表' 16}); 17 18// 设置 API 调用选项 19const options = { 20 method: "GET", 21 headers: headerParameters, 22}; 23 24// 发起 API 请求的函数 25async function createNewPlaylist() { 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// 调用函数发起请求 39createNewPlaylist();
在上述代码中:
- 第 5 行: 将端点 URL 存储在
endpointUrl变量中。 - 第 13–15 行: 在
queryParameters中添加access_token、request_method和title。 - 第 28 行: 使用
fetch函数发起 API 请求。
响应字段
如果 API 调用成功,响应中将包含新播放列表的 id。
查看用户播放列表
我们可以使用此端点查找用户的播放列表。公共播放列表可通过调用该端点查看;但若要查看用户的私密播放列表,则必须在请求参数中提供 access_token。该 API 端点返回用户所有播放列表的列表。
...
查看用户播放列表的端点
此端点的基础 URL 为:
1https://api.deezer.com/user/me/playlists
请求参数
该端点仅需要 access_token 作为请求参数。
点击下方“运行”按钮以查看用户的播放列表:
1// 导入所需库 2import fetch from "node-fetch" 3 4// 定义端点 URL 5const endpointUrl = new URL("https://api.deezer.com/user/me/playlists"); 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 viewPlaylist() { 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// 调用函数发起请求 37viewPlaylist();
在上述代码中:
- 第 13 行: 将
access_token添加到queryParameters变量中。
该端点返回一个播放列表对象的列表。每个对象包含关于用户播放列表的详细信息。各字段的具体含义如下:
响应字段
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | 整数 | 播放列表的唯一标识 ID |
| title | 字符串 | 播放列表的标题 |
| duration | 整数 | 播放列表总时长(单位:秒) |
| public | 布尔值 | 若播放列表为公开,值为 true,否则为 false |
| is_love_tracks | 布尔值 | 若为“喜爱歌曲”播放列表,值为 true,否则为 false |
| collaborative | 布尔值 | 若为协作播放列表,值为 true,否则为 false |
| link | URL | 在 Deezer 上查看该播放列表的链接 |
| checksum | 字符串 | 歌曲列表的校验码 |
| time_add | 日期时间 | 播放列表创建时间 |
| time_mod | 日期时间 | 播放列表最后更新时间 |
| creator | 对象 | 包含 id 和 name 的用户对象 |