好的,我正在使用php在我的网站上发布soundcloud小部件(无需解释原因和方式,因为这不是重要的)
这是我的代码:
if (strpos($post['link'], 'soundcloud.com') !== FALSE)
{
echo "<iframe width=\"500\" height=\"150\" scrolling=\"no\" frameborder=\"no\"
src=\"https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/".$trackID."&color=ff6600&auto_play=false&show_artwork=true\"></iframe>";
}
我的变量 $ post ['link'] 以此格式输出soundcloud链接https://soundcloud.com/alex-oancea/best-thing-about-you-original
我想要做的是从链接中获取曲目的ID 并将其声明为 $ trackID ,因为您可以在我的代码中看到(在src = “”部分),小部件使用轨道的ID
我已经查看了此网站上的soundcloud API和许多其他线程,但我没有找到如何执行此操作或如何编写代码...
提前致谢!
答案 0 :(得分:1)
检查http://developers.soundcloud.com/docs#resolving
您可以单击示例中的PHP按钮,获得获取曲目ID的好方法:
<?php
require_once 'Services/Soundcloud.php';
// create a client object with your app credentials
$client = new Services_Soundcloud('YOUR_CLIENT_ID');
// a permalink to a track
$track_url = 'http://soundcloud.com/forss/voca-nomen-tuum';
// resolve track URL into track resource
$track = json_decode($client->get('resolve', array('url' => $track_url)));
现在$track->id
是您的曲目ID。
请注意,您需要使用SoundCloud API,并且您可能必须使用SoundCloud注册您的应用才能使用该服务。我没有任何相关的个人经验,因此我无法提供有关这些流程的任何信息。
答案 1 :(得分:0)
如果您在本地计算机上进行实验(在您的情况下为xampp),则无法使其正常工作,因为“REDIRECT_URL”&#39; REDIRECT_URL&#39;除了是托管域名的有效链接之外,它不能是其他任何内容。 API只是不接受(有充分理由)url包含&#34; localhost&#34;或者或者&#34; 192.168.x.x&#34; -style url&#39; s。这只是因为API确实将信息发送到了&#39; REDIRECT_URL&#39;它需要能够达到它。 您需要与您的托管服务提供商联系并设置一个&#34; live&#34; dev environement。
答案 2 :(得分:0)
假设你正在使用来自mptre的Github的php-soundcloud:
检查https://developers.soundcloud.com/docs#resolving(甚至是“另请参阅”部分中指出的'/ resolve')。
您可以通过这种方式获得获取曲目ID的好方法:
<?php
require_once 'Services/Soundcloud.php';
// create a client object with your app credentials
$client = new Services_Soundcloud('YOUR_CLIENT_ID', 'YOUR_CLIENT_SECRET');
// a permalink to a track
$track_url = 'http://soundcloud.com/forss/voca-nomen-tuum';
// resolve track URL into track resource
$track = json_decode($client->get('resolve', array('url' => $track_url), array(CURLOPT_FOLLOWLOCATION => true)));
// display all the information from that track resource
var_dump($track);
Now $track->id is your track ID.
?>
请注意,您需要使用SoundCloud API,并且必须使用SoundCloud注册您的应用才能使用该服务(Register your app)。
另一个信息是,设置了basedir限制和/或安全模式的Web服务器不允许CURLOPT_FOLLOWLOCATION = true选项。 Here is a workaround for these webservers in the Soundcloud.php file.