Я написал код C для получения списка видео youtube для URL-адреса «* http: //gdata.youtube.com/feeds/api/standardfeeds/top_rated*», используя библиотеку libsoup. Я могу проанализировать возвращаемые данные xml с помощью libxml2 и извлечь из него нужные поля.
Я хочу знать, как я могу сделать то же самое с помощью javascript и отобразить список в браузере. У меня есть очень простые знания по javascript, но я готов приложить необходимые усилия, если вы, ребята, укажете мне в правильном направлении.
Я понимаю следующее из справочной документации Google для API-интерфейсов youtube.
Как я могу достичь обоих из них с помощью javascript и отображения с помощью html / javascript? Пример кода или любых ссылок будет очень полезен.
Изменить: добавление тега php для лучшей видимости вопроса, и я думаю, что php может предоставить подсказки для вопроса.
ТИА,
Praveen S
EDIT после того, как вы попробуете приведенные ниже предложения:
Как я отлаживаю это? Кажется, он не отображает название видео, которое я намерен зачислить.
<html> <head> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("button").click(function(){ $("body").append("<div id = 'data'><ul>jffnfjnkj</ul></div>"); $.getJSON("http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?callback=function&alt=jsonc&v=2", function(data) { var dataContainer = $("#data ul"); $.each(data.data.items, function(i, val) { $("body").append("<div id = 'data'><ul>jffnfjnkj</ul></div>"); if (typeof(val.player) !== 'undefined' && typeof(val.title) !== 'undefined') { dataContainer.append("<li><a href = "+val.player.default+" target = '_blank'>"+val.title+"</a></li>"); } }); }); }); }); </script> </head> <body> <h2>Header</h2> <p>Paragrapgh</p> <p>Paragraph.</p> <button>Click me</button> </body> </html>
Ну, я взломал что-то основное, используя jQuery, фреймворк javascript, который делает запрос GET на этот url и извлекает данные в формате jsonp. Затем анализирует некоторую базовую информацию (заголовок и ссылку) о каждой записи и добавляет ее в неупорядоченный список в div с идентификатором data
, если биты данных не определены для этой записи. Это работает, если вы вставьте его в тег скрипта с загруженным на страницу jQuery и запустите его. Я не буду вдаваться в подробности о том, как это работает, потому что вы сказали, что готовы приложить некоторые усилия. Но я начну с некоторых ссылок и основных объяснений.
В этом примере используются:
jQuery.ajax
является оберткой. jQuery.getJSON
– это оболочка для jQuery.ajax
специально предназначенная для извлечения данных JSON или JSONP. jQuery.getJSON()
из jQuery, который используется для извлечения данных json или jsonp, например, в этом примере jQuery.each()
из jQuery, который может использоваться для итерации по любой общей коллекции, в данном случае json. .append()
из jQuery, который используется для добавления содержимого в элементы dom. Без дальнейшего прощания:
$("body").append("<div id = 'data'><ul></ul></div>"); $.getJSON("http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?callback=?&alt=jsonc&v=2", function(data) { var dataContainer = $("#data ul"); $.each(data.data.items, function(i, val) { if (typeof(val.player) !== 'undefined' && typeof(val.title) !== 'undefined') { dataContainer.append("<li><a href = "+val.player.default+" target = '_blank'>"+val.title+"</a></li>"); } }); });
Этого должно быть достаточно, чтобы вы «указали в правильном направлении». Если у вас есть какие-либо вопросы, сделайте комментарий, и я сделаю все возможное, чтобы ответить на них.
Да, вы можете ^^
API-интерфейс youtube также предоставляет jsonp, который возвращает данные как JS-команду.
Посмотрите это (и посмотрите параметры внутри URL-адреса):
http://gdata.youtube.com/feeds/api/standardfeeds/top_rated?alt=json&callback=someFunction
С jsonp у вас нет каких-либо ограничений для OrriginPolicies, в то время как он не работает с AJAX.
Было бы легко использовать библиотеку jQuery.
Если вы не хотите использовать jQuery или что-то в этом роде, вам нужно ввести <script>
-element в DOM с URL-адресом в качестве атрибута src и создать функцию (используя указанный выше URL-адрес, нужно называть «someFunction "), который работает с данными.
API YouTube поддерживает JSONP (JavaScript Object Notation w / Padding). JSONP позволяет делать внешние запросы на сайт для получения данных. Но вам не нужно все это знать. Основная идея заключается в том, что вы добавляете тег скрипта с запросом в качестве атрибута src.
Но в настоящее время вам действительно не нужно это делать, если вы не хотите изучать жесткий Javascript. Код написан для вас в ярких библиотеках Javascript. Я рекомендую вам использовать jQuery для выполнения запроса JSONP. jQuery – это простая библиотека, которую можно использовать, добавив одну строку кода в ваш HTML-документ.
Как только вы запустите jQuery и запустите, вы можете использовать команду getJSON для анализа данных JSONP. В этот момент вы получите объект со всеми необходимыми данными, и вы можете выбрать, как вы хотите выводить данные.