Facebook, API, Page – Parcourir et réutiliser les données d’une page Facebook
Le paradoxe de Facebook est autant le réseau est ouvert à tous, libre à vous de vous enregistrer, autant l’API est “fermé”. Il existe en effet des pans entiers de l’API qui ne sont utilisables que si selon les mots même de Facebook, vous faites partis du “Public Content Solutions program”.
A n’en pas douter cette “fermeture” est délibérée mais on peut se demander légitimement : quel est le but recherché ? Est-ce pour créer un réseau d’entreprises partenaires qui monétisent les usages de Facebook en se chargeant des développements autour de l’API et du même coup soulage Facebook du soin de promouvoir l’usage de son API. Sans doute ! Toutefois, on ne peut que déplorer que pour des utilisateurs/développeurs, toutes les fonctionnalités comme celles du “Hashtag Counter”, “Keyword Insights” ou enfin des “Trends” soient à ce point verrouillées. A l’inverse, Twitter offre une API beaucoup plus accessible et malléable. Conclusion, si vous êtes amené(e)s à travailler avec l’API de Facebook, vous vous heurterez rapidement à cette fin de non-recevoir : “This API is restricted to partners in the Public Content Solutions program.” donc prudence.
Car, c’est bien à cette limite à laquelle vous pourrez heurter pour un projet dont le besoin semblait simple sur le papier tout au moins. En l’espèce, rapatrier tout le contenu, possédant un hashtag Facebook spécifique, publié par des contributeurs “whitelistés”.
Pour l’ensemble de nos exemples de requêtes, on s’est permis d’utiliser l’access_token de la page Smashing Magazine, le célébrissime site “For Professional Web Designers and Developers” www.smashingmagazine.com
V1 vs V2
Il y a eu un gros changement de la version 1 à la version de l’API Facebook. Il est certain que les requêtes de recherche sur des hashtags un peu “à la TW” semble déprécié. Pour info, %23 signifie #. Ce genre de requête est sujet désormais sujet à condition : “If you app was active before 4/30/2014 you can use API v1.0 until 4/30/2015. Otherwise you have to use API v2.0 which don’t have post search”
Sur une version différente de la V2
Il est toujours possible ce type de requête mais pour combien de temps. https://graph.facebook.com/search?q=%23tech&access_token=553435274702353|OaJc7d2WCoDv83AaR4JchNA_Jgw
Sur la V2
Sur ce type de requête, vous allez obtenir comme résultat un message d’erreur “Post search has been deprecated”.
https://graph.facebook.com/v2.2/search?q=%23tech&access_token=553435274702353|OaJc7d2WCoDv83AaR4JchNA_Jgw
Les fonctionnalités inaccessibles
Les modules hashtag_counter
, Keyword Insights
ou la Trends API
ne sont pas accessibles au commun des mortels. C’est bien dommage car ces fonctions pourraient offrir un bon potentiel pour travailler avec l’API Facebook.
- https://developers.facebook.com/docs/hashtag_counter/v2.2
- https://developers.facebook.com/docs/trends/v2.0
- https://developers.facebook.com/docs/hashtag_counter/
Une étude de cas à l’aide la page de la page de smashingmagazine
Etant donné que l’access_token de smashingmagazine est disponible, nous sommes permis de faire quelques essais de requêtes sur l’API Facebook.
Une requête sur les messages uniquement
https://graph.facebook.com/v2.2/smashmag/posts?fields=message&access_token=553435274702353|OaJc7d2WCoDv83AaR4JchNA_Jgw
Une requête sur les messages avec seulement le status_type=wall_post
https://graph.facebook.com/v2.2/smashmag/posts?fields=message&status_type=wall_post&access_token=553435274702353|OaJc7d2WCoDv83AaR4JchNA_Jgw
Une requête un peu plus complète incluant message,story,shares,likes,comments
https://graph.facebook.com/v2.2/smashmag/posts?fields=message,story,shares,likes,comments&access_token=553435274702353|OaJc7d2WCoDv83AaR4JchNA_Jgw
Une requête complète qui rapatrie tout
https://graph.facebook.com/v2.2/smashmag/posts?&access_token=553435274702353|OaJc7d2WCoDv83AaR4JchNA_Jgw
Une fois votre requête choisi, vous récupérez un flux JSON qui vous permettra ensuite de manipuler les données, ce qui éminemment commode pour placer ensuite ce contenu dans un site ou une application, attention tout de même au temps de réponse de l’API Facebook, cela peut vous jouer des tours en terme d’affichage du contenu.
<?php /* VALUES */ /* Example made for the smashng magazine on facebook See https://www.facebook.com/smashmag */ /* Begin graph url for FB */ define ('_GRAPH_FB_', 'https://graph.facebook.com/'); /* Page ID or username */ define ('_PAGE_ID_', 'smashmag'); /* Page Access Token */ define ('_PAGE_ACCESS_TOKEN_', '553435274702353|OaJc7d2WCoDv83AaR4JchNA_Jgw'); $page_posts = file_get_contents(''._GRAPH_FB_.''._PAGE_ID_.'/posts?fields=message&access_token='._PAGE_ACCESS_TOKEN_.''); $pageposts = json_decode($page_posts); /* For debug purpose */ // var_dump ($pageposts); /* print ('<ol>'); foreach ($pageposts->data as $fppost) { if (property_exists($fppost, 'message')) { print ('<li>'); print $fppost->message.'</br>'; print ('</li>'); } } print ('</ol>'); */ print ('<ol>'); foreach ($pageposts->data as $fppost) { // var_dump ($fppost); print ('<li>'); print ('id -> '.$fppost->id.''); print('</br>'); print ('message -> '.$fppost->message.''); print('</br>'); print ('picture -> '.$fppost->picture.''); print('</br>'); print ('category -> '.$fppost->from->category.''); print('</br>'); print ('name -> '.$fppost->from->name.''); print('</br>'); print ('link -> '.$fppost->link.''); print('</br>'); print ('status_type -> '.$fppost->status_type.''); print('</br>'); print ('</li>'); print('<br><br>'); }//EOL print ('</ol>'); ?> |
En savoir plus
- Smashing Magazine, For Professional Web Designers and Developers
http://www.smashingmagazine.com - 2 Cool Things You Can Do with the Facebook Graph API
http://www.sitepoint.com/2-cool-things-can-facebook-graph-api/ - La documentation officielle de Facebook sur “The Graph API”
https://developers.facebook.com/docs/graph-api?locale=fr_FR - La documentation officielle de Facebook sur “Friend List”
https://developers.facebook.com/docs/graph-api/reference/v2.2/friendlist - Un pan de l’API malheureusement réservé aux partenaires sur le “Hashtag Counter API”
https://developers.facebook.com/docs/hashtag_counter/v2.2 - Un pan de l’API malheureusement réservé aux partenaires sur le “Trends API”
https://developers.facebook.com/docs/trends/v2.0