Los feeds son archivos creados por el servidor (Blogger en nuestro caso) y si los miramos, veremos que contiene una serie de etiquetas con información de lo que se ha publicado en nuestro sitio; como muchas otras cosas en la web, hay muchos formatos de feeds y la diferencia entre ellos poco nos interesa, será RSS (Rich Site Summary) o Atom o XML, da igual y serán los lectores de feeds los que se encarguen de interpretarlos.
Como decía, muchos scripts que utilizamos en Blogger hacen referencia a los feeds; los usamos para mostrar los últimos comentarios, las últimas entradas, los posts relacionados, aleatorios, etc, etc. Es que, al no tener acceso a esos datos, nos vemos en la necesidad de emplear un camino alternativo y ese camino tiene nombre y lo hemos utilizado muchísimas veces, se llama JSON (JavaScript Object Notation) que no es otra cosa que un "archivo especial", también creado por el servidor y que tiene un formato diferente; allí, los datos, están guardados de tal forma que podemos leerlos con JavaScript.
Esto parece algo complicadísimo pero en realidad no lo es ... bueno, más o menos. En términos generales, para hacerlo sólo necesitamos dos cosas, cargar el script indicando que queremos que esté en ese formato y tener alguna función que lo interprete o lo manipule:
<script type="text/javascript"> function leerfeeds(json) { // esta es la función y aquí haremos algo } </script> <script src="http://miblog.blogspot.com/feeds/posts/default?alt=json-in-script&callback=leerfeeds"></script>
<script src="http://miblog.blogspot.com/feeds/posts/default?max-results=10&orderby=published&alt=json-in-script&callback=leerfeeds"></script>
<script type='text/javascript'> //<![CDATA[ function leerfeeds(json) { var entry, posttitle, posturl, postimg, postcontent, postcategoria, postfecha; var numposts = 10; // la cantidad de entradas a leer // con un bucle, leemos las diez entradas que solicitamos, una por una for (var i = 0; i < numposts; i++) { // los datos de cada entrada se guardan en la variable entry entry = json.feed.entry[i]; // como puede ser que no haya tantas entradas como solicitamos, si ya no hay más, terminamos if (i==json.feed.entry.length) { break; } // el título de la entrada lo leemos leyendo entry.title.$t posttitle = entry.title.$t; // la URL de la entrada hay que buscarla ya que hay varias // una contiene la URL del blog, otra la de la entrada, otra la de los archivos adjuntos, etc for (var k = 0; k < entry.link.length; k++) { if (entry.link[k].rel == 'alternate') { // la encontramos: esta es la direccion URL de la entrada posturl = entry.link[k].href; break; } } // buscamos el contenido de la entrada que puede estar completa o no postcontent = ""; if ("content" in entry) { // el contenido de la entrada en un feed completo postcontent = entry.content.$t; } else if ("summary" in entry) { // el contenido de la entrada en un feed corto postcontent = entry.summary.$t; } // en ambos casos, el contenido es nuestra entrada en formato HTML // y hay muchos más datos que pueden ser leidos /* entry.category[] y entry.category[x].term nos permitirá leer las etiquetas que tiene esa entrada entry.published.$t es la fecha de publicación entry.updated.$t es la fecha de la ultima actualización entry.author[] y entry.author[x].name.$t nos permitirá leer el nombre de los autores */ // .......................................... // ya tenemos los datos así que acá vamos a escribirlos en nuestra página // .......................................... } } //]]> </script>
14 comentarios:
to be continued... :P
Como cualquier telenovela :D
Misterio, demonio, magia negra, un culebrón de Google Code :P
Empezemos por el factor sorpresa .
Estoy muy sorprendido con que se pueda hacer magia con los feeds y lograr manipularlos con nuestro amigo JSON, dejemos la magia negra para los scripts ya hechos ;) .
Tiene una pinta fabulosa.
No es difícil, es cosa de paciencia y tener suerte :-)
Muy interesante Miur, de nuevo aprendemos contigo :D
aguardando os próximos capítulos! este é um assunto que sempre me interessou e tenho certeza que, com seu modo de explicar, vou enfim entender :) abraços!
Hola Ariane. Un gusto saber de tí :-)
Esta es una de esas cosas que hemos venido usando hace años y a las que nunca había prestado atención pensando que era complicado pero ya no me lo parece tanto.
Hola Jmiur, otra vez yo con una duda, quisiera saber si para usar JSON tengo que colocar algun script en la plantilla primero. O simplemente comienzo a hacer los tutoriales como si nada.
Adalberto:
Si te refieres a si necesitas alguna clase de librería extra, la respuesta es no. Basta que agregues los scripts tal y como los muestran las diferentes entradas.
hola compañero no habra un tutorial para aprender json
No conozco ninguno que pueda recomendarte.
buf intento y intento y no puedo
Es complicado mejor no lo hago porque podria arruinar html de mi blog
pero igual el tema es muy interesante
¿Quiere dejar un comentario?
recuerde que los comentarios están siendo moderados y serán publicados a la brevedad ...
Nota: sólo los miembros de este blog pueden publicar comentarios.
Si le gusta ir a lo seguro utilice este botón para abrir los comentarios en una ventana modal en esta misma pagina.
Si añora tiempos idos, use este enlace para agregar un comentario al viejo estilo ...