我试图弄清楚用户是否使用Soundcloud API和php跟踪Soundcloud上的其他用户。 到目前为止,我遇到了一个解决方案,它将返回一个对象(用户)或404错误:
$test = json_decode($client->get('/users/{id1}/followers/{id2}'));
我已尝试多次使用不同的用户ID,但我总是收到以下错误消息:
'Services_Soundcloud_Invalid_Http_Response_Code_Exception' with message 'The requested URL responded with HTTP code 404.'
我知道这应该是错误消息,告诉我user2没有关注user1。不过我已经尝试过这个带有ID的代码段,我知道肯定存在互惠关注。 关于如何解决这个问题的任何建议?
更新(21.05.15):
我已经阅读了一些Soundcloud文档并浏览了一段代码片段:
<?php
require_once 'Services/Soundcloud.php';
// create a client object with access token
$client = new Services_Soundcloud('YOUR_CLIENT_ID', 'YOUR_CLIENT_SECRET');
$client->setAccessToken('YOUR_ACCESS_TOKEN');
// Follow user with ID 3207
$client->put('/me/followings/3207');
// Unfollow the same user
$client->delete('/me/followings/3207');
// check the status of the relationship
try {
$client->get('/me/followings/3207');
} catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) {
if ($e->getHttpCode() == '404')
print "You are not following user 3207\n";
}
?>
这就是我所说的。但是,如果我用这个脚本打开一个php页面,结果总是三种情况之一:
第三个选项是引用$ client-&gt; put或$ client-&gt; delete
答案 0 :(得分:0)
以下是我将如何做到这一点:
<?php
require_once 'Services/Soundcloud.php';
$client = new Services_Soundcloud(
'xxxxxxxxxxxxxxxxxxx160', 'xxxxxxxxxxxxxxxxxx34dd1 ');
$userid = 1672444;
$followerid = 383228;
$yesno = '';
try {
$response = json_decode($client->get('users/'.$userid.'/followers'), true);
$yesno = IdInArray($response, $followerid);
echo $yesno;
} catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) {
exit($e->getMessage());
}
function IdInArray($response, $followerid){
echo $followerid.'<br/>';
for($i = 0; $i < count($response); ++$i) {
if($response[$i]['id'] == $followerid){
return 'yolo';
}
else{
return 'nolo';
}
}
}
?>