作为一名soundcloud用户,我可以创建一个公共播放列表,并在其上添加soundcloud上的任何曲目。
如何通过javascript中的soundcloud api重新创建此行为?
guide stipulates you must own the tracks you want add to a playlist,这显然不是我想要执行的操作。
如果有一组网址或ID,我该如何创建公共播放列表?
答案 0 :(得分:1)
以下是AngularJS,OAuth标头和ngResource的解决方案。首先,您需要进行身份验证(1到4),然后您可以创建传递凭据的播放列表(5到7)。
1 /使用Soundcloud Javascript SDK对您的客户进行身份验证(请参阅http://developers.soundcloud.com/docs/api/sdks#authentication)。
2 /使用SC.accessToken()
3 /将OAuth授权标头添加到$http
服务:
$http.defaults.headers.common['Authorization'] = "OAuth #{accessToken}"
4 /配置您的角度应用程序以传递AJAX请求中的凭据:
ngApp.config([
'$httpProvider', function($httpProvider) {
$httpProvider.defaults.headers.common['Accept'] = 'application/json';
$httpProvider.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
$httpProvider.defaults.useXDomain = true;
return delete $httpProvider.defaults.headers.common['X-Requested-With'];
}
]);
5 /我使用ngResource
服务(请参阅https://docs.angularjs.org/api/ngResource/service/ $ resource)来促进API请求:
angular.module('ngApp.services').factory('SCPlaylists', [
'$resource', function($resource) {
return $resource('https://api.soundcloud.com/me/playlists/:id', null, {
update: {
method: 'PUT'
}
});
}
]);
6 /这是播放列表对象:
{title: "abc", sharing: "private"}
7 /最后,播放列表创建:
$scope.newPlaylist = SCPlaylists.save({}, {
playlist: playlist
}, function(playlist) {
return console.log(playlist);
});
我希望它有所帮助!