我正在使用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-js中的函数replaceTracksInPlaylist
,但是我无法使其正常工作,我总是收到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);
};
第一个示例还要求将身份验证作为访问令牌,但是为什么在添加到播放列表时它不起作用?
我也将scopes更改为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 documentation site的api调用,然后在其中插入我的oauth令牌,曲目和播放列表ID,效果很好,我也可以从调用中找回它。我想不出任何其他尝试来寻求下一步的帮助。