"Create a Playlist" 使用 Spotify Web API 返回 201 但没有播放列表对象
"Create a Playlist" with Spotify Web API returning 201 but without a playlist object
我正在尝试使用 Spotify Web API 创建一个网络应用程序,其中一部分包括创建一个播放列表,然后用一些曲目填充它。
根据 API reference,对请求的响应应该 return 一个包含播放列表详细信息的播放列表对象,对我来说更重要的是 API 新端点播放列表,以便我可以立即使用它来添加曲目。
我得到的响应是 201,我可以看到在 Spotify 中创建的新播放列表,但响应不包含正文,也没有与创建的播放列表交互的端点。
我的请求是否格式错误或我在响应中遗漏了什么?
// Test create playlist
const createPlaylist = async (accessToken, userID, tracks) => {
// Create empty playlist and retrieve endpoint
const emptyPlaylist = await fetch(`https://api.spotify.com/v1/users/${userID}/playlists`, {
method: 'POST',
body: JSON.stringify({
'name': 'Intersection Test',
'public': false,
}),
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + accessToken
}
})
.then(async response => {
// Add tracks to playlist
if (tracks.length > 100) error("Playlist too large for one call");
const fillPlaylist = await fetch(response.url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + accessToken
},
body: {
'uris': tracks
}
});
});
Image of response in Chrome console here
为了将来参考,我的问题是我在使用正文之前忘记应用 response.json()
,所以我打印的是响应流而不是 Promise 的实际分辨率。
我正在尝试使用 Spotify Web API 创建一个网络应用程序,其中一部分包括创建一个播放列表,然后用一些曲目填充它。
根据 API reference,对请求的响应应该 return 一个包含播放列表详细信息的播放列表对象,对我来说更重要的是 API 新端点播放列表,以便我可以立即使用它来添加曲目。
我得到的响应是 201,我可以看到在 Spotify 中创建的新播放列表,但响应不包含正文,也没有与创建的播放列表交互的端点。
我的请求是否格式错误或我在响应中遗漏了什么?
// Test create playlist
const createPlaylist = async (accessToken, userID, tracks) => {
// Create empty playlist and retrieve endpoint
const emptyPlaylist = await fetch(`https://api.spotify.com/v1/users/${userID}/playlists`, {
method: 'POST',
body: JSON.stringify({
'name': 'Intersection Test',
'public': false,
}),
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + accessToken
}
})
.then(async response => {
// Add tracks to playlist
if (tracks.length > 100) error("Playlist too large for one call");
const fillPlaylist = await fetch(response.url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + accessToken
},
body: {
'uris': tracks
}
});
});
Image of response in Chrome console here
为了将来参考,我的问题是我在使用正文之前忘记应用 response.json()
,所以我打印的是响应流而不是 Promise 的实际分辨率。