JSON — динамическое использование oembed с soundcloud

Я хотел бы иметь возможность постоянно получать 10 последних треков пользователя, использующего oembed с помощью json.

$.getJSON("http://soundcloud.com/oembed", 
          {url: "https://soundcloud.com/aviciiofficial", format: "json"},
function(data)
{
    console.log(data.html);
})

Data.html возвращает HTML-код проигрывателя soundcloud, но этот проигрыватель содержит набор треков со всеми треками пользователей. Я хотел бы иметь возможность получать треки по отдельности (что-то вроде этого: data[0].html). Как я могу получить массив всех новейших треков?

Вывод консоли:

<iframe width="100%" height="450" scrolling="no" frameborder="no" src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Fusers%2F1861068"></iframe>

Спасибо!


person Community    schedule 16.04.2013    source источник
comment
Можете ли вы показать пример ответа JSON?   -  person Mike Brant    schedule 16.04.2013
comment
Привет, Майк, где я могу получить эту информацию в инспекторе Chrome?   -  person    schedule 16.04.2013
comment
В консоли я получаю код iframe из этой строки: console.log(data.html);   -  person    schedule 16.04.2013
comment
Если это просто код iframe, как узнать, что нужные данные существуют в данных? Вы можете просто показать вывод журнала консоли для data в своем вопросе, и это может помочь.   -  person Mike Brant    schedule 16.04.2013
comment
Хорошо, я отредактировал свой вопрос с выводом консоли для console.log(data.html). Но я не понимаю вашего вопроса. Свойство html возвращает код iframe, но он возвращает код iframe набора игроков, а не всех отдельных игроков. Мой вопрос в том, как я могу получить отдельных игроков.   -  person    schedule 16.04.2013
comment
Вывод в вашем примере показывает только ссылку iframe. Я не знаю, что вы имеете в виду под набором игроков. Если возвращаемые данные не поддерживают наличие этой информации, вам нужно посмотреть на API, чтобы узнать, сможете ли вы получить то, что хотите.   -  person Mike Brant    schedule 16.04.2013
comment
Да, iframe — это значение data.html. Под набором плееров я подразумеваю, что iframe содержит несколько треков, но я думаю, вам нужно быть знакомым с Soundcloud, чтобы понять это. Документация по oEmbed не относится конкретно к Soundcloud, поэтому трудно найти ответы о том, как ее использовать с ним, а у Soundcloud нет документации (или очень мало) по oEmbed.   -  person    schedule 16.04.2013


Ответы (1)


Что вам нужно сделать, так это отправить запрос API для получения треков пользователя, нет oembed конечной точки, которая вернула бы список внедрений.

UPD.

Таким образом, чтобы отобразить виджеты художественных работ, вам нужно выполнить итерацию по массиву и заменить API_URL и COLOR URL-адресом API каждого элемента и желаемым цветом (возможно, вы можете установить цвет один раз для всех из них).

'<object height="300" width="300">' + 
  '<param name="movie" value="https://player.soundcloud.com/player.swf?url={{API_URL}}&amp;color={{COLOR}}&amp;auto_play=false&amp;player_type=artwork">' +      
  '</param>' +
  '<param name="allowscriptaccess" value="always"></param>' +
  '<embed allowscriptaccess="always" width="300" height="300" ' + 
    'src="https://player.soundcloud.com/player.swf?url={{API_URL}}&amp;color={{COLOR}}&amp;auto_play=false&amp;player_type=artwork" ' +
    'type="application/x-shockwave-flash">' + 
  '</embed>' + 
'</object>';

Я уже описывал это ранее в следующем ответе: Получить результаты поиска Soundcloud. и вставлять результаты только в контексте виджета HTML5.

person Misha Reyzlin    schedule 16.04.2013
comment
Спасибо за ответ Гризли! Вместо этого я сделаю это с помощью API. Но я хотел бы знать, какой смысл использовать oembed, если мы не можем получить несколько вложений? Разве это не то же самое, что взять код для встраивания вручную из плеера? - person ; 16.04.2013
comment
oembed предоставляет строку HTML, а API — нет. Кому-то так проще. - person Misha Reyzlin; 16.04.2013
comment
Также я хочу получить треки пользователя, но я не хочу получать трек зарегистрированного пользователя. Например, я хотел бы получить список чьего-то трека без его аутентификации. Это возможно? - person ; 16.04.2013
comment
конечно, если их звуки общедоступны - person Misha Reyzlin; 16.04.2013
comment
Привет, gryzzly, у меня есть массив треков, который я могу использовать с oembeds для получения всех кодов встраивания, но есть ли способ получить виджет обложки вместо виджета HTML5? Спасибо! - person ; 16.04.2013
comment
Нет, oembed предназначен только для виджета HTML5, см. обновление ответа, чтобы узнать, как делать то, что вы хотите. - person Misha Reyzlin; 16.04.2013
comment
ха, я хотел сделать именно это, но я не знал, что заменить в коде виджета обложки. Очень полезно. Спасибо еще раз. - person ; 16.04.2013