API facebook et le FBML (Partie 1)

API facebook et le FBML (Partie 1)

sommaire :

  1. Le FBML
  2. Afficher les informations de nos amis
  3. Utiliser les médias qu'offre facebook
 

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

facebook

facebook



<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 :
facebook

facebook

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

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.

Note de l'article




1 Star2 Stars3 Stars4 Stars5 Stars (9 votes, moyenne: 4,22 max : 5)
Loading ... Loading ...

  1. Thomas Says:

    Merci pour cet article simple et clair :)

  2. farabel Says:

    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!

  3. roul Says:

    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. :)

  4. farabel Says:

    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?

  5. nokol Says:

    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

  6. Cymon Says:

    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,

  7. Florian Laffont Says:

    Merci j’ai pour projet une traduction de l’api sa tinteresse di partisiper?

  8. Shizuarika Says:

    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

  9. farabel Says:

    @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 !

  10. Wandroll Says:

    @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

  11. 6 conseils pour construire une Fan Page Facebook d’entreprise efficace | Erwan Le Nagard Says:

    [...] de Fan Pages Facebook personnalisées – L’application Static FBML -  Tutoriel FBML - Console de développement - Wiki des [...]

  12. Petit Raptor Says:

    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 ?

  13. Aenima Says:

    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.

  14. Tsuka Says:

    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

  15. olivier Says:

    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 :(

  16. roul Says:

    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

  17. Yann Says:

    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 !

  18. Skippy Says:

    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

  19. Skippy Says:

    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

  20. jerome Says:

    pareil : Fatal error: Call to undefined method Facebook::require_login()

    une idée ?

  21. andre Says:

    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

  22. Crazyday Says:

    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

Donner votre avis :