Estoy creando la web de mi banda de rock, hay un vídeo que colgamos en YouTube hace un par de semanas y lo que quiero hacer es poner en la web los comentarios que recibió ese vídeo, para ello obtengo el feed de comentarios en formato JSON desde la siguiente dirección:
http://gdata.youtube.com/feeds/api/videos/3VqIoHTOIgY/comments?alt=json-in-script&format=5
Realizando pruebas logre incluir correctamente los comentarios dentro del HTML de mi web pero lo que no logro es obtener el usuario que publico ese comentario. Para que se entienda mas donde esta el problema separe la funcion que obtiene ambos datos en dos, la primera recupera todos los comentarios y la segunda los username.
A continuación detallo mi código.
Esta es una versión resumida del JSON que genera YouTube:
Código :
"feed":{ "entry":[{ "content":{ "$t":"Muy bueno chicos!", "type":"text" }, "author":[{ "name":{ "$t":"MPaulitaK" }, "uri":{ "$t":"http://gdata.youtube.com/feeds/api/users/MPaulitaK" } }] }] }
Mi Código HTML:
Código :
<html> <head> <title>Prueba</title> <script type="text/javascript" src="funciones_json.js"></script> </head> <body> <h2 id="complete">Comentarios</h2> <div id="comentarios"></div> <script type="text/javascript" src="http://gdata.youtube.com/feeds/api/videos/3VqIoHTOIgY/comments?alt=json-in-script&format=5&callback=ShowComments"></script> <h3>Usuarios</h3> <div id="usuarios"></div> <script type="text/javascript" src="http://gdata.youtube.com/feeds/api/videos/3VqIoHTOIgY/comments?alt=json-in-script&format=5&callback=ShowUsers"></script> </body> </html>
Y por ultimo mi archivo funciones_json.js:
Código :
function ShowComments(data) { var feed = data.feed; var entries = feed.entry || []; var html = ['<ul>']; for (var i = 0; i < entries.length; i++) { var entry = entries[i]; var comment = entry['content'].$t; html.push('<li>', comment, '</li>'); } html.push('</ul>'); document.getElementById('comentarios').innerHTML = html.join(''); } function ShowUsers(data) { var feed = data.feed; var entries = feed.entry || []; var html = ['<ul>']; for (var i = 0; i < entries.length; i++) { var entry = entries[i]; var usuario = entry['author']['name'].$t; html.push('<li>', usuario, '</li>'); } html.push('</ul>'); document.getElementById('usuarios').innerHTML = html.join(''); }
SI lo prueban verán que la primer función recupera todos los comentarios pero la segunda función no logra leer los usuarios de esos comentarios y no logro darme cuenta donde esta el error.
Espero puedan ayudarme, se los agradeceré mucho... Muchas gracias.