Как создать плейлист SoundCloud с помощью PHP-обертки

Я пытаюсь создать плейлист, используя оболочку PHP njasm, которую можно посмотреть здесь . Причина, по которой я использую эту оболочку, заключается в том, что она позволяет вести прямой вход пользователя. И для моих целей это требование.

Позвольте мне начать с того, что я могу подключиться к API; перед попыткой создать список воспроизведения, я делаю несколько запросов на получение определенной информации.

Прямо сейчас я пытаюсь это

$response = $facade->post('/playlists', $prepaired_post_array)->request(); 

$prepaired_post_array содержит

 [0] = playlist[title]=LA Sun [1] = &playlist[tracks][][id]=102981743 [2] = &playlist[tracks][][id]=93248225 [3] = &playlist[tracks][][id]=25780933 

Этот оператор возвращает код 422. Который, согласно SoundClouds API , близок к чему-то правильному, но что-то испортилось. Я пробовал несколько разных вещей, но все остальное просто возвращает код 400, что является просто плохим запросом.

Спасибо за использование моей библиотеки.

плейлисты в soundcloud сложны. в последнее время я обновил библиотеку и проверил, что вам нужно в последней версии.

ОБНОВЛЕНИЕ 28-04-2015 : вам понадобится последняя версия версии 2.2.1 или выше, чтобы использовать приведенный ниже примерный код.

Примечание: версия 3.xx все еще находится в тяжелом развитии, пример ниже для 2.xx

Обратите внимание: примите во внимание, что объект Request был изменен в том виде, в котором выполняются запросы в soundcloud. Дополнительные тесты необходимы, прежде чем я рекомендую использовать эту версию в процессе производства. (и именно поэтому я до сих пор не отмечал его как стабильную версию)

Имея это в виду, сделайте следующее:

1) Загрузите последний тег MASTER 2.2.1 или выше (если вы установили его с помощью обновления для композитора, вы можете "njasm/soundcloud": "dev-master" композитор.json в "njasm/soundcloud": "dev-master" "njasm/soundcloud": "2.2.1" и запустить композитор в среде разработки.) Вам понадобится версия выше версии 2.2.0, но не 3.0.x, так как она еще не стабильна.

после этого попробуйте этот код:

 // initialize Soundcloud // auth via User Credential Flow $soundcloud = new \Njasm\Soundcloud\SoundcloudFacade( $clientID, $clientSecret ); $soundcloud->userCredentials("user@email.com", "user_password"); // build playlist main array $playlistData = array( "playlist" => array( "title" => "My2 great Title Playlist!", "sharing" => "public", // or private ) ); //create playlist at soundcloud and grab the response $response = $soundcloud->post('/playlists', $playlistData)->request(); // build tracks array $tracks = array( "playlist" => array( "tracks" => array( array("id" => 29720509), // Connect the Dots array("id" => 26057359) // Forgotten Values ) ) ); // put tracks into playlist $response = $soundcloud->put( '/playlists/' . $response->bodyObject()->id, $tracks )->request(); var_dump($response->bodyArray()); die(); 

Это должно работать. Учитывайте также, что каждый раз, когда вы «PUT» запрашиваете список воспроизведения, вам нужно собрать массив треков со всеми идентификаторами дорожек, которые вы хотите в этом списке воспроизведения / наборе, soundcloud стирает все треки и вставляет новые.

Я хотел бы спросить вас, если вы обнаружите какие-либо проблемы с библиотекой, чтобы сообщить об этом на странице проблем github.

Спасибо и получайте удовольствие!