Как создать общедоступный плейлист через API SoundCloud?

Как пользователь soundcloud, я могу создать общедоступный плейлист и добавить в него любой трек из soundcloud.

Как мне воссоздать это поведение через API Soundcloud в javascript?

в руководстве указано, что треки, которые вы хотите добавить в плейлист, должны принадлежать вам. Это явно не действие, которое я пытаюсь выполнить.

Учитывая группу URL-адресов или идентификаторов, как мне создать общедоступный плейлист?


person Apollo Creed    schedule 30.04.2014    source источник
comment
Та же проблема здесь. Тем не менее, рубиновая версия работает нормально.   -  person ocolot    schedule 29.06.2014


Ответы (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/Настройте приложение angular для передачи учетных данных в запросах 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);
});

Я надеюсь, что это помогает!

person ocolot    schedule 29.06.2014