使用 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());
}
?>