2014-01-16 5 views
0

Хорошо, поэтому я использую PHP, чтобы получить возможность отправлять SoundCloud виджеты на моем сайте (нет необходимости объяснять, как и почему, потому что тат не Wath важно)Soundcloud получить трек ID из ссылки (PHP)

Вот мой код:

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."&amp;color=ff6600&amp;auto_play=false&amp;show_artwork=true\"></iframe>"; 
} 

Моя переменная $ пост [ «ссылка»] выводит ссылку SoundCloud в этой форме https://soundcloud.com/alex-oancea/best-thing-about-you-original

То, что я хотел бы сделать, это получить идентификатор трека из ссылки и объявить его как $ TrackID, потому что, как вы можете увидеть в моем коде (в SRC = «» часть), виджет использует идентификатор трека

Я смотрел в SoundCloud API и многих других потоков на этом сайт, но я не нашел, как это сделать или как написать код ...

Заранее спасибо!

ответ

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.

Просто имейте в виду, что для этого вам нужен API SoundCloud, и вам, вероятно, придется зарегистрировать свое приложение с SoundCloud, чтобы использовать эту услугу. У меня не было личного опыта с этим, поэтому я не могу предоставить какую-либо информацию об этих процессах.

+0

Я попробовал все, но это дает мне эту ошибку вместо: Предупреждение: Отсутствует аргумент 2 для Services_Soundcloud :: __ конструкт(), называемый в D: \ XAMPP \ HTDOCS \ acusticdream \ загрузочную new.php по линии 93 и определенный в D: \ XAMPP \ htdocs \ acusticdream \ php \ soundcloud-sdk \ Services \ Soundcloud.php on line 221 – Dan

+0

Это означает, что вы не создали экземпляр класса 'Services_Soundcloud'. Проверьте [эту ссылку] (http://developers.soundcloud.com/docs#authentication) - повторите пример PHP. Кажется, что класс ожидает 3 значения при его создании. '$ client = new Services_Soundcloud ('CLIENT_ID', 'CLIENT_SECRET', 'REDIRECT_URL');' – Scopey

0

Если вы экспериментируете на своем локальном компьютере (xampp в вашем случае), вы НЕ МОЖЕТЕ это сделать, потому что «REDIRECT_URL» не может быть чем-то другим, кроме действительной ссылки на размещенный домен. API просто не принимает (по уважительной причине) url, содержащий «localhost» или «192.168.x.x» -строчный url. Это просто потому, что API действительно отправляет информацию в «REDIRECT_URL», и он должен иметь возможность ее достичь. Вам необходимо связаться с вашим провайдером хостинга и настроить «живую» программу environement.

0

Предполагая, что вы используете PHP-SoundCloud из Github в mptre в:

Проверьте https://developers.soundcloud.com/docs#resolving (и даже «/ решительность» указано в «см также» раздел).

Вы можете получить хороший способ получить трек 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. 
?> 

Просто быть в курсе вам нужен API SoundCloud для этого, и вы должны зарегистрировать свое приложение с SoundCloud, чтобы воспользоваться услугой (Register your app).

Другая информация заключается в том, что веб-серверы, в которых установлено ограничение на основе ограничения и/или безопасный режим, не позволяют использовать параметр CURLOPT_FOLLOWLOCATION = true. Here is a workaround for these webservers in the Soundcloud.php file.

Смежные вопросы