soundcloud api php 添加关注者
soundcloud api php add follower
我正在制作一个页面,只要您在 soundcloud 上关注我,您就可以在其中使用您的 soundcloud 登录并获得下载我的歌曲的权限。我有身份验证工作,但无法弄清楚以下部分。我几乎复制并粘贴了来自 soundcloud 开发者网站的示例,位于喜欢和关注部分下,但它没有按预期工作。 try catch 使我似乎没有关注我的主帐户(我通过测试身份验证步骤获得了用户 ID#),即使我继续使用 soundcloud,在我的测试帐户上并关注我的主帐户。这是我收到的错误:
Warning: Missing argument 2 for Services_Soundcloud::put(), called in /my_website/index.php on line 43 and defined in /my_website/Services/Soundcloud.php on line 636
Notice: Undefined variable: postData in /my_website/Services/Soundcloud.php on line 642
Fatal error: Uncaught exception 'Services_Soundcloud_Invalid_Http_Response_Code_Exception' with message 'The requested URL responded with HTTP code 404.' in /my_website/Services/Soundcloud.php:941
Stack trace:
#0 /my_website/Services/Soundcloud.php(645): Services_Soundcloud->_request('https://api.sou...', Array)
#1 /my_website/index.php(43): Services_Soundcloud->put('/me/followings/...')
#2 {main}
thrown in my_website/Services/Soundcloud.php on line 941
这里是代码 运行:
require_once 'Services/Soundcloud.php';
//session_destroy();
session_start();
$soundcloud = new Services_Soundcloud(client_id, secret_id, redirect_uri)
$authURL = $soundcloud->getAuthorizeUrl();
echo "<pre>";
if (!empty ($_SESSION['token'])){
$soundcloud->setAccessToken($_SESSION['token']);
} else if(!empty($_GET['code'])){
try{
$accessToken = $soundcloud->accessToken($_GET['code']);
$_SESSION['token'] = $accessToken['access_token'];
$soundcloud->setAccessToken($_SESSION['token']);
} catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) {
exit($e->getMessage());
}
} else {
echo "<a href='".$authURL."'><img border='0' alt='Connect with Soundcloud' src='connect.png'></a>";
}
if (!empty ($_SESSION['token'])){
// check the status of the relationship
echo $_SESSION['token'];
try {
$soundcloud->get('/me/followings/#######');
} catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) {
if ($e->getHttpCode() == '404')
print "You are not following user #######\nTrying to follow now\n";
$soundcloud->put('/me/followings/#######');
}
}
soundcloud 上的示例是错误的还是我在执行这些命令之前做错了什么?
另请注意,我的 soundcloud 对象 init 和 followings/##### 已更改以保护我的信息。
经过大量研究和反复试验,如果发现将路径设置为:
https://api.soundcloud.com/me/followings/#######?oauth_token=MY_TOKEN
似乎有效。我不知道这是否只是一种解决方法,或者 API 是如何使用的,但这是我让它工作的唯一方法,我假设 soundcloud 客户端对象自动发送令牌命令,但似乎没有。
我还发现,如果它确实找到匹配项(用户正在跟踪 ID 号),那么它会 returns 一个 303 错误,api 指南甚至没有在他们的列表中列出http 错误代码。
你在 me
前面有一个斜线,不能有。以下对我有用:
$soundcloud->put('me/followings/#########','',array(CURLOPT_HTTPHEADER => array('Content-Type: application/xml')));
我正在制作一个页面,只要您在 soundcloud 上关注我,您就可以在其中使用您的 soundcloud 登录并获得下载我的歌曲的权限。我有身份验证工作,但无法弄清楚以下部分。我几乎复制并粘贴了来自 soundcloud 开发者网站的示例,位于喜欢和关注部分下,但它没有按预期工作。 try catch 使我似乎没有关注我的主帐户(我通过测试身份验证步骤获得了用户 ID#),即使我继续使用 soundcloud,在我的测试帐户上并关注我的主帐户。这是我收到的错误:
Warning: Missing argument 2 for Services_Soundcloud::put(), called in /my_website/index.php on line 43 and defined in /my_website/Services/Soundcloud.php on line 636
Notice: Undefined variable: postData in /my_website/Services/Soundcloud.php on line 642
Fatal error: Uncaught exception 'Services_Soundcloud_Invalid_Http_Response_Code_Exception' with message 'The requested URL responded with HTTP code 404.' in /my_website/Services/Soundcloud.php:941
Stack trace:
#0 /my_website/Services/Soundcloud.php(645): Services_Soundcloud->_request('https://api.sou...', Array)
#1 /my_website/index.php(43): Services_Soundcloud->put('/me/followings/...')
#2 {main}
thrown in my_website/Services/Soundcloud.php on line 941
这里是代码 运行:
require_once 'Services/Soundcloud.php';
//session_destroy();
session_start();
$soundcloud = new Services_Soundcloud(client_id, secret_id, redirect_uri)
$authURL = $soundcloud->getAuthorizeUrl();
echo "<pre>";
if (!empty ($_SESSION['token'])){
$soundcloud->setAccessToken($_SESSION['token']);
} else if(!empty($_GET['code'])){
try{
$accessToken = $soundcloud->accessToken($_GET['code']);
$_SESSION['token'] = $accessToken['access_token'];
$soundcloud->setAccessToken($_SESSION['token']);
} catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) {
exit($e->getMessage());
}
} else {
echo "<a href='".$authURL."'><img border='0' alt='Connect with Soundcloud' src='connect.png'></a>";
}
if (!empty ($_SESSION['token'])){
// check the status of the relationship
echo $_SESSION['token'];
try {
$soundcloud->get('/me/followings/#######');
} catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) {
if ($e->getHttpCode() == '404')
print "You are not following user #######\nTrying to follow now\n";
$soundcloud->put('/me/followings/#######');
}
}
soundcloud 上的示例是错误的还是我在执行这些命令之前做错了什么?
另请注意,我的 soundcloud 对象 init 和 followings/##### 已更改以保护我的信息。
经过大量研究和反复试验,如果发现将路径设置为:
https://api.soundcloud.com/me/followings/#######?oauth_token=MY_TOKEN
似乎有效。我不知道这是否只是一种解决方法,或者 API 是如何使用的,但这是我让它工作的唯一方法,我假设 soundcloud 客户端对象自动发送令牌命令,但似乎没有。
我还发现,如果它确实找到匹配项(用户正在跟踪 ID 号),那么它会 returns 一个 303 错误,api 指南甚至没有在他们的列表中列出http 错误代码。
你在 me
前面有一个斜线,不能有。以下对我有用:
$soundcloud->put('me/followings/#########','',array(CURLOPT_HTTPHEADER => array('Content-Type: application/xml')));