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
.
<?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 ?
avril 28th, 2010 at 11 h 25 min
Bonjour,
moi aussi pas moyen d’afficher le FBML ! même en changeant la valeur iframe en FBML dans les paramètres de l’application… En iframe ça marche et en FBML il m’affiche:
Erreurs pendant le chargement de la page de l’application
L’URL http://localhost/connectfacebook/?fb_sig_in_iframe=1&fb_sig_iframe_key=33e75ff09dd601bbe69f351039152189&fb_sig_locale=fr_FR&fb_sig_in_new_facebook=1&fb_sig_time=1272448520.4876&fb_sig_added=0&fb_sig_api_key=4f7d485114392cdc6726dea7faaf5a6f&fb_sig_app_id=118605271492786&fb_sig=dd2f6862f1319f1105141c49c812a681&session=%7B%22session_key%22%3A%222.gjhUxrD0KU4_PsRsGDZaKA__.3600.1272452400-1562898958%22%2C%22uid%22%3A1562898958%2C%22expires%22%3A1272452400%2C%22secret%22%3A%22gjhUxrD0KU4_PsRsGDZaKA__%22%2C%22sig%22%3A%2288274059f789a83d54ea5724ae87eca0%22%7D n’est pas valide.
Veuillez réessayer plus tard. Nous vous prions de patienter pendant que les développeurs de Covivo et Facebook résolvent le problème. Merci.
mai 3rd, 2010 at 18 h 50 min
require_login n’est plus dans l’api non? j’ai l’impression que pas mal de trucs ont changé, et que du coup plein de tutos sont obsolètes, j’ai passé la journée à essayer d’utiliser les balises fbml mais sans succès.
Quelqu’un aurait-il un tutorial à jour?
Par avance merci
mai 12th, 2010 at 15 h 10 min
Tsuka > figures toi que je me mets juste à facebook et justement je galerais depuis hier avec le require_login…
en regardant dans la classe que tu dois toi aussi avoir recupere sur github, on voit que la fonction n’est plus présente ! en revanche je n’ai pas encore trouvé comment faire. Par contre, si tu récupères l’ancienne version, donc la v0.1.0 tout fonctionne parfaitement. Il faudrait trouver le pendant mais en attendant tu as deja une soluce. et oui… tous les tutos sont obsoletes
mai 12th, 2010 at 16 h 19 min
Bonjour tout le monde,
Après une longue absence (à cause d’un gros projet) je reviens avec le plein de nouveaux tutos !
D’ici la fin de la semaine une mise à jour des tutoriels facebook sera aussi mise en ligne sur waanser (C’est vrai que ces tutos ont pris la poussières).
Merci beaucoup pour vos commentaire, je prendrai le temps d’y répondre.
Roul
mai 20th, 2010 at 16 h 00 min
Bonjour à tous,
Déjà merci pour tout, c’est bien clair et ça le fait
Cependant après un après-midi d’essai je tombe toujours sur la même erreur :
Parse error: syntax error, unexpected T_NEW in ../facebook.php on line 3
Je désespère un peu là donc si quelqu’un peut m’éclairer je suis preneur.
Merci d’avance !
mai 27th, 2010 at 17 h 56 min
Merci et bravo pour ce tuto clair et en Français !
Par contre j’ai pris la derniere(je pense) librairie facebook.php et il n’y a plus dans celle-ci les fonctions require_login() ni friends_get()ces deux appels me renvoiengt cette erreur :
Fatal error: Call to a member function friends_get() on a non-object in
ais je raté quelques choses ?
Merci d’avance
mai 27th, 2010 at 18 h 43 min
bon petit rectificatif :
(
j’ai donc repris tous les fichiers d’ici librairie examples …
et j’ai ceci
Fatal error: Call to undefined method Facebook::require_login() in /homez.31/miitoc/www/face/connexion.php on line 10
je n’y comprend plus rien
si quelqu’un pourrait me mettre sur la bonne voie…
Merci
juin 4th, 2010 at 23 h 10 min
pareil : Fatal error: Call to undefined method Facebook::require_login()
une idée ?
août 7th, 2010 at 13 h 08 min
Bonjour,
je découvre le language FBML…
Voilà les codes que j’ai rentrés dan l’encart fbml, pour ma page d’accueille F.B
J’enregistre les modifs, je me déconnecte, je retrouve ma page afin de voir le résultat… Rien du tout
Pouvez vous m’aider
merci
août 26th, 2010 at 11 h 11 min
Salut,
Depuis hier je fais le tour du net pour essayer de trouver des infos pour créer une application Facebook, et malheureusement c’est l’échec total.
Que ce soit les codes que je trouve des sites réputés ou les tuto sur le site de facebook, rien ne marche jamais (meme en copié/collé).
Du coup je suis complètement paumé.
Si quelqu’un d’expérimenté pouvait me conseiller un site qui me permette d’apprendre à développer une appli facebook, ce serait super sympa de sa part.
Merci