As 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 RSS
No 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:
Agora 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:
Código:
<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:
Código:
<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:
Código:
<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:
Código:
<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:
Código:
<item> <title>Tutorial XML Como criar um ficheiro RSS</title> <description>Disponivel no Redcodestudio um tutorial sobre como criar um ficheiro
<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:
Código:
<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:
Código:
<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
<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:
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:
Código:
</channel> </rss>
Ou seja, o nosso ficheiro completo fica assim:
Código:
<?xml version="1.0" ?> <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
<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ções
Tudo 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 oficial
Guardar o ficheiro
Depois 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::
Depois 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:
Código:
<?xml version="1.0" ?> <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
<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>
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: