首页 > 解决方案 > 使用 Spotify Web API 返回 201 但没有播放列表对象的“创建播放列表”

问题描述

我正在尝试使用 Spotify Web API 创建一个 Web 应用程序,其中一部分包括创建一个播放列表,然后用一些曲目填充它。

根据API 参考,对请求的响应应该返回一个包含播放列表详细信息的播放列表对象,对我来说更重要的是,新播放列表的 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
        }
      });
    });

Chrome 控制台中的响应图像在这里

标签: javascripthttpasync-awaitspotifyfetch-api

解决方案


为了将来参考,我的问题是我response.json()在使用 body 之前忘记申请了,所以我打印的是响应流而不是 Promise 的实际分辨率。


推荐阅读