用php获取soundcloud音轨

时间:2015-06-04 19:06:07

标签: php soundcloud

我发现了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吗?

1 个答案:

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