首页 > 解决方案 > Spotify api将曲目添加到播放列表

问题描述

我正在使用 ReactJS 并尝试使用Spotify api制作简单的网站。我也在使用 js 包spotify-web-api-js。我已成功播放当前歌曲并能够在浏览器中显示它。

  getNowPlaying(){
spotifyApi.getMyCurrentPlaybackState()
  .then((response) => {
    this.setState({
      nowPlaying: {
          name: response.item.name,
          albumArt: response.item.album.images[0].url
        }
    });
  })
}

 //this is from the github link above

  Constr.prototype.getMyCurrentPlaybackState = function(options, callback) {
    var requestData = {
      url: _baseUri + '/me/player'
    };
    return _checkParamsAndPerformRequest(requestData, options, callback);
  };

但我面临的问题是将曲目添加到我的播放列表中。我曾尝试使用spotify-web-api-jsreplaceTracksInPlaylist中的功能,但我无法让它工作,我总是收到 403 Forbidden 错误。

  addToPlayList(){
    spotifyApi.addTracksToPlaylist(listID, listOfSongID, callback);
  }

  //this is from the github link above 
  Constr.prototype.replaceTracksInPlaylist = function(playlistId, uris, callback) {
    var requestData = {
      url: _baseUri + '/playlists/' + playlistId + '/tracks',
      type: 'PUT',
      postData: { uris: uris }
    };
    return _checkParamsAndPerformRequest(requestData, {}, callback);
  };

第一个示例还需要身份验证作为访问令牌,但为什么添加到播放列表时它不起作用?

我还将范围更改为 api 文档说我应该使用的正确范围,playlist-modify-public并且playlist-modify-private

var scope = 'playlist-modify-public playlist-modify-private user-read-private user-read-email user-read-playback-state';

我可以从api 文档站点测试 api 调用,并在那里插入我的 oauth 令牌、曲目和播放列表 ID,效果很好,我也可以从调用中得到它。我想不出还有什么可以尝试的,需要一些帮助来确定下一步。

标签: javascriptreactjsapispotify

解决方案


推荐阅读