2. Sommaire Création de l’application dans facebook Langages pour facebook (PHP, FBML, FQL) Includes (img, script, css) Envoi de mail/notification Statistiques Consoles de test Liens
3. Intro Objectif : créer une application intégrée au site de facebook, accessible depuis le catalogue par les utilisateurs identifiés et accédant à leur profil. Application codée en PHP Pages imbriquées dans l’interface de facebook, appelées canevas Première étape : créer l’application dans facebook
4. Activer le mode développeur Pour la première application : http://www.facebook.com/developers/
8. PHP Code PHP classique dans lequel on peut appeler des fonctions propres à facebook afin d’accéder à des données sur les utilisateurs Deux dossiers à placer dans le site (par ex : dans /include/) : php footprints Un fichier à inclure dans le code PHP : require_once('include/php/facebook.php');
9. PHP Créer l’objet facebook permettant d’accéder aux fonction de l’API Pré requis : Clé API Clé secrète Fournis sur la page de l’application : http://www.facebook.com/developers/apps.php
10. PHP Création de l’objet : $facebook = new Facebook($cleAPI,$cleSecrete); Cet objet facebook est nécessaire sur toutes les pages où l’on souhaite accéder à des données du site Utilisation de $facebook, exemple : $fb_user = $facebook->require_login(); (force l’utilisateur à être loggé pour accéder à la page, et renvoi son id)
11. FBML Balises de type HTML interprétées par facebook afin d’afficher des éléments de design sur facebook. Exemples : <fb:nameuid="$tagger" /> Affiche le prénom et le nom de l’utilisateurpossedantl’id, dans un lien redirigeantvers son profil personnel Ongletsintégrés au design : <fb:tabs> <fb:tab-itemhref="myphotos.php" title="My Photos" selected="true"/> <fb:tab-itemhref="recentalbums.php" title="Recent Albums" /> </fb:tabs>
12. FBML Catégories de tag FBML fournis par facebook pour le design de l’application :
13. FQL Langage de requêtes sur les tables de facebook Principales différences avec MySQL : « SELECT * » interdit -> lister tous les champs Pas de jointure, toujours une seule table dans le FROM (utiliser IN) Pas de : JOIN, ORDER BY, GROUP BY, LIMIT
17. FQL Exemple d’éxécution d’une requête FQL avec PHP $uid = $facebook->require_login(); $req = "SELECT first_nameFROM user WHERE uid=$uid"; $res = $facebook->api_client->fql_query($req); $user_name = $res[0]["first_name"];
18. Accès aux données Lors de la première visite de l’utilisateur sur l’application facebook, cette fenêtre apparait : C’est seulement après avoir cliqué sur « Autoriser » que l’on pourra accéder aux données par les méthodes décrites précédemment
19. Includes Insertion d’images : Chemin relatif interdit : mettre le chemin complet sur l’adresse du serveur <imgsrc="http://172.22.224.222/sondages/img/site/bar.png" /> Insertion de script : Chemin complet également : <script src="http://foo.com/bar.js"></script> Versionning nécessaire à cause de la mise en cache automatique (voir slide suivant)
20. Includes Insertion de Feuille de style CSS : Peut être fait avec un link html : <link rel="stylesheet" type="text/css" media="screen" href="http://yourapp.com/stylesheets/style.css?v=1.0" /> Cette solution nécessite de changer la version à chaquechangement à cause de la mise en cache. Peutêtre fait automatiquement avec : $ts = filemtime("bar.js"); print "<script src=quot;http://foo.com/bar.js?ts=$tsquot;></script>"; Sinon, inclure avec PHP : echo "<style>"; echohtmlentities(file_get_contents('style/facebook.css', true)); echo "</style>"; (http://wiki.developers.facebook.com/index.php/Include_files)
21. Envoi de mail Il est impossible d’obtenir l’adresse email de l’utilisateur Il est cependant possible d’envoyer un mail à l’utilisateur via l’application.
22.
23. Il faut que l’utilisateur ai autorisé l’application et l’envoi de mail par l’application pour recevoir les emails envoyés par cette méthode
24. On peut lui permettre facilement d’accepter l’envoi de mail grace à :
27. Envoi de notifications Méthode : $text = "L’application X vous envoie une <b>invitation</b>"; $type = "app_to_user"; $result = $facebook->api_client->notifications_send($fb_uid,$text,$type);
28. Mails / Notifications Le nombre d’envoi de mails et de notifications par jour par application est limité. Il est possible de connaitre ces limites grâce à la méthode de l’API : Admin.getAllocation
29. Propagation de l’application Il est très simple d’insérer l’interface d’invitation à une invitation. Avec 2 balises FBML, on affiche la liste des amis de l’utilisateur dans laquelle il peut sélectionner ceux avec qui il souhaite partager l’application, puis envoyer automatiquement l’invitation Code FBML sur le slide suivant
30. Propagation de l’application <fb:request-form action="index.php" method="POST" invite="true" type="YOUR APP NAME" content="Yourtextgoeshere. <?phpechohtmlentities("<fb:req-choice url=quot;YOUR CANVAS URLquot; label=quot;AuthorizeMy Applicationquot;")?>" > <fb:multi-friend-selector showborder="false" actiontext="Invite yourfriends to use YOUR APP NAME."> </fb:request-form>
31. Statistiques Facebook fournit des statistiques de fréquentation, de performance et d’interaction avec les utilisateur pour chaque application.
39. Liens Librairie client facebook : http://svn.facebook.com/svnroot/platform/clients/packages/facebook-platform.tar.gz Récapitulatif des applications : http://www.facebook.com/developers/apps.php Wiki Documentation : http://wiki.developers.facebook.com/index.php/Main_Page Tables FQL : http://wiki.developers.facebook.com/index.php/FQL_Tables Descriptions données statistiques : http://wiki.developers.facebook.com/index.php/Application_Metrics_-_Feature_Events Console de test : http://developers.facebook.com/tools.php Description de l’anatomie d’une application : http://developers.facebook.com/get_started.php?tab=anatomy Principes de base http://developers.facebook.com/get_started.php?tab=principles Librairie .NET : http://facebook.codeplex.com/