Como atribuir notícias RSS ao seu site usando ATOM e PHP

Atom é o nome dado a um estilo baseado em conteúdo XML e metadata, ou seja, é um protocolo em nível de aplicação para publicar e editar fontes web que são periodicamente atualizados, um exemplo para isto são os blogs.

[ Hits: 27.473 ]

Por: Roberson Carlos em 22/06/2006 | Blog: http://carlrobers.wordpress.com


O que é o ATOM



Atom é o nome dado a um estilo baseado em conteúdo XML e meta data, ou seja, é um protocolo em nível de aplicação para publicar e editar fontes web que são periodicamente atualizados, um exemplo para isto são os blogs.

Os feeds devem ser formados em formato XML e são identificados como application/atom+xml media type.

O funcionamento dele não difere das Markup Languages tradicionais, com cabeçalhos, títulos e corpo, como no HTML 4.0.

Elementos do Feed (Cabeçalho)


Um feed consiste de alguns Metadata seguidos por alguns números de entrada. Todo feed deve conter um cabeçalho.

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

     <title>Genova Home Page - News Feed</title>
     <link href=http://www.genova.einet.com.br/>
    <updated>2006-01-05 3:05:47</updated>
  
   <author>
     <name>Roberson Carlos Fox</name>
     <email>robersonfox@genovaengine.com</email>
     <uri>http://www.genova.einet.com.br/about-me</uri>
   </author>
  
     <id>http://www.genova.einet.com.br</id>
   <icon>http://www.genova.einet.com.br/img/genova.ico</icon>
   <logo>http://www.genova.einet.com.br/img/G3.jpg</logo>
   <rights> © 2002-2006 Roberson Carlos Fox </rights>
   <subtitle>Esteja atualizado com o que há de melhor na web</subtitle>
   <category term=Informática/>
</feed>

Elementos requeridos do cabeçalho:

Abaixo se segue uma lista com os principais elementos requeridos em um feed e um exemplo.
  • ID, Identifica o Feed usando um universal e permanente URL, você pode colocar seu Nome de Domínio nesta parte. Ex.:
    <id>http://www.genova.einet.com.br</id>

  • Title, contem o título do Feed, este valor não pode ser deixado em branco de maneira alguma. Ex.:
    <title>Genova Home Page - News Feed</title>

Elementos recomendados:
  • Author, nome do autor do Feed, um feed pode ter inúmeros autores e um feed precisa ter ao menos um autor. Ex.:
    <author>
    <name>Roberson Carlos Fox</name>
    <email>robersonfox@genovaengine.com</email>
    <uri>http://www.genova.einet.com.br/about-me</uri>
    </author>

  • Link, identifica uma HP relacionada, o tipo de relação é atribuído pode atributo rel. Ex.:
    <link rel="self" href=" http://www.genova.einet.com.br/" />

    Próxima página

Páginas do artigo
   1. O que é o ATOM
   2. Elementos (Entradas) do Corpo (ENTRY)
   3. Exemplo de feed
   4. Colocando as coisas para funcionar com PHP
Outros artigos deste autor

Amarok: migrando de SQLite para MySQL

Desmistificando o Linux Loader (LILO)

Gravando CDs em modo texto

Alterando as permissões de um arquivo

Configurando o Samba

Leitura recomendada

PEAR - Utilizando classes prontas e documentadas no PHP

Usando cache na classe Fast Template

Acessando o Twitter de 5 formas: protocolo HTTP, cURL, classe HttpRequest (PHP), função http_post_fields() do PHP ou PHP+libcurl

Prado - Orientação a componentes em PHP

Referências ou ponteiros em PHP

  
Comentários
[1] Comentário enviado por lipse em 23/06/2006 - 11:12h

Olá Roberson,

Parabéns pelo tutorial. Sou leigo no assunto e gostaria de saber como fazer um RSS de outros sites (de um site que eu gosto mas que ainda não tem um RSS)?

É que vi o Bruno Torres (http://www.brunotorres.net/) dizendo que fez um RSS pra alguns sites que ele gosta, aí fiquei curioso, pois achava que somente o dono do site poderia fazê-lo.

Obrigado.

[2] Comentário enviado por robersonfox em 24/06/2006 - 19:01h

Caro Amigo Lipse,
posso estar até enganado, porém, acho que é impossível, se você notar, será necessário ter acesso ao banco de dados do servidor em questão, e te pergunto, qual webdesign faria isto, daria todos os dados para que outros pegassem dados do seu banco de dados, o que o o Bruno Torres deve ter feito é pego os rss's com um leitor tipo o rssowl.

[3] Comentário enviado por robersonfox em 24/06/2006 - 19:10h

Eu havia pedido a um moderador o qual não me recordo o nome para não colocar este artigo no ar por falta de um único parâmetro que não permitiria que este funcionasse, mas acredito que ele não recebeu o recado, mas então vai aí uma correção para o script em PHP acima.

Antes de:

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

Insira:

header("Content-Type: text/xml");

Cado não fizer isto não funciona.

[4] Comentário enviado por lipse em 24/06/2006 - 20:23h

Oi Roberson,

Também acho isso, mas veja você mesmo:

http://brunotorres.net/2005/06/24/feed-atom-charges

Eu ainda não consegui entender o que ele fez, mas, como disse no outro post, sou leigo no assunto.

[5] Comentário enviado por robersonfox em 24/06/2006 - 22:11h

O RSS que você está falando pertence ao charges uol, é um RSS 2.0 que é gerado por este arquivo http://charges.uol.com.br/arquivo.php.

[6] Comentário enviado por lipse em 24/06/2006 - 23:39h

O Bruno usa esse arquivo como fonte pro feed que ele faz?

[7] Comentário enviado por denes em 24/05/2007 - 16:11h

Olá, Roberson!
Parabéns pelo artigo. Simples e objetivo. Era exatamente o que eu estava procurando.
Gostaria de saber: é possível você ou o moderador fazer a correção mencionada acima 'header("Content-Type: text/xml");' no corpo do artigo? Ou um alerta no início dele? Às vezes lemos o artigo e não os comentários.
tks!

[8] Comentário enviado por robersonfox em 17/06/2007 - 13:11h

denes, eu até que pedi mas os caras não deram ouvido


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts