Я пытаюсь отобразить виджет SoundCloud HTML5 с помощью PHP API, но каждый раз, когда я запускаю команду, которая, по моему мнению, должна возвращать HTML для виджета, я просто получаю исключение:
The requested URL responded with HTTP code 302
Я понимаю, что это редирект. Чего я не знаю, так это почему это все, что я когда-либо получаю, или что с этим делать, чтобы действительно получить HTML-код виджета.
В документации по API сказано, что для встраивания виджета с помощью PHP нужно сделать так:
<?php
require_once 'Services/Soundcloud.php';
// create a client object with your app credentials
$client = new Services_Soundcloud('YOUR_CLIENT_ID', 'YOUR_CLIENT_SECRET');
// get a tracks oembed data
$track_url = 'http://soundcloud.com/forss/flickermood';
$embed_info = $client->get('/oembed', array('url' => $track_url));
// render the html for the player widget
print $embed_info['html'];
Я запускаю это:
// NB: Fully authorised SoundCloud API instance all working prior to this line
// $this->api refers to an authorised instance of Services_Soundcloud
try {
$widget = array_pop(
json_decode( $this->api->get('oembed', array('url' => $track_url)) )
);
print_r($widget);
} catch (Exception $e)
{
print_r($e->getMessage());
}
где «track_url» на самом деле является URL-адресом, который я получаю, когда запрашиваю у SoundCloud объект дорожки ранее в приложении с использованием того же API.
На самом деле я не уверен, что этот URL-адрес верен, потому что возвращаемый объект трека дает «uri» в форме:
[uri] => https://api.soundcloud.com/tracks/62556508
Все примеры документации имеют прямую ссылку http://soundcloud.com/username/track-permalink. - но даже при использовании известного пути к общедоступной дорожке попытка запустить метод API oembed не удалась... Я все еще получаю исключение 302.
Наконец, есть упоминания о настройке «allow_redirects» на false в команде «get», но это не действует, когда я добавляю параметры, используемые для построения запроса к API. Я также пытался добавить дополнительные параметры cURL, но это тоже не дало никакого эффекта.
Я определенно включил API-доступ к треку в SoundCloud.
Типа биться головой об стену по этому поводу. Если у кого-то есть какие-либо указатели, я был бы очень благодарен их услышать. Просто для ясности я могу получить доступ ко всем пользовательским данным, комментариям и т. д. через созданный мной экземпляр API, поэтому он работает нормально.
HTTP code 302
прямолинейно ... Это означает, что вы были перенаправлены .....CURLOPT_FOLLOWLOCATION
активируется только при использовании методаdownload
- person Baba   schedule 08.10.2012