Utiliser l’API SimplePie
Il y a quatre ans de cela, Olivier Duffez de WebRankInfo avait écrit un excellent article sur l’intégration de flux RSS avec l’outil MagpieRSS.
Cet outil, fort pratique, permet à un webmaster d’intégrer sur son site des fils de news RSS en provenance de diverses sources, à la manière du célèbre Netvibes. Malheureusement, le projet Magpie ayant été abandonné, le format RSS 2.0 n’est pas totalement supporté, notamment par exemple les enclosures. Heureusement, depuis quelques années, un remplaçant pointe le bout de son bec, il s’agit de SimplePie, tout aussi pratique, et simple d’utilisation, mais en plus compatible avec tout les formats RSS. C’est de lui que nous allons parler.
Tout ce que fait Magpie, SimplePie le fait également, aussi vous pouvez lire l’article d’Olivier pour plus d’informations.
Pour utiliser SimplePie, il vous faut la télécharger. Vous la trouverez sur le site http://simplepie.org. C’est le fichier simplepie.inc sous licence LGPL.
Les fonctionnalités offertes par cette API sont multiples, on a bien sûr entre autres, la gestion d’un cache, mais aussi la possibilité de filtrer le flux en y supprimant certaines publicités, ou des balises et attributs potentiellements dangeureux. Certaines configurations doivent se faire dans le fichier lui même (si vous souhaitez par exemple filtrer une balise supplémentaire), mais la pluparts peuvent se faire directement dans votre code php. En parlant de code, voici un exemple d’intégration :
// adresse du flux qu'on souhaite intégrer. $fichier_xml='http://www.lemonde.fr/rss/sequence/0,2-3208,1-0,0.xml'; // appel de la libraire SimplePie. require 'simplepie.inc'; // création d'une nouvelle instance de la classe SimplePie. $feed = new SimplePie(); // on lui indique quel fichier il doit traiter. $feed->set_feed_url($fichier_xml); // on peut lui interdire de trier par date. true par défaut. $feed->enable_order_by_date(false); // on lui indique le nom du fichier de cache. $feed->set_cache_location('cachenews/'); // on lache la pie. $feed->init(); // Si le flux contient à manger. if($feed->data){ // On défini le nombre d'articles qui nous intéressent. $max=$feed->get_item_quantity(5); // Nous voici au coeur du code d'intégration. for($x=0; $x<$max; $x++) { // On prend le x-iéme item. $item=$feed->get_item($x); // Un peu d'habillage html. echo "<div style=\"width: 290px; text-align: left; padding: 4px; background-color: #FFFFEE; border: 1px solid #CCCCCC; margin: 6px;\"> <a href=\""; // le lien ou pointe le flux. echo $item->get_permalink(); echo "\">"; // le titre du flux. echo utf8_decode($item->get_title()); echo "</a><br />"; // si enclosure, on affiche. C'est le cas du monde. if($enclosure=$item->get_enclosure(0)){ echo "<img src=\""; echo $enclosure->get_link(); echo "\" border=\"1\" style=\"float: left; margin: 4px; margin-top: 8px;\">"; } // Et la description pour finir. echo utf8_decode($item->get_description()); echo "</div>"; } }
Voila, c’est on ne peut plus simple. Pas vraiment de commentaire à rajouter sur le code en lui même, si ce n’est ici l’utilisation de utf8_decode pour afficher le texte correctement (fonction de l’encodage de votre page). Comme Olivier, je vous conseille de mettre ce code dans une fonction dédié, la seule variable étant le fichier à parser. A noter que le code suppose ici que votre enclosure soit une image, ce qui ne sera pas souvent le cas en général.
Améliorer la visibilité de vos flux RSS
novembre 2, 2008 par Julien
Catégorie CMS, Web marketing
Etre plus visible dans Netvibes, iGoogle, ou les autres agrégateurs de flux RSS contribuera à améliorer votre trafic. Les titres de vos billets, perdu entre des dizaines d’autre auraient plus de chance d’attirer l’attention s’ils étaient accompagnés d’une image. Dans le cas de blog généraliste, l’usage d’une image peut aussi renseigner en un seul coup d’œil le lecteur sur le thème traité sans qu’il ait à lire en détail les titres. Vous avez certainement remarqué les petites images sur la gauche dans Netvibes ou iGoogle en complément des articles de magasines de presse comme “le monde”. Nous allons voir ici comment faire de même.
Dans le cas général
C’est assez simple. Le format RSS 2.0 permet d’indiquer une balise <enclosure> dans le flux qui permet d’attacher un objet média à l’item. Si cet objet est une image il apparaîtra en tout petit, comme une vignette, dans les principaux agrégateurs de flux.
La balise <enclosure> possède trois attributs qui sont l’url du média attaché, ici une image, la taille en octet de ce média, et le type MIME du fichier. L’ajout d’un enclosure dans le code d’un flux RSS 2.0 ressemble donc à ça :
<enclosure url=”http://www.presse-agrume.net/image.png” length=”2400″ type=”image/png” />
Le résultat parle de lui même.
Avant

Après

Dans le cas de Wordpress
Wordpress comme à son habitude rend très facile ce genre de manipulations. Il suffit de se rendre dans la partie “champs personnalisés” de votre billet, de déclarer une clé nommé “enclosure”, et d’insérer trois lignes dans le champ “valeur” :
1 - l’url de l’image.
2 - la taille en octet de l’image.
3 - le type MIME de l’image.
Exactement comme sur l’exemple

Vous pouvez bien évidemment utiliser cette technique pour inclure tout autre type d’objets média comme des podcasts par exemple.
Des flux RSS sur Google
octobre 9, 2008 par Julien
Catégorie Référencement
Google vient de l’annoncer : des flux RSS de résultats seront bientôt mis à disposition des utilisateurs.
.

S’il n’ont pour le moment pas donnés de date, nous savons que Google, comme le font déjà Live et Yahoo, va proposer des flux RSS de ses pages de résultats.
On imagine l’intérêt pour les développeurs d’outils de veille, ou de positionnement, qui n’auront plus à parser les flux de résultats en HTML comme c’est souvent le cas aujourd’hui.
Chez Presse Agrume, on attend avec impatience.
.
.
.
.