我正在尝试使用SoundCloud应用编程接口显示特定SoundCloud用户的总曲目视图("playback_count")。
根据API文档,我使用以下函数调用获取信息:
http://api.soundcloud.com/tracks/13158665.json?client_id=YOUR_CLIENT_ID这很好,因为它显示数字"13158665“。
这个数字是什么?是trackid吗?
我需要使用用户的用户名获取用户的"playback_count“。
我尝试使用以下命令从用户名获取UserId:
$soundcloud_playsAPI = "MY_SOUNDCLOUD_API_KEY";
/* Get the SoundCloud UserId from the username */
$json = wp_remote_get("http://api.soundcloud.com/users/jwagener.json?client_id=".$soundcloud_playsAPI);
$soundcloudData = json_decode($json['body'], true);
$soundcloud_userid = $soundcloudData['id'];这将返回UserId: 3207181
现在,我尝试将该响应替换到前面的URL中,以获取"playback_count“,但失败了。
$json = wp_remote_get("http://api.soundcloud.com/tracks/3207181.json?client_id=".$soundcloud_playsAPI);
$soundcloudPlaysData = json_decode($json['body'], true);
echo $soundcloudPlaysData['playback_count'];任何指导都将不胜感激。
谢谢。
发布于 2013-03-15 13:08:09
以下是完整的解决方案:
function listPlays()
{SC.initialize({ client_id: 'YOUR ID HERE'});
// Get the SoundCloud UserId from the username
var userName="jwagener";
SC.get("/users/"+userName, function (users)
{console.log(users.id);
var myId=users.id;
getTracks(myId);
});
var getTracks=function (myId)
{var totalPlays=0;
SC.get("/users/"+myId+"/tracks", function(getTracks)
{for (var key in getTracks) //get each track and look at it's playback_count
{console.log(getTracks[key].title+" "+getTracks[key].playback_count);
totalPlays+=getTracks[key].playback_count; //add the playback count for this track to the total
}
console.log("Total Plays for all tracks: "+totalPlays);
});
};
};发布于 2013-03-12 14:02:07
第一个数字是音轨的id,第二个数字是用户的id。
现在您有了用户id,您将需要获取他们的每个曲目并统计他们已经被播放了多少次。
首先,获取用户制作的所有曲目的id号。
GET: /users/{id}/tracks:用户的曲目列表
$json = wp_remote_get("http://api.soundcloud.com/users/3207181/tracks.json?client_id=".$soundcloud_playsAPI);现在您有了一个曲目ID列表,因此您需要获取每个曲目并保存每个曲目的playback_count
$json = wp_remote_get("http://api.soundcloud.com/tracks/track-id-here.json?client_id=".$soundcloud_playsAPI);
$soundcloudPlaysData = json_decode($json['body'], true);
echo $soundcloudPlaysData['playback_count'];https://stackoverflow.com/questions/15331666
复制相似问题