Como criar um ficheiro RSSAs RSS são um método de distribuir links para conteúdo do nosso site que gostarÃamos que outros usassem. Noutras palavras é um mecanismo de promover ("syndicate") conteúdos.
Para entender o termo "syndicate" ou "syndication", se consultarmos um dicionário de Inglês como o Contemporary English da Longman Dictionaries verificamos que significa: "to arrange for to be sold to a number of newspapers". Ou em Português, tornar certo conteúdo escrito disponÃvel para ser publicado nos meios de comunicação escritos, em troca de alguma compensação monetária.
Contudo, ao contrário deste exemplo, a syndication de conteúdos web via RSS estará longe de nos tornar ricos. Mas pode ser uma maneira bem simples de chamar a atenção ao nosso site, trazendo algum tráfego e talvez alguma fama na net, dependendo da qualidade da informação disponibilizada.
O que são RSS?Como funciona a RSS syndication? Digamos que publicamos uma nova página web acerca de um tópico em particular. Queremos que outros interessados nesse tópico saibam da existência dessa página. Ao listar a página como um "item" no nosso ficheiro RSS, podemos ter a página a ser indicada àqueles que leiam informação usando um leitor de RSS ou um "news aggregator". As RSS também permitem às pessoas que facilmente criem links para os nossos conteúdos nos sites deles.
Os Bloggers são um óptimo exemplo disso mesmo.
O que signifca RSS?Existem várias correntes. As RSS tal como foram introduzidas pela Netscape em 1999, mais tarde abandonadas em 2001, significavam "Rich Site Summary". Outra versão das RSS introduzida pela UserLand Software significa "Really Simple Syndication." Ainda noutra versão, RSS quer dizer "RDF Site Summary".
Os apaixonados por factos históricos podem estar interessados em saber que existe alguma rivalidade acerca de quem inventou as RSS. É por isto que temos nomes diferentes e diferentes versões das RSS. (Mark Pilgrim escreveu um excelente artigo
What Is RSS, que cataloga as diferentes versões com recomendações sobre quais usar.)
É fácil criar RSS?Eu pesquisei na web algo que nos ensinasse como criar RSS aqui para o Redcodestudio, porque em primeiro lugar queria aprender a criá-las eu mesmo, e em segundo porque as RSS actualmente disponÃveis provêm de MODs instalados no fórum que não cumprem as regras do XHTML e queria alterar isso. Encontrei este
artigo o qual estou a traduzir e a adaptar para a nossa lÃngua escrito pelo Danny Sullivan, editor-chefe do searchenginewatch.com. Lá é dito que o autor leu vários tutoriais sobre o assunto, e todos mencionavam que era relativamente simples. Esses tutoriais disponibilizam código que basta copiarmos e adaptarmos, e contém links para especificações que não são assim tão fáceis de entender.
Por exemplo, a especificação RSS 2.0 tem um elemento duvidoso que é opcional mas que um leigo na matéria pode ainda pensar se deve usar. Quanto à versão 1.0, é mesmo pedir que nos ajudem devido à sua especificação e complicada sintaxe RDF.
Ok, criar um ficheiro RSS é fácil para muitos. Se entendermos HTML, sabemos o necessário para fazer um copy+paste dum ficheiro RSS doutra pessoa para criar o nosso. Para quem não souber HTML pode criar um blog, porque a maior parte dos blogs já vêm com ferramentas que criam ficheiros RSS automaticamente.
Quanto à queles que usam programas do tipo WYSIWYG (What You See Is What You Get) para a construção das suas páginas também podem conseguir. Também hão de conseguir criar um ficheiro RSS de raÃz desde que dispensem algumas caracterÃsticas extra que provavelmente não precisarão. Já vamos explicar isso mais para a frente.
O ficheiro RSSNo núcleo de um ficheiro RSS estão os "items." Seja qual for a versão das RSS que optarmos, o nosso ficheiro terá de incluir pelo menos um item. Os items são geralmente páginas web que gostarÃamos que outros visitassem. Por exemplo, digamos que acabámos de criar uma página sobre um novo tutorial presente no Redcodestudio. A informação acerca dessa página formaria um item.
Para introduzir um item no ficheiro RSS, precisamos de três partes de informação:
* TÃtulo
* Descrição
* Link
O tÃtulo e a descrição não precisam necessariamente de ser os mesmos que estão presentes na TAG title da página HTML à qual o item se refere, nem na TAG da descrição, assumindo que usemos estas TAGs. Podemos escrever qualquer tÃtulo e descrição que pensemos que melhor descreve a página. Contudo, usar as TAGs title e meta description vai tornar mais fácil o trabalho de fazer copy+paste para o nosso ficheiro RSS.
No caso do nosso exemplo, vamos dizer que é esta a descrição que escolhemos como item:
Tutorial XML Como criar um ficheiro RSS
Disponivel no Redcodestudio um tutorial sobre como criar um ficheiro RSS
http://forum.redcodestudio.com/viewtops.389-0-0.htmlAgora temos de cercar essa informação com TAGs XML. São semelhantes às tags do HTML, com a excepção de, ao contrário do HTML, não existe nenhuma definição estabelecida das tags XML. Qualquer um pode criar uma tag XML especial. A sua utilidade só depende do programa que lê o ficheiro XML criado. No caso das feeds (fontes) RSS, têm o seu próprio conjunto de tags XML únicas que estão definidas. Se as usarmos correctamente, qualquer programa que leia RSS vai compreender a nossa informação.
Se não entenderam o parágrafo anterior, não precisam de o voltar a ler, continuem a ler o tutorial para ver como isto é simples. Primeiro, abram um editor de texto como o Notepad. Vamos usá-lo para construir o nosso ficheiro RSS.
Para o nosso tÃtulo, precisarmos de começar com a tag <title>, dentro dela colocamos o texto do nosso tÃtulo, a seguir fechamos a tag com </title>. Fica assim:
<title>Tutorial XML Como criar um ficheiro RSS</title>
Para a descrição fazemos o mesmo, começando com a abertura da tag <description>, colocando o texto da descrição e fechando com a tag </description>. E fica assim:
<title>Tutorial XML Como criar um ficheiro RSS</title>
<description>Disponivel no Redcodestudio um tutorial sobre como criar um ficheiro RSS</description>
A seguir, adicionamos a informação do link, começando com <link>, colocando o próprio link, e fechando com </link>. O que resulta em:
<title>Tutorial XML Como criar um ficheiro RSS</title>
<description>Disponivel no Redcodestudio um tutorial sobre como criar um ficheiro RSS</description>
<link>http://forum.redcodestudio.com/viewtops.389-0-0.html</link>
Agora falta mais uma coisa que precisamos de fazer. Temos de definier toda esta informação como formando um item único, para isso usamos uma tag especial.
Colocamos a abertura da tag item <item> no inÃcio de toda a informação que listámos. Depois colocamos a tag de fecho </item> no fim da informação do item. Resulta em:
<item>
<title>Tutorial XML Como criar um ficheiro RSS</title>
<description>Disponivel no Redcodestudio um tutorial sobre como criar um ficheiro RSS</description>
<link>http://forum.redcodestudio.com/viewtops.389-0-0.html</link>
</item>
Acabámos de criar o nosso primeiro item. Só falta algumas coisas para acabarmos o nosso ficheiro RSS. Primeiro, como farÃamos se tivessemos mais items para acrescentar? Teriamos apenas de adicionar mais elementos do tipo item, como acabámos de fazer anteriormente. Podemos colocar até um total de 15 items. Devemos introduzir os novos items no topo, apagando os antigos que estão no fundo do código, de modo a criar espaço para os novos items.
Como o nosso exemplo, vejamos como ficaria o código com mais dois items:
<item>
<title>Tutorial XML Como criar um ficheiro RSS</title>
<description>Disponivel no Redcodestudio um tutorial sobre como criar um ficheiro
RSS</description>
<link>http://forum.redcodestudio.com/viewtops.389-0-0.html</link>
</item>
<item>
<title>UniformServer</title>
<description>Um WAMP portátil</description>
<link>http://forum.redcodestudio.com/viewtopic.380.html</link>
</item>
<item>
<title>[Tutorial] PhpBB</title>
<description>Como impedir que os SPAM Bots se registem</description>
<link>http://forum.redcodestudio.com/viewtops.385-0-0.html</link>
</item>
Tendo definido os itens que queremos distribuir, temos agora que definir o nosso site como um canal ("channel"). Iremos usar as mesmas tags que usamos com os itens: title, description e link. No entanto, desta vez a informação será à cerca do nosso site todo, em vez de uma página em especÃfico. Isto quer dizer que a nossa informação de canal ficaria assim:
<title>Redcodestudio</title>
<description>Programação Web, Flash e Web Design</description>
<link>http://www.redcodestudio.com</link>
Temos agora de definir que esta informação é para o nosso canal "channel" para a conseguirmos demarcar da informação de um item (porque é igual a um item, até agora). Sendo assim, desde que não cerquemos esta informação com tags de abertura e fecho do tipo <item> tags, não será lida como informação de item mas sim como informação de channel (canal). Resulta em:
<title>Redcodestudio</title>
<description>Programação Web, Flash e Web Design</description>
<link>http://www.redcodestudio.com</link>
<item>
<title>Tutorial XML Como criar um ficheiro RSS</title>
<description>Disponivel no Redcodestudio um tutorial sobre como criar um ficheiro
RSS</description>
<link>http://forum.redcodestudio.com/viewtops.389-0-0.html</link>
</item>
<item>
<title>UniformServer</title>
<description>Um WAMP portátil</description>
<link>http://forum.redcodestudio.com/viewtopic.380.html</link>
</item>
<item>
<title>[Tutorial] PhpBB</title>
<description>Como impedir que os SPAM Bots se registem</description>
<link>http://forum.redcodestudio.com/viewtops.385-0-0.html</link>
</item>
Só faltam uns pormenores para terminar. Em primeiro lugar temos de adicionar uma tag no inÃcio do código dizendo que o ficheiro foi escrito usando as especificações 1.0 do XML. Logo a seguir, temos de dizer qual a versão RSS que estamos a usar.
Até agora tudo o que fizemos cumpre com as especificações da versão RSS 0.91 da UserLand. Todavia, também cumpre com a versão RSS 2.0 da UserLand, portanto vamos definir o ficheiro como compatÃvel com esta última versão. O que nos irá permitir adicionar novas caracterÃsticas interessantes no futuro, caso queiramos.
Finalmente após a tag RSS tag, temos de abrir a tag "channel" tag. O que faz com o inÃcio do ficheiro fique assim:
<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
<channel>
No fim do ficheiro, após todos os items que quisermos que fiquem "sindicalizados" temos de fechar a tag channel e a tag RSS tag, por essa ordem. No que resulta:
</channel>
</rss>
Ou seja, o nosso ficheiro completo fica assim:
<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
<channel>
<title>Redcodestudio</title>
<description>Programação Web, Flash e Web Design</description>
<link>http://www.redcodestudio.com</link>
<item>
<title>Tutorial XML Como criar um ficheiro RSS</title>
<description>Disponivel no Redcodestudio um tutorial sobre como criar um ficheiro
RSS</description>
<link>http://forum.redcodestudio.com/viewtops.389-0-0.html</link>
</item>
<item>
<title>UniformServer</title>
<description>Um WAMP portátil</description>
<link>http://forum.redcodestudio.com/viewtopic.380.html</link>
</item>
<item>
<title>[Tutorial] PhpBB</title>
<description>Como impedir que os SPAM Bots se registem</description>
<link>http://forum.redcodestudio.com/viewtops.385-0-0.html</link>
</item>
</channel>
</rss>
Outras OpçõesTudo demonstrado acima são os básicos para criar um ficheiro RSS e começar a promover o conteúdo do nosso site. No entanto há procedimentos adicionais que poderão fazer.
Por exemplo, em vez de o site todo funcionar como "channel," podemos dividir o site em várias categorias, cada uma funcionando como um canal separado.
Como referido, a versão RSS 2.0 permite adicionar todos os tipos de informação adicional à nossa feed. Isto pode dar-nos uma valente dor de cabeça só de olhar para as opções disponÃveis e decidir quais usar. A resposta mais fácil é, não nos importar com aquilo que desconhecemos até porque não é garantido que todos os leitores de RSS suportem as opções que escolhemos. Desde que coloquemos o mÃnimo de informação como sugerido acima, tudo funcionará bem.
Será que escolhemos a versão correcta de RSS?Anteriormente, foi mencionado que existem diferentes versões de RSS. Apesar de termos introduzidos um mÃnimo básico de informação, acabámos por ter um ficheiro que era facilmente considerado ser RSS 2.0, a última versão lançada pela UserLand e que é largamente usada.
No entanto, o site
Syndic8 diz que a versão mais popular de RSS é, de longe, a 0.91 -- e mesmo assim usámos a 2.0, mas o nosso ficheiro é totalmente compatÃvel com a versão 0.91. Resumindo, não há problema.
Àcerca da versão 0.91 que dissemos que era complicada? É mesmo, mas existem pessoas que querem usar as suas potencialidades. Para saber mais visitem a
especificação oficialGuardar o ficheiroDepois de termos colocado o código todo temos, obviamente de guardar o ficheiro. Mas que nome devemos usar? Não há qualquer guia que nos elucide sobre o nome que se deve usar. Desde que o ficheiro seja validado provavelmente não interessará muito que nome usemos.
Para o caso do Redcodestudio decidimos usar o mesmo nome que o site original deste tutorial usou (Search Engine Watch), que é o mesmo que a UserLand usa, que promove o standard RSS 2.0 que usámos. O exemplo das feeds da UserLand terminavam todos em .xml, por isso fazemos igual. Na primeira parte é que podemos estar mesmo à vontade, vamos chamar-lhe feed.xml.
Após a gravação do ficheiro, podemos colocá-lo em qualquer lugar no servidor. Vamos colocá-lo na raÃz, o endereço ficaria assim::
http://www.redcodestudio.com/feed.xmlValidar o ficheiroDepois de todos estes passos, temos de ter a certeza que estão todos correctos. Para ter a certeza temos de validar o ficheiro. Para tal basta usar a aplicação
Feed Validator, introduzir o endereço do nosso ficheiro e verificar quais os eventuais erros.
No nosso caso e como o código está neste momento é nos dito que o ficheiro RSS é válido, contudo alguns leitores de RSS podem confundir-se com a tag <link>.
É nos explicado que é recomendado que coloquemos a tag <guid>, e se possÃvel que a façamos um permalink. Este passo extra permite aos agregadores de RSS não repetir itens, mesmo que estes tenham sido editados.
Costuma perguntar-se se as <guid>s não são a mesma coisa que os<link>s. Nuns casos sim, noutros não. Nuns sistemas a tag<link> é um permalink para um item num weblog. Noutros sistemas, cada item é um resumo de um artigo ainda maior onde a tag <link> direcciona-nos para o resumo ou sinopse do artigo, e a <guid> é um permalink para o artigo completo (além do resumo) que pode ser lido no web browser (enquanto que o <link> seria visto no leitor de RSS. Eis um link para uma melhor explicação
aqui.
Desse modo, teremos de adicionar as <guid>s para não haver problemas. O nosso código acaba por ficar deste modo:
<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
<channel>
<title>Redcodestudio</title>
<description>Programação Web, Flash e Web Design</description>
<link>http://www.redcodestudio.com</link>
<item>
<title>Tutorial XML Como criar um ficheiro RSS</title>
<description>Disponivel no Redcodestudio um tutorial sobre como criar um ficheiro
RSS</description>
<link>http://forum.redcodestudio.com/viewtops.389-0-0.html</link>
<guid>http://forum.redcodestudio.com/viewtops.389-0-0.html</guid>
</item>
<item>
<title>UniformServer</title>
<description>Um WAMP portátil</description>
<link>http://forum.redcodestudio.com/viewtopic.380.html</link>
<guid>http://forum.redcodestudio.com/viewtopic.380.html</guid>
</item>
<item>
<title>[Tutorial] PhpBB</title>
<description>Como impedir que os SPAM Bots se registem</description>
<link>http://forum.redcodestudio.com/viewtops.385-0-0.html</link>
<guid>http://forum.redcodestudio.com/viewtops.385-0-0.html</guid>
</item>
</channel>
</rss>
Podemos visitar também o
Wytheville Community College News Center para verificar como fica a nossa feed.
Existem depois disto tudo vários sites onde podemos adicionar as nossas feeds para elas ficarem conhecidas, como mostra este link:
http://searchenginewatch.com/sereport/article.php/2175281 .
Finalmente podemos adicionar uma imagem com o sÃmbolo das RSS ao nosso site para chamar a atenção das pessoas que o vosso site possui RSS News Feeds. Ou então optar por adicionar o seguinte código dentro da tag HEAD das páginas do vosso site:
<link rel="alternate" type="application/rss+xml" title="Redcodestudio News Feeds" href="http://www.redcodestudio.com/feeds.xml">
O que irá fazer aparecer um Ãcone da RSS laranja no fundo do browser Firefox ou um Ãcone azul na barra de endereços do browser Opera.
Um pequeno updateO encodingFaltava em todo este código o
encoding do ficheiro XML.
Por encoding entende-se, neste caso, o tipo de caracteres permitido. Por exemplo, os acentos e letras especiais da lÃngua portuguesa que em Inglês não existem.
Portanto modifiquei a primeira linha de código do nosso ficheiro XML, para passar a ser:
<?xml version="1.0" encoding="iso-8859-1"?>
Outro updateAdicionar uma imagem a uma RSS FeedA especificação RSS diz-nos que apenas podemos especificar uma imagem e não um icon (favicon) para as nossas feeds.
No entanto, existe a possibilidade de introduzir mais metadata em conjunto com a imagem.
O elemento
image fica colocado dentro do
channel e necessário especificar o
url, o
title, e o
link.
O
url é o endereço da imagem.
O
title seria usado como o atributo
ALT se a imagem fosse usada em HTML.
E o
link deve ser o endereço do nosso site.
O
title e o
link da nossa imagem serão provavelmente os mesmos que o
title e o
link usados no nosso channel.
Existem 3 elementos adicionais que podem ser utilizados:
width,
height, e
description.
O
width e
height são as dimensões da imagem.
A
description seria usada no atributo
title do
link se fosse renderizada em HTML.
A especificação RSS diz o seguinte em relação às dimensões das imagens:
- O máximo valor para a Largura (width) é 144 pixels, o valor por defeito é 88.
- O máximo valor para a Altura (height) é 400 pixels, o valor por defeito é 31.
Aqui fica um exemplo de como o elemento
image ficaria na nossa feed:
<channel>
...
<image>
<url>http://www.redcodestudio.com/imagem/rss_banner.gif</url>
<title>Redcodestudio.com</title>
<link>http://www.redcodestudio.com/</link>
<width>111</width>
<height>32</height>
<description>Programação Web, Flash e Web Design</description>
</image>
...
</channel>
É melhor do que não ter nada.
Eu andava (ando) Ã procura de uma forma de fazer aparecer a favicon do RCS nas nossas feeds e este elemento
image é o mais próximo que consegui encontrar disso. Embora não seja a mesma coisa, anda lá perto.
A questão é nem todos os leitores de RSS Feeds dispõem da funcionalidade de mostrar as imagens.
Eu uso o Firefox para ler RSS Feeds e por isso, para mim, não há cá imagens para ninguém. :lol:
O autor do Snook.ca (donde foi retirada esta explicação sobre o elemento
imagem)diz que, apesar de haver poucos leitores de RSS Feeds que têm essa funcionalidade, é sempre uma boa ideia incluir o elemento
imageNem que seja para que, quando algum leitor de RSS Feeds - que tenha a funcionalidade de mostrar a nossa imagem (como o Bloglines) - a carregar a partir do nosso servidor, ficarmos com esse registo e assim, termos uma ideia de quantas pessoas lêem as nossas feeds.
Quer dizer... pelo menos quantas pessoas que lêem as nossas feeds e têm um leitor com essa funcionalidade.
Então com o elemento image assim o nosso código final:
<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
<channel>
<title>Redcodestudio</title>
<description>Programação Web, Flash e Web Design</description>
<link>http://www.redcodestudio.com</link>
<image>
<url>http://www.redcodestudio.com/imagem/rss_banner.gif</url>
<title>Redcodestudio.com</title>
<link>http://www.redcodestudio.com/</link>
<width>111</width>
<height>32</height>
<description>Programação Web, Flash e Web Design</description>
</image>
<item>
<title>Tutorial XML Como criar um ficheiro RSS</title>
<description>Disponivel no Redcodestudio um tutorial sobre como criar um ficheiro
RSS</description>
<link>http://forum.redcodestudio.com/viewtops.389-0-0.html</link>
<guid>http://forum.redcodestudio.com/viewtops.389-0-0.html</guid>
</item>
<item>
<title>UniformServer</title>
<description>Um WAMP portátil</description>
<link>http://forum.redcodestudio.com/viewtopic.380.html</link>
<guid>http://forum.redcodestudio.com/viewtopic.380.html</guid>
</item>
<item>
<title>[Tutorial] PhpBB</title>
<description>Como impedir que os SPAM Bots se registem</description>
<link>http://forum.redcodestudio.com/viewtops.385-0-0.html</link>
<guid>http://forum.redcodestudio.com/viewtops.385-0-0.html</guid>
</item>
</channel>
</rss>
E está tudo!
Cumps.
Traduzido e adaptado de Making An RSS Feed por Danny SullivanA parte sobre o elemento image foi traduzida e adaptada desta página do site Snook.ca