根据Spotify Web API Create Playlist,一旦授权成功,带有access_token和一些其他参数的POST应该为用户创建一个新的播放列表。 链接
中的示例CURL命令curl -X POST "https://api.spotify.com/v1/users/wizzler/playlists"
-H "Authorization: Bearer {your access token}"
-H "Content-Type: application/json" --data "{\"name\":\"A New Playlist\", \"public\":false}"
这对我来说很好。但是,当我使用request
库从nodejs应用程序运行以下代码时,响应统计信息Error parsing json
。
我在这里缺少什么?
更新:我尝试根据request.js示例将data
更改为form
。我也尝试删除stringify调用,并直接传递对象。错误仍然存在。
var request = require('request');
var authOptions1 = {
url: 'https://api.spotify.com/v1/users/' + username + '/playlists',
data: JSON.stringify({
'name': name,
'public': false
}),
dataType:'json',
headers: {
'Authorization': 'Bearer ' + access_token,
'Content-Type': 'application/json',
}
};
console.log(authOptions1);
request.post(authOptions1, function(error, response, body) {
console.log(body);
});
答案 0 :(得分:7)
不使用data
,而是使用body
:
var request = require('request');
var authOptions1 = {
url: 'https://api.spotify.com/v1/users/' + username + '/playlists',
body: JSON.stringify({
'name': name,
'public': false
}),
dataType:'json',
headers: {
'Authorization': 'Bearer ' + access_token,
'Content-Type': 'application/json',
}
};
request.post(authOptions1, function(error, response, body) {
console.log(body);
});
应该成功。
答案 1 :(得分:0)
根据https://github.com/mikeal/request#requestoptions-callback
var authOptions1 = {
url: 'https://api.spotify.com/v1/users/' + username + '/playlists',
form: { // data = form
'name': name,
'public': false
},
json: true, // dataType: json = json: true
headers: {
'Authorization': 'Bearer ' + access_token,
'Content-Type': 'application/json',
}
};
request.post(authOptions1, function(error, response, body) {
console.log(body);
});