Soundcloud API检查用户是否关注其他用户

时间:2015-05-20 19:10:45

标签: php json api soundcloud

我试图弄清楚用户是否使用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页面,结果总是三种情况之一:

  1. 您没有关注用户3207(预期输出)
  2. 没有输出(我跟随用户)
  3. 未捕获的异常&#39; Services_Soundcloud_Invalid_Http_Response_Code_Exception&#39;带有消息&#39;请求的URL以HTTP代码404响应。&#39;
  4. 第三个选项是引用$ client-&gt; put或$ client-&gt; delete

1 个答案:

答案 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';
    }
  }
}
?>