如何通过soundcloud API创建公共播放列表?

时间:2014-04-30 06:04:30

标签: javascript api soundcloud playlist

作为一名soundcloud用户,我可以创建一个公共播放列表,并在其上添加soundcloud上的任何曲目。

如何通过javascript中的soundcloud api重新创建此行为?

guide stipulates you must own the tracks you want add to a playlist,这显然不是我想要执行的操作。

如果有一组网址或ID,我该如何创建公共播放列表?

1 个答案:

答案 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);
});

我希望它有所帮助!