Le FQL avec l’api facebook
Api facebook offre généreusement une bonne partie de sa base données via le FQL.
Nous allons voir dans ce tutoriel comment exploiter au mieux ces données.
Dans ce tutoriel, il est nécessaire d’avoir des bases en SQL.
Le FQL qu’es-ce ce que c’est ?
On pourrait dire que le FQL c’est le SQL de facebook. Mais en fait, bien qu’il ressemble au sql il n’en est rien, parce que le FQL
est interprété et traité (par l’API facebook).
Oui, pour nous, ça change rien ?
Contrairement au SQL, on ne peut pas modifier les données (UPDATE,DELETE,UPDATE).
De plus il est évident que facebook nous ne donne pas la possibilité de récupérer toute sa base de données.(il est pas fou facebook:)) Il faut forcément un identifiant (d’une personne, un groupe …) pour accéder aux informations.
Ne vous inquiéter pas si le FQL ne vous paraît pas clair, avec quelques exemples vous comprendrez tout de suite ce que je veux dire :).
Notre première requête FQL
Déjà on va se connecter à notre API.
// on charge la librairie facebook require_once 'lib-facebook/facebook.php'; // on définit la clé et le code secret $sAppapikey = CLE; $sAppsecret = CODE SECRET; // on se connecte à facebook par la création d'un objet Facebook $oFacebook = new Facebook($sAppapikey, $sAppsecret); // on demande à l'utilisateur de se loguer $oFacebook->require_login(); //on récupère l'id de l'utilisateur $sUser_id = $oFacebook->user;
On va pas faire compliquer pour notre première requête FQL, on va juste récupérer les informations principales de
l’utilisateur en cours. C’est à dire son nom, prénom, date de naissance,sexe,photo.
//notre requête FQL $sQuery = 'SELECT first_name,last_name,birthday,sex,pic_big FROM user WHERE uid=' . $sUser_id; // information de notre utilisateur $aUserInformation = $oFacebook->api_client->fql_query($sQuery);
Comme vous le voyez nous avons interrogé la table user pour récupérer les informations de l’utilisateur en cours.
Par défaut le résultat retourné est sous forme de tableau.
Maintenant c’est pas compliqué pour mettre tout ça en forme
// affichage des données echo '<h1>Mes informations</h1><br/>'; echo 'nom : '.$aUserInformation[0]['last_name'].'<br/>'; echo 'prenom : '.$aUserInformation[0]['first_name'].'<br/>'; echo 'date de naissance : '.$aUserInformation[0]['birthday'].'<br/>'; echo 'sexe : '.$aUserInformation[0]['sex'].'<br/>'; echo 'photo :<br/> <img src=\''.$aUserInformation[0]['pic_big'].'\'/>';
Voila ce que ça donne :
Voila nous avons fait notre première requête. On va pouvoir savoir tout sur nos utilisateurs :p.
Stocker ces informations sur une base de données:
Il est toujours intéressant de stocker les informations sur une base de données. Il est bien important d’optimiser
votre base en fonction de votre application (et non de la base facebook).
Par exemple pour le sexe plutôt que stocker male ou female, il est plus intéressant de stocker 2 id différents qui feront référence à une table.
Si vous stockez les informations de facebook pour être en toute légalité, n’oubliez pas de faire un tour à la cnil pour faire une déclaration de fichier.
La base de données Facebook
Vous pouvez avoir toute la structure de la base de données facebook sur la documentation.Hélas elle n’est qu’en anglais
Actuellement il y a 23 tables que l’ont peut interroger. Cela fait une quantité astronomique de données que l’on peut récupérer.
Il est essentiel de bien comprendre l’utilité de chaque table et surtout de savoir faire le tri entre toutes ses données.
note sur la documentation : en FQL il est nécessaire d’utiliser un critère (clause WHERE)
sur un élément marqué par une étoile “*”.
Dans cette exemple, pour récupérer les information d’un utilisateur on a besoin forcément de son uid ou de son name.
Bon si vous n’êtes pas motivé pour éplucher toute la doc, très prochainement un tutoriel sur les données clés de facebook va voir le jour.
En attentant vous pouvez toujours poster un commentaire pour une remarque ou une interrogation.







août 4th, 2009 at 13 h 56 min
bah merci grave , j’ai trop aimer tes tutoriel sur API de facebook
mais le sexe de l’utilisateur ne s’affiche pas pour moi
bizare
août 12th, 2009 at 19 h 39 min
Le tuto est bien foutu, mais je n’ai pas réussi à l’installer ! Il me manque surement des fichiers à installer…
Est ce que vous pouvez m’aider ?
Cordialement
Steff
octobre 5th, 2009 at 22 h 19 min
Vraiment du super boulot…Merci beaucoup pour tout ces articles sur l’API Facebook…
octobre 22nd, 2009 at 8 h 27 min
Quelqu’un aurait le MCD de Facebook, juste comme ca, sinon les articles sont très bien.
Merci
octobre 28th, 2009 at 12 h 38 min
Génial, ton tuto !
J’ai juste une petite question : Les infos ne s’affichent pas dans un beau cadre facebook. Est-ce normal ? Sinon, d’où ça vient ?
novembre 3rd, 2009 at 14 h 30 min
Merci pour ces tutos.
Les developpeurs sont-ils consideré comme des amis ? Autrement dit, un developpeur peut avoir accès à toutes les infos de la base sans etre ami de l’utilisateur de l’application ?
C’est fou comme concept ! Je pensais que FB uniquement avait toutes les infos mais en fait n’importe qui peut avoir n’importe quelle info du moment que l’utilisateur autorise l’application on dirait. Ca me fait froid dans le dos. Mais puisque je developpe un peu, je vais en profiter. C’est le hack à portée de tous ce truc.
novembre 16th, 2009 at 0 h 00 min
Bonjour,
J’obtient une erreur “Fatal error: Cannot use string offset as an array in /home…”
Il refuse de récupérer $aUserInformation[0]['first_name']
Les exemples de facebook ne marchent pas non plus.
Pourriez vous m’aider ?