使用 php 获取音云曲目
Getting soundcloud tracks with php
我找到 this 说明如何操作的教程。
所以我有用户名和用户 ID。现在我按照教程说的做。
<?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
当然我在url中使用了我的真实用户名和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>";
?>
再次使用我的 ID。现在我收到空数组。
更新
我得到 {"errors":[{"error_message":"401 - Unauthorized"}]} message.
我应该使用 curl 吗?
我遇到了与 401 相同的问题。转到开发 -> 应用程序并请求新的 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());
}
?>
我找到 this 说明如何操作的教程。
所以我有用户名和用户 ID。现在我按照教程说的做。
<?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
当然我在url中使用了我的真实用户名和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>";
?>
再次使用我的 ID。现在我收到空数组。
更新
我得到 {"errors":[{"error_message":"401 - Unauthorized"}]} message.
我应该使用 curl 吗?
我遇到了与 401 相同的问题。转到开发 -> 应用程序并请求新的 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());
}
?>