Hay decenas de trucos que agregamos y que nos dicen cosas como "acá debemos poner la dirección de los feeds". Lo hacemos porque es sencillo, funcionarán o no funcionarán pero ¿qué demonios es un feed? ¿Magia negra? Nada de eso, en realidad, no es otra cosa que un archivo común y corriente.
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:
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>
Esto suele ser mucha información, demasiada, así que, generalmente, se nos dice que agreguemos parámetros para indicar la cantidad de información que solicitamos o la forma en que queremos que se nos envie. Por ejemplo, así solicitamos que nos envien sólo las últimas diez entradas, ordenadas por fecha:
<script src="http://miblog.blogspot.com/feeds/posts/default?max-results=10&orderby=published&alt=json-in-script&callback=leerfeeds"></script>
Claro, una de las claves es justamente, resolver eso de "aquí haremos algo" pero empecemos por saber qué datos son accesibles y cómo leerlos así que vamos a ver cómo sería una función elemental:
<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>
¿Cómo escribirlos? No hay una sola forma de hacerlo sino tantas como diseños se nos ocurran así que eso lo veremos luego ...
REFERENCIAS:Google Code
to be continued... :P
ResponderBorrarComo cualquier telenovela :D
ResponderBorrarMisterio, demonio, magia negra, un culebrón de Google Code :P
ResponderBorrarEmpezemos por el factor sorpresa .
ResponderBorrarEstoy 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 :-)
ResponderBorrarMuy interesante Miur, de nuevo aprendemos contigo :D
ResponderBorraraguardando 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!
ResponderBorrarHola Ariane. Un gusto saber de tí :-)
ResponderBorrarEsta 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.
ResponderBorrarAdalberto:
ResponderBorrarSi 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
ResponderBorrarNo conozco ninguno que pueda recomendarte.
Borrarbuf intento y intento y no puedo
ResponderBorrarEs complicado mejor no lo hago porque podria arruinar html de mi blog
ResponderBorrarpero igual el tema es muy interesante