如何使用PHP包装器创建SoundCloud播放列表
作者:互联网
我正在尝试使用njasm PHP包装器创建一个播放列表,可以将其查看为here.我使用此包装器的原因是因为它允许直接用户登录.就我的目的而言,这是一项要求.
首先,我可以连接到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的播放列表非常棘手.最近,我更新了该库并测试了最新版本中的需求.
2015年4月4日更新:您需要使用最新的2.2.1稳定版本或更高版本才能使用以下示例代码.
注意:版本3.x.x仍在大量开发中,以下示例适用于2.x.x
注意:请考虑在我建议在生产中使用该版本之前,对Request对象的更改方式已经更改了对soundcloud的请求,需要进行进一步的测试. (这也是为什么我仍然没有将其标记为稳定版本的原因)
考虑到这一点,请执行以下操作:
1)下载最新的MASTER 2.2.1标记或更高版本(如果通过composer更新安装了它,则将composer.json更改为“ njasm / soundcloud”:“ dev-master”“ njasm / soundcloud”:“ 2.2.1”并运行)在开发环境中进行Composer更新.)您需要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”对播放列表的请求时,都必须使用该播放列表/集合中所需的所有曲目IDS构建音轨阵列,soundcloud会擦除所有曲目并插入新的曲目.
我想问你,如果您发现库中有任何问题要在github问题页面中报告.
谢谢,玩得开心!
标签:soundcloud,php 来源: https://codeday.me/bug/20191009/1878047.html