API facebook et le FBML (Partie 1)
Nous allons voir dans cette article, le langage FBML (Facebook Markup Langage) qui, au niveau de la syntaxe s’approche du html.
C’est grâce à ce langage que l’on va pouvoir manipuler facilement l’affichage des informations que Facebook a stockées sur l’utilisateur (l’individu qui parcours notre gadget).
Pour suivre ce tutoriel, il faut savoir se connecter sur l’API Facebook, mais si ce n’est pas le cas, pas de panique ! Il faut juste lire cet article.
Le FBML
Le langage FBML (Facebook Markup Langage) est interprété par le moteur Facebook. Tout comme le moteur PHP, celui-ci va récupérer le code source, faire du traitement et enfin renvoyé le résultat en HTML. Vous n’êtes pas obligé d’utiliser le FBML pour développer votre application Facebook, mais il est largement conseillé puisqu’il va nous faciliter grandement la vie.
Pour une meilleur compréhension du FBML, nous allons développer une application qui mettra en valeur toute les informations sur différents contacts (amis ou pas). Il est bien évident que cet application n’apportera aucun service en plus, mais il aura l’avantage de vous faire découvrir les possibilités que nous offrent le FBML.
Il faut savoir aussi que le FBML apporte tous les mois son lot de nouvelles fonctions, ce tutoriel ne pourra pas vous fournir la liste exhaustive de ce langage. Mais pas de panique amis développeurs, tout l’essentiel sera là !
Toutefois, voici la liste exhaustive et mise à jour régulièrement des fonctions du FBML, (aussi n’hésitez pas à poster un commentaire sur une fonction que je n’aurai pas expliqué).
Bon fini de chipoter, let’s go!
afficher les informations de nos amis
Pour plus de simplicité, j’ai fait appel à un fichier php qui se connecte à Facebook automatiquement.
Je l’ai appelé connexion.php
<?php // on charge la librairie facebook require_once 'lib-facebook/facebook.php'; // on défini la clé et le code secret $sAppapikey = 'VOTRE CLE'; $sAppsecret = 'VOTRE CODE SECRET'; // on se connecte à facebook par la creation d'un objet Facebook $oFacebook = new Facebook($sAppapikey, $sAppsecret); // on demande à l'utilisateur de se loguer $sUser_id = $oFacebook->require_login(); ?>
<fb:header> : la balise qui affiche un titre de notre application
<fb:header>Mes amis</fb:header>
Comme base, nous allons afficher une liste de 5 de nos amis.
Et petit à petit nous allons afficher toute sorte d’information sur eux :D.
<?php
// on se connecte à facebook
require_once 'connexion.php';
?>
<fb:header>Mes amis</fb:header>
<br/><br/>
<?php
//on récupére les 5 premiers amis de l'utilisateurs
$aFriends = $oFacebook->api_client->friends_get();
$aFriends = array_slice($aFriends, 0, 5);
// on affiche leurs informations à partir de leur identifiant
foreach ($aFriends as $iKey => $sFriend) {
echo '<h1> Ami '.($iKey+1).'</h1><br/>';
echo '<div>';
echo 'Identifiant : '.$sFriend;
echo '</div>';
echo '<br/><br/>';
}
?>
Pour un ami voilà ce qu’ affiche notre gadget :

Je l’admets, on a rien du tout comme information, mais on va vite remédier à ça, avec tout ce que le FBML va nous offrir ^^.
Nous allons afficher les photos de nos amis en utilisant la balise fb:mediaheader:
Dans notre boucle il suffit d’entrer :
echo '<div>'; echo 'Identifiant : '.$sFriend.'<br/>'; echo '<fb:mediaheader uid="'.$sFriend.'"/>'; echo '</div>';
Déjà ça rend un peu mieux :

facebook FBML
Qui est mon ami ?
On va maintenant demander à Facebook si la liste de contacts sont bien nos amis.
<fb:if-is-friends-with-viewer uid=”IDENTIFIANT UTILISATEUR”>
c’est mon ami
<fb:else>
ce n’est pas mon ami
</fb:else>
</fb:if-is-friends-with-viewer>
foreach ($aFriends as $iKey => $sFriend) {
echo '<h1>';
echo '<fb:if-is-friends-with-viewer uid="'.$sFriend.'">';
echo 'Ami ';
echo '<fb:else>Inconnu </fb:else>';
echo'</fb:if-is-friends-with-viewer>';
echo ($iKey+1).'</h1><br/>';
echo '<div>';
echo 'Identifiant : '.$sFriend.'<br/>';
echo '<fb:mediaheader uid="'.$sFriend.'"/>';
echo '</div>';
echo '<br/><br/>';
}
Là vous remarquez, que ça n’a rien changer à notre page. Normal, vu que l’on a que des amis.
Pour faire le test sur d’autre personnes, il suffit d’entrer des nouveaux identifiants dans notre tableau $aFriends.
$aFriends[]=15632748619; // jacques chirac $aFriends[]=1619545751; // le père noel $aFriends[]=1605863542; // charles le singe
Voila, vous savez maintenant les bases du FBML, dans la prochaine partie nous verrons la liste
beaucoup plus complète des balises FBML.
La seconde partie est en ligne, elle traite la partie média du FBML.


(9 votes, moyenne: 4,22 max : 5)

février 11th, 2009 at 17 h 07 min
Merci pour cet article simple et clair
mai 6th, 2009 at 13 h 06 min
Hello.
Je suis tombée sur ton site hier et je le trouve très bien.
J’ai une petite question à te poser : je suis en train de développer une application Facebook et je voudrais savoir si je peux mixer PHP 5 et FBML.
L’idéal serait d’utiliser le FBML uniquement pour récupérer mes amis et envoyer une invitation et tout le reste en PHP5 (boutons, texte area).
Je sais qu’il existe ces éléments en FBML mais ensuite, pour faire des requêtes, c’est pas top (puisque d’après ton article sur FQL, on ne peut faire que des “SELECT”) et donc, j’aimerai utiliser du SQL.
Merci d’avance pour ta réponse!
mai 6th, 2009 at 14 h 30 min
Salut,
Merci pour vos commentaires :).
Farabel, tu peux très bien mixer le FBML et le PHP.
Le FBML est surtout utile pour faire des beaux formulaires.
C’est juste de l’affichage.
Après le FQL te sera utile pour récupérer les informations sur tes amis.
Une fois que tu les auras récupérées , rien ne t’empêche de les stocker dans ta propre base de données et faire ce que tu veux avec (les modifier, supprimer …)
Si ça te parait trop vague n’hésite pas à me le dire.
mai 12th, 2009 at 15 h 40 min
Je te remercie de ta réponse!!
Je suis en train de tester mais bon, toujours un nouveau problème..
Je m’explique : en index, un bouton doit être affiché. Cependant, je préfère le faire en html/php (bouton image) et ensuite, lorsque l’on clique, on arrive sur une page avec tous les amis répertoriés. Si je configure l’application en FBML, le bouton ne s’affiche pas et si je mets en iFrame, les amis ne s’affichent pas..
J’avais l’idée d’ajouter la balise en insérant une url mais c’est horrible parce que j’ai un cadre tout autour..
Ma question est : je dois laisser en FBML ou en iFrame?
juin 26th, 2009 at 12 h 10 min
j ai 2 pade php index et article
pour afficher les images de mes contacts il ça marche ce code mais donc la page article il ça marche pas je sais pa pourquoi
plz aide moi
merci d avance
septembre 7th, 2009 at 9 h 04 min
Super !
Ce matin en me levant, j’ai eu l’idée d’une apli FB, et avec tes conseils, je vais faire ça les doigts dans le nez… Merci beaucoup !!!
Bonne continuation à toi et à ton site…
Cordialement,
septembre 24th, 2009 at 12 h 51 min
Merci j’ai pour projet une traduction de l’api sa tinteresse di partisiper?
octobre 5th, 2009 at 22 h 03 min
Bonjour,
merci pour ce tuto en premier lieu,
j’ai un problème l’api ne veut pas m’afficher les images des contacts, j’ai même essayé avec les noms cela ne fonctionne pas!!!
Quelqu’un aurait-il une idée
merci
octobre 21st, 2009 at 10 h 57 min
@Shizuarika : l’idéal serait de voir le bout de code pour afficher les images de tes contacts.. comme ça on verra plus clair ton problème !
octobre 23rd, 2009 at 8 h 33 min
@Shizuarika : ça m’a fait le même problème au début,
vérifie dans le tableau d’administration de ton application, dans l’onglet Canvas que tu a bien coché FBML et pas iFrame sinon il n’affichera pas les images
décembre 13th, 2009 at 18 h 08 min
[...] de Fan Pages Facebook personnalisées - L’application Static FBML - Tutoriel FBML - Console de développement - Wiki des [...]
décembre 23rd, 2009 at 21 h 07 min
Bonjour, il y a quelque chose que je n’arrive pas du tout à comprendre.
J’espère que le problème ne viens pas de mon hébergeur mais, moi, avec ce code dans mon index.php:
Mes amis
api_client->friends_get();
$aFriends = array_slice($aFriends, 0, 5);
// on affiche leurs informations à partir de leur identifiant
foreach ($aFriends as $iKey => $sFriend) {
echo ”;
echo ”;
echo ‘Ami ‘;
echo ‘Inconnu ‘;
echo”;
echo ($iKey+1).”;
echo ”;
echo ‘Identifiant : ‘.$sFriend.”;
echo ”;
echo ”;
echo ”;
}
?>
cela me donne ça:
Mes amis
Ami Inconnu 1
Identifiant : 1064231110
Ami Inconnu 2
Identifiant : 1172393373
Ami Inconnu 3
Identifiant : 1293094174
Ami Inconnu 4
Identifiant : 1358974022
Ami Inconnu 5
Identifiant : 1418653575
Est-ce que ce serais mon hébergeur qui ne prend pas en compte le FBML ?