Samedi 14 juin 2008

Flux RSS vers Atom

atom-enabledCe qu'on appelle globalement des flux RSS peuvent être en fait des fils de syndication de différents formats: RSS 1 (ou 0.9), RSS 2 ou encore Atom.

Ce dernier a un avantage (non négligeable pour un vrai geek) sur le format RSS: il n'est pas propriétaire et il est standardisé par le W3C. ;-) De plus il comporte des balises supplémentaires qui sont de bons atouts.

Voilà pourquoi j'ai décidé de mettre plutôt en avant le flux Atom sur mon blog. Voilà comment faire:

Ici sur Wordpress les 3 versions sont générés.

  1. azur-dev.kiao.net/feed donne le flux RSS 2,
  2. azur-dev.kiao.net/feed/rss donne le flux RSS 0.92,
  3. azur-dev.kiao.net/feed/atom donne le flux Atom.

S'il y en a dans le thème les liens vers le flux /feed peuvent être remplacé par /feed/atom. Et pour le flux principal qui apparait vers la barre d'adresse des navigateurs, c'est dans les entêtes (généralement le fichier header.php du thème).

Il faut mettre en premier, ou ne garder que l'adresse Atom:
<link rel="alternate" type="application/atom+xml" title="Flux Atom" href="http://azur-dev.kiao.net/feed/atom" />


PHP

Si vous faites vous-même votre flux RSS à partir de votre site, le mieux est de le faire "à la main". J'ai essayé une classe toute faite pour générer un flux RSS, mais c'est plus compliqué que de le générer soi-même! :-p

~

Exemple de flux Atom pour le créer soi-même en PHP ou autre

Ceci est l'entête du fichier avec vos informations:
<?xml version="1.0" encoding="utf-8"?>
(<?xml-stylesheet href="rss.css" type="text/css"?> pour y adjoindre un CSS)
<feed xmlns="http://www.w3.org/2005/Atom">
<title>Flux Atom du site XXX.fr</title>
<link rel="alternate" type="text/html" hreflang="fr" href="http://XXX.fr/" />
<link rel="self" type="application/atom+xml" href="http://XXX.fr/atom" />
<updated>2008-06-14T22:48:23+02:00</updated>
<author><name>XXX.fr</name></author>
<id>http://XXX.fr/</id>
<subtitle>Les dernièrs articles de XXX.fr</subtitle>
<icon>http://XXX.fr/icone.png</icon>
<logo>http://XXX.fr/logo.png</logo>

~

Ensuite chaque article devra apparaitre sous cette forme. Si les articles sont en base de données, une requête et une boucle, et le tour est joué. :-)
<entry>
<title>Titre de mon article</title>
<link href="http://XXX.fr/lien-article" type="text/html" />
<id>http://XXX.fr/lien-article</id>
<summary type="html"><![CDATA[Chapô de l'article...]]></summary>
<updated>2008-06-14T20:08:08+02:00</updated>
</entry>

Au "summary" on peut ajouter un "content" qui sera plus complet, voire l'article entier si cela ne vous gène pas que les lecteurs ne soient pas obligé de venir sur votre site pour tout lire.

Le lien est mis 2 fois, car "id" peut-être un identifiant différent, mais le plus simple est le mettre le lien. Cela permet aux lecteurs RSS d'identifier facilement les articles déjà lus.

D'autres options sont bien sûr disponibles, voir toutes les spécifications Atom.

Il faut simplement faire attention au format des dates un peu particulier (normalisé par le W3C). Le reste est très proche de RSS 2.0.

~

Attention, vous devrez envoyer le tout avec le bon type MIME (objet d'un précédent article sur les types MIME pour CSS et Javascript):

header('Content-Type: application/atom+xml; charset=utf-8');


Vous pouvez finalement tester votre flux sur Feedvalidator ou le validateur W3C (ce sont des clones, le résultat sera forcément le même).


café Cet article vous a aidé? 
Offrez-moi un café!
Agrégateur informatique

2 réponses à “Flux RSS vers Atom”

  1. 1
    Annonces (micro.annonces.free.fr) a dit:

    Cet article est très utile plutôt que de lire toute la doc d'Atom. Il mériterait d'être dans les signets de tous les développeurs web! :-) Merci.

  2. Rétrolien de Images en PHP avec GD2 - Azur Dev

Laisser un commentaire

Version mobile

I follow

© Azur Dev Actualité informatique & tutoriels PHP Thème d'après Greenline + PHP HTML

ThemeWordpress
Azur Dev