NovaMonoFix
Errores PHP
X
Usuario
Password
0 FPS

Creación de feeds RSS

06 de Octubre del 2011 por Josep Antoni Bover, 0 visitas, 0 comentarios, 0 votos
Categorías : Apache, PHP, Programación, HTML.
La web está en segundo plano, animación en pausa.
Cargando animación...
Creación de feeds RSS

Los feeds RSS son una forma de comunicar noticias diseñados para que el usuario pueda estar informado desde una sola pantalla de todas aquellas cosas que le interesan.

Si nunca habéis usado feeds es algo complicado de imaginar. La idea consiste en que los portales web con noticias como por ejemplo blogs dejen en un archivo un resumen de las nuevas noticias para que más tarde el usuario desde un visor de feeds pueda ver las novedades de todos los sitios a los que está subscrito sin necesidad de acceder por el navegador a cada página web.

Esto permite que si nos subscribimos a 4 páginas web, abriendo una sola web / programa podamos ver todas las novedades de estos cuatro sitios.

Personalmente hasta el día de ayer mi contacto con el RSS había sido prácticamente nulo, ya que no es algo que me atraiga, pero siempre está bien abrir la mente a nuevos horizontes.

Y ya que me he puesto a investigar cómo integrar feeds RSS a mi web, también he creído conveniente hacer una pequeña explicación de cómo crearlos e integrarlos a una web. Especialmente porque las paginas que he encontrado no explican muy bien el tema, o solo cuentan una parte de él.

Bueno para empezar un Feed RSS no es más que un archivo que contiene código XML dentro, que debe estar estructurado según unas reglas especificas.

La primera regla es que TODOS los datos del feed deben ir dentro de la siguiente etiqueta :

Etiqueta rss
1
<rss version="2.0">INFORMACIÓN DEL FEED...</rss>

Dentro de un feed podemos encontrar 'canales', estos canales vienen a ser como apartados de la web, por ejemplo con mi web podría hacer un canal C/C++, otro para PHP, otro para JavaScript, etc..., o simplemente podría hacer un canal para todo el contenido de la web (que es lo que voy a hacer en mi caso).

Los canales deben tener un titulo, un link y una descripción como mínimo, también se les puede añadir más datos opcionales como podría ser el email del autor, comentarios, fecha, etc...

Veamos el siguiente ejemplo :

Etiqueta channel
1
2
3
4
5
6
7
8
9
<channel>
<title>www.devildrey33.es</title>
<link>http://www.devildrey33.es</link>
<description>Página dedicada principalmente a la programación.</description>
<language>ES</language>
<item> INFORMACIÓN DEL ITEM1... </item>
<item> INFORMACIÓN DEL ITEM2... </item>
<item> INFORMACIÓN DEL ITEM3... </item>
</channel>

Las etiquetas title, link y description son obligatorias, y además se ha añadido la etiqueta language la cual especifica el idioma en que está escrita la información del feed. También hay varias etiquetas item que veremos a continuación.

En cada canal deben existir varios items, los items vienen a ser entradas específicas, por ejemplo para mi web esta página en concreto seria un item, el tutorial de ayer con Creación de archivos dump sería otro, etc...

Al igual que con los canales, los items también tienen unas etiquetas obligatorias y otras opcionales. Las etiquetas obligatorias son las mismas que para channel : title, link y description. Veamos el siguiente ejemplo para un item :

Etiqueta item
1
2
3
4
5
6
7
8
9
10
11
<item>
<title>Creación de archivos dump</title>
<link>http://www.devildrey33.es/Tutorial_WINAPI_4.php</link>
<description>
Los archivos DUMP son una forma de depurar aplicaciones con windows.
La idea consiste en que cuando una aplicación falla críticamente se guarda un archivo con el contenido en memoria.
Más tarde podemos abrir esos archivos con el Visual Studio y depurar la aplicación....
</description>
<pubDate>Mon, 03 Oct 2011 15:21:36 GMT</pubDate>
</item>

Como podéis ver la estructuración no es muy complicada, y en este ejemplo además de añadir las etiquetas obligatorias, se ha añadido la etiqueta pubDate la cual indica la fecha de publicación del item.

Si unimos todas las partes el archivo xml nos queda de la siguiente forma :

Ejemplo rss completo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title>www.devildrey33.es</title>
<link>http://www.devildrey33.es</link>
<description>Página dedicada principalmente a la programación.</description>
<language>ES</language>
<item>
<title>Creación de archivos dump</title>
<link>http://www.devildrey33.es/Tutorial_WINAPI_4.php</link>
<description>
Los archivos DUMP son una forma de depurar aplicaciones con windows.
La idea consiste en que cuando una aplicación falla críticamente se guarda un archivo con el contenido en memoria.
Más tarde podemos abrir esos archivos con el Visual Studio y depurar la aplicación....
</description>
<pubDate>Mon, 03 Oct 2011 15:21:36 GMT</pubDate>
</item>
</channel>
</rss>

Como ultimo apunte fijaros que en la primera línea se ha incluido una etiqueta que describe la version del XML y la codificación que utiliza. Aunque no es estrictamente necesario incluir esa línea, si queremos ver bien acentuadas todas las palabras en todos los lectores de feeds mas nos vale definir una codificación.

Si quereis saber mas sobre las etiquetas disponibles para RSS 2.0 os recomiendo esta página : RSS 2.0 at Harvard Law.

Hasta aquí todo parece bastante sencillo, pero luego como debemos distribuir este feed?

Lo primero es incluir lo siguiente en el head de nuestras páginas :

Head del indice para indicar la existencia de rss
1
<link rel="alternate" title="devildrey33 RSS" href="http://www.devildrey33.es/RSS.xml" type="application/rss+xml">

Con tener esta línea en el index.html / index.php de nuestra página, si alguien quiere subscribirse a los feeds de devildrey33 le bastaría con agregar un nuevo canal y poner la dirección "http://www.devildrey33.es" y el lector de feeds buscaría dentro del índice esa línea para luego acabar consultando el archivo RSS.xml.

También se puede utilizar un enlace de este tipo:

Enlace para el rss
1
<a type="application/rss+xml" href="http://www.devildrey33.es/RSS.xml">Subscribirse.</a>

El problema que tiene este enlace, es que si nuestro lector de feeds no es una aplicación, no servirá de mucho. Existen lectores de feeds RSS que son parte de la web como por ejemplo 'google reader', y este no se ejecutara al presionar ese enlace por la simple razón de que no es una aplicación registrada dentro de nuestro sistema operativo.

Preguntas frecuentes

Y esto es todo por hoy, espero que este documento os sirva de ayuda si alguna vez tenéis que crear vuestros propios feeds.