Я пытаюсь создать плейлист, используя оболочку 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 или выше (если вы установили его с помощью обновления для композитора, вы можете композитор.json в "njasm/soundcloud": "dev-master"
"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.
Спасибо и получайте удовольствие!