我发现了this教程说明了如何做到这一点。
所以我有用户名并获得了用户名。现在我按照教程说的那样做。
<?php
ini_set("display_errors", "On");
error_reporting(E_ALL ^ E_NOTICE);
// build our API URL
$url = "http://api.soundcloud.com/resolve.json?"
. "url=http://soundcloud.com/"
. "name"
. "&client_id=id";
// Grab the contents of the URL
$user_json = file_get_contents($url);
// Decode the JSON to a PHP Object
$user = json_decode($user_json);
// Print out the User ID
echo $user->id;
/*userID 116386640*/
?>
我收到错误。
Warning: file_get_contents(http://api.soundcloud.com/resolve.json?url=http://soundcloud.com/name&client_id=id): failed to open stream: HTTP request failed! HTTP/1.0 401 Unauthorized in getUserID.php on line 11
当然,我在网址中使用我的真实用户名和ID。
怎么了?
的更新
此外,我已尝试过第二个脚本(之前我已将1首曲目上传到我的帐户)。
<?php
$clientid = "YOUR CLIENT ID HERE"; // Your API Client ID
$userid = "5925312"; // ID of the user you are fetching the information for
$soundcloud_url = "http://api.soundcloud.com/users/{$userid}/tracks.json?client_id={$clientid}";
$tracks_json = file_get_contents($soundcloud_url);
$tracks = json_decode($tracks_json);
echo "<pre>";
print_r($tracks);
echo "</pre>";
?>
再次以我的身份证明。现在我收到空数组。
更新
我得到{"errors":[{"error_message":"401 - Unauthorized"}]} message.
我应该使用curl吗?
答案 0 :(得分:1)
我和401有同样的问题。去dev - &gt;应用程序并请求新的api凭据。我试图接受(旧)应用程序的开发策略,但这对我不起作用(linux / chrome canary)。
这是一个工作片段,用于从用户获取曲目,未经过初始化的调用:
<?php
require_once 'Services/Soundcloud.php';
$client = new Services_Soundcloud(
'client-id', 'client-secret');
$userid = 1672444;
try {
$response = json_decode($client->get('users/'.$userid.'/tracks'), true);
var_dump($response);
} catch (Services_Soundcloud_Invalid_Http_Response_Code_Exception $e) {
exit($e->getMessage());
}
?>