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: 28.558 ]

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

Registrando extensões no kernel com o binfmt_misc

Gravando CDs em modo texto

Evosign - Adicionar assinatura automática ao Evolution

Amarok: migrando de SQLite para MySQL

Instalando Apache Tomcat em Linux 2.6

Leitura recomendada

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

Paginação de resultados em PHP/MySQL

Utilizando o Smarty template no PHP

Criando sites para celular com WML

Usando cache na classe Fast Template

  
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