ise / php-soundcloud
由 Anton Lindqvist (mptre) 编写的 PHP SoundCloud API 包装器,支持使用 OAuth 2.0 进行认证,Gary Lockett (ise) 添加了 composer 支持
Requires
- php: >=5.3
This package is auto-updated.
Last update: 2021-06-20 13:38:50 UTC
README
介绍
这是一个使用 PHP 编写的 SoundCloud API 包装器,支持使用 OAuth 2.0 进行认证。
包装器在 2.0 版本中进行了真正的重写。当前版本考虑到 PEAR,可以轻松作为 PEAR 包进行分发。
要求
- PHP >= 5.0.0(带有 cURL 支持)
入门
查看 入门 维基页面,了解如何开始。同时,确保查看 示例应用程序 以获取一些示例代码。
Composer
PSR-4 合规的库版本,可通过 Composer 安装,可在 psr-4 分支上找到。要在项目中包含它,请将以下内容添加到您的 composer.json
文件中
{
"repositories": [
{
"type": "git",
"url": "https://github.com/mptre/php-soundcloud"
}
],
"require": {
"glenscott/soundcloud": "dev-psr-4"
}
}
由于使用命名空间,Composer 版本的库需要 PHP >= 5.3。
命名空间中的类名与下面的示例不同。例如,要使用应用程序凭据创建新的客户端对象,而不是
$client = new Services_Soundcloud(
'CLIENT_ID', 'CLIENT_SECRET', 'REDIRECT_URL');
相反,使用
$client = new SoundCloud\Client(
'CLIENT_ID',
'CLIENT_SECRET',
'REDIRECT_URL'
);
示例
包装器包括用于代表认证用户执行 HTTP 请求的便捷方法。以下是一些快速示例。
当然,您需要先处理认证,然后才能像下面那样请求和修改受保护资源。因此,我参考了 示例应用程序,其中包含一些处理认证的示例代码。
GET
<?php try { $response = json_decode($soundcloud->get('me'), true); } catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) { exit($e->getMessage()); }
POST
<?php $comment = <<<EOH <comment> <body>Yeah!</body> </comment> EOH; try { $response = json_decode( $soundcloud->post( 'tracks/1/comments', $comment, array(CURLOPT_HTTPHEADER => array('Content-Type: application/xml')) ), true ); } catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) { exit($e->getMessage()); }
PUT
<?php $track = <<<EOH <track> <downloadable>true</downloadable> </track> EOH; try { $response = json_decode( $soundcloud->put( 'tracks/1', $track, array(CURLOPT_HTTPHEADER => array('Content-Type: application/xml')) ), true ); } catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) { exit($e->getMessage()); }
DELETE
<?php try { $response = json_decode($soundcloud->delete('tracks/1'), true); } catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) { exit($e->getMessage()); }
上传曲目
<?php $track = array( 'track[title]' => 'My awesome track', 'track[tags]' => 'dubstep rofl', 'track[asset_data]' => '@/absolute/path/to/track.mp3' ); try { $response = $soundcloud->post('tracks', $track); } catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) { exit($e->getMessage()); }
下载曲目
<?php try { $track = $soundcloud->download(1337); } catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) { exit($e->getMessage()); } // do something clever with $track. Save to file perhaps?
更新播放列表
许多人发现更新现有的播放列表很困难。因此,有一个自定义方法可以简化这个问题。
<?php $playlistId = 2000; $trackIds = array(2001); $optionalFields = array('title' => 'My awesome playlist'); try { $playlist = $soundcloud->updatePlaylist($playlistId, $trackIds, $optionalFields); } catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) { exit($e->getMessage()); }
反馈和问题
发现了错误或缺少功能?请不要犹豫,在GitHub上创建一个新的问题。
许可证
版权(c)2011 安东·林德奎斯特
特此免费授权,任何获得本软件及其相关文档副本(以下简称“软件”)的个人,在不限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许获得软件的个人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何形式的保证,无论是明示的还是隐含的,包括但不限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论该责任是因合同行为、侵权行为或其他原因而产生的,无论是与软件或软件的使用或其他处理有关还是无关。