mercredi 10 février 2016

Transformer une page Facebook en flux RSS à partir de l'API


La principale méthode pour transformer une Page Facebook en format RSS est celle proposée par la plateforme elle-même. Le processus suivant ne fonctionne qu'avec les Pages et pas les Utilisateurs et ou les Groupes. Le principe consiste à utiliser l'API de Facebook, c'est-à-dire le langage de programmation interne au site. Cette méthode implique d'utiliser un mode d'acquisition par script. Ce n'est donc pas un mode direct d'affichage, comme cela le fut avant l'introduction de l'API.
Cette API génère un fichier JSON qu'il faudra transformer en RSS. Le JSON est un format de type base de données composé d'accolades, dépouillé au maximum, et basé sur une structure arborescente, de même type que le XML.

1/ S'inscrire sur le site Facebook comme programmeur.
2/ Obtenir dans votre interface un Token qui vous permettra de personnaliser vos requêtes, laquelle apparaîtra dans une URL. Ce Token est personnel, il ne faut pas le faire apparaître sur votre site par exemple. Dans ce cas, vous pouvez aussi générer des Token temporaires.
3/ Recopier l'ID de la page que vous voulez transformer. L'ID se trouve dans le code source de la page content ="fb://page/?id= ou bien à partir de sites comme find id.
4/ Générer une URL du type https://graph.facebook.com/v2.1/ID/accounts?access_token=Token
Celle-ci peut prendre diverses syntaxes en fonction de votre mode d'acquisition et de votre Token, ainsi v2.1/ peut être supprimé, et des attributs peuvent être rajoutés &limit=10 &offset=10 &fields=link &fields=message,media
5/ Acquérir la page de l'URL en utilisant un script ou un autre mode. En PHP il existe cURL, en Python urllib.
6/ Transformer la page en JSON à l'aide d'un nouveau script. En PHP vous pouvez utiliser l'instruction json_decode puis parser chaque élément en le transformant en balise RSS. Ce qui donne un code du type :
$json_conteneur = json_decode($page_json, true);
foreach ($json_cont['data'] as $item) {
        $id=$item['id'];
        $titre = "<title>".$item['message']."</title>";

7/ Enregistrer la page en extension .xml avec les entêtes RSS.

Atlas des flux

Aucun commentaire:

Enregistrer un commentaire