Sexta-feira, 27 de agosto de 2004 às 14h51

RSS (Rich Site Sumary)

Faltam -1 dias! Inscreva-se agora! O maior encontro de profissionais web da américa latina.

Na matéria de hoje vou falar sobre RSS (Rich Site Sumary). Com certeza existirão leitores que nunca ouviram falar do RSS e devem estar se fazendo um monte de perguntas do tipo:

O que é?
Para que serve?
Onde devo usar?
Como funciona?
Como gero um RSS Feed?
Como leio um RSS Feed?

Bom, o RSS Feed foi criado para solucionar um grande problema que as agências de comunicação, blogs e outros sites com conteúdo constantemente atualizado tinham. Mas qual problema?

Bom, geralmente uma agência de notícias faz disparos de newsletter para inúmeras pessoas todos os dias e as vezes semanalmente, tanto faz. Agora, para explicar o problema eu vou exemplificar.

Vamos dizer que eu tenho um canal de notícias, e todas as manhãs às 8 horas eu disparo um newsletter com notícias, lançamentos e etc...

Até ai tudo bem, mas se às 8h30 eu publico uma nova notícia, ela só será entregue no dia seguinte às 8 horas, sendo assim, o que era para ser uma novidade já não é mais.

Com o RSS Feed, seus espectadores poderão tomar conhecimento da nova notícia no mesmo instante em que ela for publicada.

Como funciona?

O RSS Feed tem parâmetros pré-estabelecidos e seu formato é XML. Sendo assim, fica fácil gerar um RSS Feed. Basta coletar os dados dos seus registros, e gerar um XML cada vez que um novo registro é acrescentado.

O RSS do iMasters, por exemplo, gera para quem quiser, em tempo real, todas as notícias de uma determinada seção ou do site inteiro. Basta o interessado inserir o código XML, que mostrará o conteúdo do iMasters em tempo real.

Vejamos logo abaixo a estrutura de um arquivo RSS Feed

Elemento

Descrição

Exemplo

<rss>*

Indica a versão do rss que estamos usando.

<rss version="2.0">

<title>*

Título da notícia

 

<link>*

Endereço para a página

 

<description>*

Breve descrição da notícia (Resumo)

 

<language>

Idioma da fonte

pt-br

<copyright>

Copyright do canal de notícias

Copyright 2004, iMasters

<managingEditor>

E-mail do editor da notícia

wenderw@pop.com.br (Wender A. Lima)

<webMaster>

E-mail do responsável técnico do site

wenderw@pop.com.br (Wender A. Lima)

<pubDate>

Data da publicação

<pubDate>Sun, 19 May 2004 15:21:36 GMT</pubDate>

<lastBuildDate>

Data da última publicação

Sat, 07 Sep 2004 09:42:31 GMT

<category>

Categoria à qual a notícia pertence

<category>ColdFusion</category>

<generator>

Nome do programa ou aplicação que gera o rss.

WenderPub RSS 1.0

<docs>

Url onde são encontradas as notícias no RSS

http://www.exemplo.com.br/RSS

<ttl>

Tempo de duração do canal (Medido em minutos Ex.: 60)

<ttl>60</ttl>

<image>

URL onde a imagem do canal se encontra

 

<rating>

Avaliação do canal

 

<textinput>

Permite a colocação de sub-itens

 

<skipHours>

Tempo em que estará disponível

<skipHours>24</skipHours>

<skipDays>

Dias em que estará disponível

<skipDays>1</skipDays>

<author>

E-mail do autor da notícia

<author>Wender A. Lima</author>

<comments>

URL onde estão os comentários da notícia

<comments>
http://url/blogId=705245&amp;itemId=271
</comments>

<enclosure>

URL para o objeto audio/video que será incluído na notícia

<enclosure
url="http://url/exemplo.mp3"
length="12216320" type="audio/mpeg" />

<source>

Nome do canal de notícias que fornece o RSS

<source>iMasters</source>

* Requirido

Muito bem, estes são apenas alguns elementos que compõe o RSS 2.0.

Veja um exemplo desta estrurura:

<?xml version="1.0"?>
  <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/">
    <channel rdf:about="http://www.exemplo.com.br/rss.cfm">
        <title>Exemplo de publicação RSS</title>
        <link>http://www.exemplo.com.br</link>
        <description> O XML (Extensible Markup Language) é um formato universal para leitura de dados
        </description>
        <language>pt-br</language>
        <copyright>Copyright: (C) iMasters.com.br </copyright>
        <image rdf:resource="http://www.exemplo.com.br/logo.gif"/>
        <textinput rdf:resource="http://www.exemplo.com.br" />     
        <image rdf:about="www.exemplo.com.br/logo.gif">
            <title>Exemplo</title>
            <url>http://www.exemplo.com.br/</url>
            <link>http://www.exemplo.com.br/logo.gif</link>
        </image>
    <item>
        <title>Novo RSS 2.0</title>
        <link>http://www.exemplo.com.br/news.cfm?id=123</link>
        <description>É lançado a nova versão do RSS</description>
    </item>  
    <item>
        <title>iMasters com nova cara</title>
        <link>http://www.exemplo.com.br/news.cfm?id=654</link>
        <description>O site imasters.com.br está de cara nova...</description>
    </item>  
  </channel>
</rdf:RDF>

Agora vamos gerar nosso RSS à partir de um exemplo:

Vamos supor que eu tenho um banco de dados de notícias e nós iremos coletar os dados contidos nele para gerar nosso xml:
<cfquery name="qPopulaRSS" datasource="Exemplo">
    SELECT N.NOT_ID, N.NOT_MANCHETE, N.NOT_LEAD, N.NOT_DATA_PUB, A.AGE_NOME, E.EDI_NOME
    FROM T_NOTICIAS N, T_EDITORIA E, T_AGENTE A
    WHERE N.NOT_AGE_ID = A.AGE_ID
    AND N.NOT_EDI_ID = E.EDI_ID
    ORDER BY N.NOT_DATA_PUB DESC
</cfquery>
<!--- 
Crie um diretório e um arquivo xml com o conteúdo de exemplo acima, para que possamos dar startup em nossa aplicação.
Usando a tag cffile nós iremos ler nosso arquivo xml, analisamos com XmlParse criando uma variável com o conteúdo do nosso XML.
  --->
<cffile action="read" file="D:\Inetpub\exemplo\web\rss\rss.xml" variable="XmlDoc">
<cfset xml = XmlParse(XmlDoc)>
<!--- 
Usaremos a tag cfsavecontent para popular nosso novo xml em uma nova variável que chamaremos "rss" 
--->
<cfsavecontent variable="rss">
<?xml version="1.0" encoding="ISO-8859-1"?>
    <rss version="2.0">
        <channel>
            <lastBuildDate>#xml.rss.channel.lastBuildDate.XmlText#</lastBuildDate>
<!--- 
Repare que aqui estamos pegando de nosso xml antigo a data da última publicação 
--->

            <pubDate>#LSDateFormat(Now(),"ddd")#, #LSDateFormat(Now(),"dd")# #LSDateFormat(Now(),"mmm")# #LSDateFormat(Now(),"yyyy")# #LSTimeFormat(Now(),"HH:mm:ss")# -0300</pubDate>
            <title>WebReporter News</title>
            <description><![CDATA[iMasters - Por uma internet mais dinâmica e criativa</XMLCDATA></description>
            <link>http://www.imasters.com.br/rss</link>
            <language>pt-br</language>
            <copyright>iMasters</copyright>
            <managingEditor>imasters@imasters.com.br</managingEditor>
<!---
Aqui nós começamos a popular os itens
--->

          <cfoutput query="qPopulaRSS">
            <item>
                <title>#NOT_MANCHETE#</title>
                <description>
                    <![CDATA[<MM:BeginLock translatorClass="MM_COLDFUSION" type="DynData" depFiles="" orig="%23NOT_LEAD%23" >
                         <MM_DYNAMIC_CONTENT SOURCE="NOT_LEAD" DYNAMICDATA=1>
                             <MM:DECORATION HILITECOLOR="Dyn Untranslated Color">
                                 {NOT_LEAD}
                            </MM:DECORATION>
                         </MM_DYNAMIC_CONTENT>
                     <MM:EndLock>
                     </XMLCDATA>
                  </description>
                <pubDate>#LSDateFormat(NOT_DATA_PUB,"ddd")#, #LSDateFormat(NOT_DATA_PUB,"dd")# #LSDateFormat(NOT_DATA_PUB,"mmm")# #LSDateFormat(NOT_DATA_PUB,"yyyy")# #LSTimeFormat(NOT_DATA_PUB,"HH:mm:ss")# -0300
                 </pubDate>
                <link>http://www.exemplo.com.br/noticias/integra.cfm?ID=#NOT_ID#</link>
                <author>#AGE_NOME#</author>
                <category>#EDI_NOME#</category>
            </item>
        </cfoutput>
<!---
Agora é só fechar as tags
--->
    </channel>
</rss>

</cfsavecontent>

<cffile action="write" file="D:\Inetpub\exemplo\web\rss\rss.xml" output="#rss#" charset="iso-8859-1">

Pronto, desta forma nós geramos um arquivo XML com os padrões e parâmetros utilizados no RSS.

Para que você possa ser notificado sobre novas atualizações e etc... você terá que instalar um "RSS Reader. Existem diversos tipos no mercado, desde um simples notificador até alguns com integração com o MSOutlook. Eu, particularmente, utilizo o "bloglines"

Segue aí uma lista dos RSS Feeds dos produtos da Macromedia

Authorware
www.macromedia.com/go/rss_authorware

Fireworks
www.macromedia.com/go/rss_fireworks

Breeze
www.macromedia.com/go/rss_breeze

Flash
www.macromedia.com/go/rss_flash

Central
www.macromedia.com/go/rss_central

FlashPaper
www.macromedia.com/go/rss_flashpaper

ColdFusion
www.macromedia.com/go/rss_coldfusion

Flash Player
www.macromedia.com/go/rss_flash_player

Contribute
www.macromedia.com/go/rss_contribute

Flash Remoting
www.macromedia.com/go/rss_flash_remoting

Contribute Publishing Services
www.macromedia.com/go/rss_cps

Flex
www.macromedia.com/go/rss_flex

Director
www.macromedia.com/go/rss_director

FreeHand
www.macromedia.com/go/rss_freehand

Dreamweaver
www.macromedia.com/go/rss_dreamweaver

HomeSite
www.macromedia.com/go/rss_homesite

Flash Communication Server
www.macromedia.com/go/rss_fcs

JRun
www.macromedia.com/go/rss_jrun

Espero que tenham gostado. Qualquer dúvida, favor falar comigo ou acessar nosso fórum.

 

Nenhum comentário até agora

Cancelar resposta

Qual a sua opinião?

Faça login abaixo ou cadastre-se rapidamente.


Sobre o Autor
Wender Lima é analista Programador do UOL. Especialista no desenvolvimento de WebServices baseados na tecnologia Adobe ColdFusion, também utiliza Ajax, Oracle e SQLServer.
3G

2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.