
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Waanser &#187; Api Facebook</title>
	<atom:link href="http://www.waanser.com/category/php/api-facebook/feed" rel="self" type="application/rss+xml" />
	<link>http://www.waanser.com</link>
	<description>Un blog utilisant WordPress</description>
	<lastBuildDate>Wed, 07 Jul 2010 21:54:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>FBML techniques de propagation virales</title>
		<link>http://www.waanser.com/php/api-facebook/2147-fbml-api-facebook-les-techniques-de-propagation.html</link>
		<comments>http://www.waanser.com/php/api-facebook/2147-fbml-api-facebook-les-techniques-de-propagation.html#comments</comments>
		<pubDate>Fri, 05 Jun 2009 16:44:36 +0000</pubDate>
		<dc:creator>roul</dc:creator>
				<category><![CDATA[Api Facebook]]></category>

		<guid isPermaLink="false">http://www.waanser.com/?p=2147</guid>
		<description><![CDATA[La force d&#8217;une application facebook est le fait qu&#8217;elle peut toucher un grand nombre d&#8217;utilisateur très rapidement à un cout nul. Pour cela il faut savoir utiliser les techniques de propagation. Nous allons voir cela dans cet article. Les demandes d&#8217;ajouts Nous allons commencer par faire les demandes d&#8217;ajouts. Si vous ne l&#8217;avez déjà pas [...]]]></description>
			<content:encoded><![CDATA[<p>La force d&#8217;une application facebook est le fait qu&#8217;elle peut toucher un grand nombre d&#8217;utilisateur très rapidement à un cout nul. Pour cela il faut savoir utiliser les techniques de propagation. Nous allons voir cela dans cet article.</p>
<h2>Les demandes d&#8217;ajouts</h2>
<p>Nous allons commencer par faire les demandes d&#8217;ajouts.</p>
<hr />
Si vous ne l&#8217;avez déjà pas fait, pour pouvoir tester les notifications il est essentiel de rendre public votre application.<br />
Il faut donc que vous retourner dans les paramètres de votre application.<br />
Il faudra ensuite se rendre dans l&#8217;onglet <strong>Paramètres avancées</strong>, pour désactiver le mode bac à sable. (il devrait plutôt s&#8217;appeler mode développeur, non ? <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<div id="attachment_2128" class="wp-caption alignnone" style="width: 334px"><a href="http://media.waanser.com/2009/05/facebook8.jpg"><img class="size-full wp-image-2128" title="facebook8" src="http://media.waanser.com/2009/05/facebook8.jpg" alt="api facebook mode bac à sable" width="324" height="31" /></a><p class="wp-caption-text">api facebook mode bac à sable</p></div>
<p>Aussi, je vous conseille aussi de créer un deuxième compte plutôt que piquer celui de votre sœur <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Nous allons donc créer une page de demande d&#8217;ajout.</p>
<p>Voici ce que l&#8217;on va mettre, les explications sont juste en-dessous :</p>
<pre class="brush: html">
&lt;!-- demande d&#039;ajout --&gt;
&lt;fb:fbml&gt;
&lt;fb:request-form action=&quot;index.php&quot; method=&quot;POST&quot; invite=&quot;true&quot; type=&quot; De Malade &quot; content=&quot;Je suis sur que je te bats facilement au quizz.&quot;
&lt;?php echo htmlentities(&quot;&lt;fb:req-choice url=\&quot;http://apps.facebook.com/waanser/\&quot; label=\&quot;J&#039;accepte le défis\&quot;&quot;) ?&gt;&quot; &gt;
&lt;fb:multi-friend-selector showborder=&quot;false&quot; actiontext=&quot;Défie tes amis !&quot;&gt;
&lt;/fb:request-form&gt;
&lt;/fb:fbml&gt;
</pre>
<p>Voilà ce que ça va donner :</p>
<div id="attachment_2111" class="wp-caption alignnone" style="width: 432px"><a href="http://media.waanser.com/2009/05/facebook2.jpg"><img class="size-full wp-image-2111" title="facebook2" src="http://media.waanser.com/2009/05/facebook2.jpg" alt="demande d'ajouts " width="422" height="150" /></a><p class="wp-caption-text">facebook demande d&#39;ajouts </p></div>
<p>Même si c&#8217;est long, on va y aller pas à pas :</p>
<hr />
<dl>
<dt><strong>action = &laquo;&nbsp;index.php&nbsp;&raquo;</strong></dt>
<dd>Une fois le formulaire validé, l&#8217;application va nous rediriger vers la page index.php</dd>
<dt><strong>method = &laquo;&nbsp;POST&nbsp;&raquo;</strong></dt>
<dd>Tout comme les formulaires traditionnels, c&#8217;est la méthode d&#8217;envoie des données (POST ou GET)</dd>
<dt><strong>invite = &laquo;&nbsp;true&nbsp;&raquo;</strong></dt>
<dd>Pour indiquer que le formulaire est une invitation</dd>
<dt><strong><strong>type =  &nbsp;&raquo; De Malade &laquo;&nbsp;</strong></strong></dt>
<dd>C&#8217;est le texte qui va s&#8217;afficher à la fin de l&#8217;entête de l&#8217;invitation</dd>
<dt><strong>content = &laquo;&nbsp;Je suis sur &#8230;</strong></dt>
<dd>Le contenu du message</dd>
<dt><strong>&lt;fb:req-choice</strong></dt>
<dd>C&#8217;est pour créer un bouton</dd>
<dt><strong>url = &laquo;&nbsp;http://apps.facebook.com/waanser/&nbsp;&raquo;</strong></dt>
<dd>L&#8217;url que redirige la fenêtre</dd>
<dt><strong>label = &laquo;&nbsp;J&#8217;accepte le défis&nbsp;&raquo;</strong></dt>
<dd>Le message sur le bouton</dd>
<dt><strong>&lt;fb:multi-friend-selector</strong></dt>
<dd>La fenêtre où l&#8217;utilisateur choisit les amis à défier</dd>
</dl>
<hr />
<p>Eh oui, facebook nous laisse la possibilité de tout paramétrer <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h2>Les fils d&#8217;actualités</h2>
<p>Publier les fils d&#8217;actualités, est une des fonction phare de facebook.</p>
<p>Pour créer ces fils d&#8217;actualités, il faut dans un premier temps créer et enregistrer les maquettes d&#8217;évènements.</p>
<p>Pour enregistrer les maquettes de fils d&#8217;actualités c&#8217;est par <a href="http://developers.facebook.com/tools.php?feed">ici</a>.<br />
Vous avez reconnu ? C&#8217;est la page boîte à outil que facebook propose pour les développeurs.</p>
<hr />
Étape très difficile ^^<br />
La première étape sera de sélectionner l&#8217;application qui va utiliser la maquette.</p>
<div id="attachment_2168" class="wp-caption alignnone" style="width: 337px"><a href="http://media.waanser.com/2009/06/api_facebook.png"><img class="size-full wp-image-2168" title="api_facebook" src="http://media.waanser.com/2009/06/api_facebook.png" alt="api facebook" width="327" height="90" /></a><p class="wp-caption-text">api facebook</p></div>
<p>Vous avez la possibilité de faire 2 types d&#8217;actualités :</p>
<ul>
<li>les actualités standards</li>
<li>les actualités sur une ligne</li>
</ul>
<h2>Comment créer une maquette</h2>
<p>Vous tombez sur un panneau d&#8217;administration, c&#8217;est avec ça que l&#8217;on va faire notre fameuse maquette.</p>
<p>Là, c&#8217;est la structure de votre maquette :</p>
<div id="attachment_2117" class="wp-caption alignnone" style="width: 327px"><a href="http://media.waanser.com/2009/05/facebook3.jpg"><img class="size-full wp-image-2117" title="facebook3" src="http://media.waanser.com/2009/05/facebook3.jpg" alt="facebook template" width="317" height="52" /></a><p class="wp-caption-text">facebook template</p></div>
<p>On le devine tout seul, cette partie c&#8217;est le rendu :</p>
<div id="attachment_2118" class="wp-caption alignnone" style="width: 192px"><a href="http://media.waanser.com/2009/05/facebook4.jpg"><img class="size-full wp-image-2118" title="facebook4" src="http://media.waanser.com/2009/05/facebook4.jpg" alt="rendu maquette facebook" width="182" height="61" /></a><p class="wp-caption-text">rendu maquette facebook</p></div>
<p>Et enfin, c&#8217;est un exemple de données que l&#8217;on va appliquer dans la structure :</p>
<div id="attachment_2119" class="wp-caption alignnone" style="width: 336px"><a href="http://media.waanser.com/2009/05/facebook5.jpg"><img class="size-full wp-image-2119" title="facebook5" src="http://media.waanser.com/2009/05/facebook5.jpg" alt="maquette facebook" width="326" height="141" /></a><p class="wp-caption-text">maquette facebook</p></div>
<hr />
<a href="http://www.perdu.com">Perdu ?</a> <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Il faut savoir que la maquette est constituée d&#8217;une structure (qui ne changera jamais) et de données dynamique.<br />
On veut que notre file d&#8217;actualité ressemble à ça :</p>
<hr />
<div id="attachment_2120" class="wp-caption alignnone" style="width: 207px"><a href="http://media.waanser.com/2009/05/facebook6.jpg"><img class="size-full wp-image-2120" title="facebook6" src="http://media.waanser.com/2009/05/facebook6.jpg" alt="exemple maquette facebook" width="197" height="31" /></a><p class="wp-caption-text">exemple maquette facebook</p></div>
<p>Pour mieux comprendre, nous allons décomposer le message  :</p>
<p>donnée : <span style="color:red"> rouge </span><br />
structure : <span style="color:green"> vert </span><br />
<span style="color:red"><strong>Julien </strong></span><span style="color:green">maitrise </span><span style="color:red"> <strong>l&#8217;histoire</strong></span><span style="color:green"> à </span><span style="color:red"> <strong>65</strong></span><span style="color:green">%</span></p>
<p>Il savoir que facebook appel les données dynamiques ; <strong>un jeton</strong>.</p>
<p>Pour indiquer les données dynamiques, nous allons utiliser cette syntaxe :<em> {*nom du jeton*}</em><br />
La maquette va ressembler à ça :<br />
<em>{*actor*}</em> maitrise <em>{*theme*}</em> à <em>{*points*}</em> %</p>
<hr />
Si vous appuyez sur le bouton mettre l&#8217;aperçu à jour, vous aurez une belle erreur (Feed Story Preview Error)</p>
<div id="attachment_2121" class="wp-caption alignnone" style="width: 459px"><a href="http://media.waanser.com/2009/05/facebook7.jpg"><img class="size-full wp-image-2121" title="facebook7" src="http://media.waanser.com/2009/05/facebook7.jpg" alt="erreur prévualsisation maquette" width="449" height="213" /></a><p class="wp-caption-text">erreur prévualsisation maquette</p></div>
<p>En fait, votre maquette est bonne ! Mais pour que la prévisualisation se passe bien, il faut lui fournir un jeu de données. <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<hr />
Pour donner cet exemple, il suffit de se reporter dans la zone de texte : Exemple de données de modèle<br />
et mettre : <em>{&laquo;&nbsp;points&nbsp;&raquo;:&nbsp;&raquo;65&#8243;,&nbsp;&raquo;theme&nbsp;&raquo;:&nbsp;&raquo;l&#8217;histoire&nbsp;&raquo;}</em></p>
<p>Et là Miracle ! ça fonctionne <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><em>{*author*} </em> est un jeton par défaut que facebook met d&#8217;office pour afficher le nom de l&#8217;utilisateur.</p>
<hr />
<strong> Attention, vous devez passer (bouton ignorer) la prochaine étape (Créer un modèle d&#8217;actualité courte), sinon facebook va enregistrer cette dernière maquette.</strong></p>
<hr />
Si vous voulez faire une actualité courte, c&#8217;est par ici:</p>
<p>L&#8217;actualité courte permet d&#8217;afficher des médias comme les images :</p>
<p>Pour afficher les images, il faut continuer dans la partie : Exemple de données de modèle</p>
<p>Voici la syntaxe :</p>
<p><em>{&laquo;&nbsp;images&nbsp;&raquo;:[{"src":"url de li'mage", "href":"la cible du lien"}</em></p>
<p>Voici un exemple :</p>
<p><em>{"images":[{"src":"http://media.waanser.com/2009/05/genie.png", "href":"http://apps.facebook.com/waanser/"}</em></p>
<hr />
<p><strong>Créer un lien d'action</strong></p>
<p>Étape très importante, parce que c'est le lien qui va renvoyer l'utilisateur vers notre application.</p>
<div id="attachment_2131" class="wp-caption alignnone" style="width: 285px"><a href="http://media.waanser.com/2009/05/f.jpg"><img class="size-full wp-image-2131" title="f" src="http://media.waanser.com/2009/05/f.jpg" alt="api facebook lien d'action" width="275" height="32" /></a><p class="wp-caption-text">api facebook lien d&#39;action</p></div>
<hr />
Cette partie n&#8217;est pas compliquée, vous avez deux champs ;<br />
<strong>Texte de lien d&#8217;action</strong> : le texte du lien.</p>
<p><strong>URL de lien d&#8217;action</strong> : l&#8217;adresse de redirection du lien.</p>
<hr />
<div id="attachment_2132" class="wp-caption alignnone" style="width: 333px"><a href="http://media.waanser.com/2009/05/facebook9.jpg"><img class="size-full wp-image-2132" title="facebook9" src="http://media.waanser.com/2009/05/facebook9.jpg" alt="api facebook lien d'action" width="323" height="140" /></a><p class="wp-caption-text">api facebook lien d&#39;action</p></div>
<p>Vous avez plus qu&#8217;à passer à l&#8217;étape suivante, puis à cliquer sur <em>enregistre le lot de modèles</em>.<br />
Facebook va alors vous donner un bundle id<a href="http://media.waanser.com/2009/05/facebook10.jpg"><img class="alignnone size-full wp-image-2133" title="facebook10" src="http://media.waanser.com/2009/05/facebook10.jpg" alt="facebook10" width="442" height="101" /></a></p>
<p>Il faut bien le conserver, vous en aurez bientôt besoin.</p>
<h2>Utilisez la maquette dans votre application</h2>
<p>Nous allons commencer avec l&#8217;exemple le plus simple, celui où il y a qu&#8217;une seule ligne.</p>
<hr />
Nous allons donc créer un fichier php qui fera appel a notre maquette.<br />
Facebook impose d&#8217;utiliser le format JSON pour appeler la maquette et par la même occasion envoyer les données paramétrables.</p>
<p>{&laquo;&nbsp;content&nbsp;&raquo;: {&laquo;&nbsp;feed&nbsp;&raquo;: {&laquo;&nbsp;template_id&nbsp;&raquo;:identifiant de la maquette , &laquo;&nbsp;template_data&nbsp;&raquo;: {&laquo;&nbsp;nom du jeton 1&#8243;:&nbsp;&raquo;valeur du jeton 1&#8243;,&nbsp;&raquo;nom du jeton 2&#8243;:&nbsp;&raquo;valeur du jeton 2&#8243;} } }, &laquo;&nbsp;method&nbsp;&raquo;:&nbsp;&raquo;feedStory&nbsp;&raquo; }</p>
<hr />
Pour nous, ça va donner :</p>
<p>{&laquo;&nbsp;content&nbsp;&raquo;: {&laquo;&nbsp;feed&nbsp;&raquo;: {&laquo;&nbsp;template_id&nbsp;&raquo;:43745522324, &laquo;&nbsp;template_data&nbsp;&raquo;: {&laquo;&nbsp;points&nbsp;&raquo;:&nbsp;&raquo;65&#8243;,&nbsp;&raquo;theme&nbsp;&raquo;:&nbsp;&raquo;l&#8217;histoire&nbsp;&raquo;} } }, &laquo;&nbsp;method&nbsp;&raquo;:&nbsp;&raquo;feedStory&nbsp;&raquo; }</p>
<p>Le php propose une librairie pour manipuler le json, nous allons en bénéficier pour faire un beau feed json<br />
facilement paramétrable. <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<hr />
<pre class="brush: php">
$arr = array(
&#039;content&#039; =&gt; array(
&#039;feed&#039; =&gt; array(
&#039;template_id&#039; =&gt; 43745522324,&#039;template_data&#039; =&gt; array(
&#039;points&#039; =&gt; &#039;65&#039;, &#039;theme&#039; =&gt; &#039;l\&#039;histoire&#039;
)
)
),&#039;method&#039; =&gt; &#039;feedStory&#039;
);

echo json_encode($arr);
</pre>
<h2>Notification</h2>
<p>Nous allons voir comment générer des notifications, rassurez-vous, c&#8217;est beaucoup plus simple que les fils d&#8217;actualités <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Voici la syntaxe :</p>
<p><em>$oFacebook-&gt;api_client-&gt;notifications_send(DESTINATAIRE, MESSAGE, TYPE);</em></p>
<hr />
<strong>DESTINATAIRE </strong>: le destinataire de la notification<br />
<strong>MESSAGE </strong>: ça c&#8217;est le message à afficher<br />
<strong>TYPE </strong>: ça c&#8217;est le type de message, il y a 2 types possibles  :</p>
<ul>
<li>app_to_user =&gt; L&#8217;expéditeur c&#8217;est l&#8217;application</li>
<li>app_to_user =&gt; L&#8217;expéditeur c&#8217;est  l’utilisateur enregistré r</li>
</ul>
<hr />
<p>Voici un exemple d&#8217;utilisation :</p>
<pre class="brush: php">
$oFacebook-&gt;api_client-&gt;notifications_send($iUid, &#039;some info&#039;, &#039;user_to_user&#039;);
$oFacebook-&gt;api_client-&gt;notifications_send($iUid, &#039;some info&#039;, &#039;app_to_user&#039;);
</pre>
<p>Le rendu :</p>
<div id="attachment_2144" class="wp-caption alignnone" style="width: 213px"><a href="http://media.waanser.com/2009/05/not.jpg"><img class="size-full wp-image-2144" title="not" src="http://media.waanser.com/2009/05/not.jpg" alt="api facebook notification" width="203" height="104" /></a><p class="wp-caption-text">api facebook notification</p></div>
<p>Et voilà vous avez tous les outils en main pour propager votre application.</p>
<p>Bonne propagation <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.waanser.com/php/api-facebook/2147-fbml-api-facebook-les-techniques-de-propagation.html/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Les données clés de l&#8217;API facebook avec le FQL</title>
		<link>http://www.waanser.com/php/api-facebook/1308-les-donnees-cles-de-lapi-facebook-avec-le-fql.html</link>
		<comments>http://www.waanser.com/php/api-facebook/1308-les-donnees-cles-de-lapi-facebook-avec-le-fql.html#comments</comments>
		<pubDate>Sat, 04 Apr 2009 16:30:13 +0000</pubDate>
		<dc:creator>roul</dc:creator>
				<category><![CDATA[Api Facebook]]></category>

		<guid isPermaLink="false">http://www.waanser.com/?p=1308</guid>
		<description><![CDATA[Avec toutes les données que nous fournit l&#8217;api facebook il est facile de se perdre. Cette article va vous aider à y voir plus clair. Les statistiques avec la table Metrics Si vous voulez vendre de la publicité dans votre site, ou tout simplement connaitre le traffic de votre gadget il essentiel de connaitre les [...]]]></description>
			<content:encoded><![CDATA[<p>Avec toutes les données que nous fournit l&#8217;api facebook il est facile de se perdre.<br />
Cette article va vous aider à y voir plus clair.</p>
<h2>Les statistiques avec la table Metrics</h2>
<p>Si vous voulez vendre de la publicité dans votre site, ou tout simplement connaitre le traffic de votre gadget il essentiel de connaitre les statiques. Ces informations se trouvent dans la table <strong>Metrics</strong>.</p>
<p>Les statistiques se font sur une portion de temps. (ex : du 01/02/2009 au 01/03/2009).<br />
Pour définir cette portion de temps à notre table Metrics, il faut définir 2 champs ; <strong>end_time</strong> et <strong>period </strong>.</p>
<p><strong>end_time</strong> : la date de début de votre portion en <strong>timestamp </strong><br />
<strong>period </strong> : la durée en seconde de votre portion.</p>
<hr/>
Les informations qui me paraisse importantes :</p>
<p><strong>active_users </strong>: le nombre d&#8217;utilisateur unique<br />
<strong>canvas_page_views </strong>: le nombre de page vue<br />
<strong>unique_adds</strong> : le nombre de fois que votre application à été ajoutée.<br />
<strong>unique_removes</strong> : le nombre de fois que votre application à été enlevée.<br />
<strong>unique_blocks</strong> : le nombre de fois que votre application à été bloquée.<br />
<strong>unique_unblocks</strong> : le nombre de fois que votre application à été débloquée.</p>
<hr/>
Pour récupérer les statistiques ce n&#8217;est pas une chose aisée avec facebook.<br />
Déjà nous somme limité dans les périodes, on a le choix entre 86400 (1 jour), 604800(1 semaine) et 2592000(1 moi).<br />
Pour le timestamp il faut qu&#8217;il doit définit à 9 heure (j&#8217;ai pas bien compris).</p>
<p>C&#8217;est compliqué ? Je vais vous montrez un exemple.</p>
<pre class="brush: php">
$iTime = mktime(9, 0, 0, date(&#039;m&#039;)-1, date(&#039;d&#039;), date(&#039;Y&#039;)); // il ya 1 moi en timestamp
$sQuery = &#039;SELECT end_time, period, active_users, canvas_page_views  FROM metrics WHERE end_time =&#039;.$iTime.&#039; AND period = 2592000&#039;;
$aStatInformation = $oFacebook-&gt;api_client-&gt;fql_query($sQuery);
// un affichage bête et méchant
echo&#039;&lt;pre&gt;&#039;;
var_dump($aStatInformation);
echo&#039;&lt;/pre&gt;&#039;;
</pre>
<hr/>
Ce code source renvoi les statistiques du moi dernier</p>
<div id="attachment_1304" class="wp-caption alignnone" style="width: 272px"><a href="http://media.waanser.com/2009/03/fql3.jpg"><img src="http://media.waanser.com/2009/03/fql3.jpg" alt="fql" title="fql3" width="262" height="198" class="size-full wp-image-1304" /></a><p class="wp-caption-text">fql</p></div>
<p>Vous avez remarquez que l&#8217;on a pas récupérer ces quatre données<strong> unique_adds, unique_removes, unique_blocks, unique_unblocks</strong>.<br/><br />
C&#8217;est parce que facebook nous complique la tache.<br />
En effet si on veut récupérer ces données il faut que la portion de temps soit d&#8217;un jour (et non d&#8217;un mois).<br />
Pour récupérer ces données pour un mois on va faire un script à part :</p>
<pre class="brush: php">
$iDay = 1;// jour 1
$aResult = array(&#039;unique_adds&#039; =&gt; 0,&#039;unique_removes&#039; =&gt; 0,&#039;unique_blocks&#039; =&gt; 0,&#039;unique_unblocks&#039; =&gt; 0);
while($iDay&lt;31) // pour un mois
{	// on convertit notre date en time stamp
	$iTime = mktime(9, 0, 0, date(&#039;m&#039;), date(&#039;d&#039;)-$iDay, date(&#039;Y&#039;));
	$sQuery = &#039;SELECT unique_adds, unique_removes, unique_blocks, unique_unblocks  FROM metrics WHERE end_time =&#039;.$iTime.&#039; AND period = 86400&#039;;
	$aStatInformation = $oFacebook-&gt;api_client-&gt;fql_query($sQuery);
	if (is_array($aStatInformation)){//  on sotcke les infos
		foreach($aStatInformation[0] as $iKey =&gt; $iVal)
		{
			$aResult[$iKey]+=(int)$iVal;
		}
	}
	$iDay++;
}
// on affiche le résultat
echo&#039;&lt;pre&gt;&#039;;
var_dump($aResult);
echo&#039;&lt;/pre&gt;&#039;;
</pre>
<hr/>
Eh voila on à les informations qu&#8217;il nous faut <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<br/></p>
<h2>Cibler les utilisateurs avec les tables fan et groups</h2>
<p>Cibler les utilisateurs et un atout essentiel si vous voulez optimiser le rendement de vos pubs.<br />
La table <strong>fan</strong> permet de savoir quel page l&#8217;utilisateur est fan.<br />
<br/><br />
Voici comment faire pour récupérer ces pages. (biensur on a besoin de l&#8217;id utilisateur)</p>
<pre class="brush: php">
//on récupère l&#039;id de l&#039;utilisateur
$sUser_id = $oFacebook-&gt;user;
//récupérer les id des pages
$sQuery = &#039;SELECT page_id, type FROM page_fan	 WHERE uid=&#039; . $sUser_id.;
$aUserInformation = $oFacebook-&gt;api_client-&gt;fql_query($sQuery);
</pre>
<p><br/><br />
Les ids des pages nous parlent pas beaucoup. Mais ce n&#8217;est pas un problème, on va utiliser une autre table<br />
pour récupérer les informations de ces pages.<br />
La table <strong>page</strong> est une des plus grosses tables de facebook, voici ça <a href="http://wiki.developers.facebook.com/index.php/Page_(FQL)">structure</a>.</p>
<hr/>
Si vous utilisez souvent facebook, vous savez qu&#8217;une page peut recenser tout et n&#8217;importe quoi (une entreprise, un individu, un lieu, un événement &#8230;). Il n&#8217;est pas nécessaires de récupérer toutes les données (cela risque d&#8217;alourdir votre application et votre base de données).</p>
<p>Dans cet exemple nous allons récupérez l&#8217;essentiel (le nom, l&#8217;image représentative,le type, les informations générales et le nombre de page) </p>
<pre class="brush: php">
//on récupère l&#039;id de l&#039;utilisateur
$sUser_id = $oFacebook-&gt;user;

//on récupère les informations importantes
$sQuery = &#039;SELECT name, pic, type, website, general_info,  fan_count from, website page where page_id IN (SELECT page_id, type FROM page_fan	 WHERE uid=&#039; . $sUser_id.&#039;)&#039;;  

$aUserInformation = $oFacebook-&gt;api_client-&gt;fql_query($sQuery);
</pre>
<hr/>
La table <strong>group</strong> va permettre de savoir tout sur les groupes de l&#8217;utilisateur en cours</p>
<p>Rien de particulier sur cette table, on y accède de la même manière que pour la page <strong>fan</strong> :</p>
<pre class="brush: php">
//on récupère l&#039;id de l&#039;utilisateur
$sUser_id = $oFacebook-&gt;user;

// on récupère les informations du groupe
$sQuery = &#039;SELECT name, pic, description, group_type, group_subtype, website from group where gid IN (SELECT gid FROM group_member WHERE uid=&#039; . $sUser_id.&#039;)&#039;;  

$aUserInformation = $oFacebook-&gt;api_client-&gt;fql_query($sQuery);
</pre>
<hr/>
<h2>Les permissions avec la table Permissions</h2>
<p>Comme son nom l&#8217;indique, la table <strong>permissions</strong> va nous dire ce que notre gadget peut ou pas faire.<br />
Dans cette table ce qui va nous intéresser, c&#8217;est de savoir si on peut leur envoyer des sms ou des mails.<br />
ps : si on a l&#8217;autorisation, ce n&#8217;est pas une bonne raison pour faire du spam <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Voici la requête :</p>
<pre class="brush: php">
//on récupère l&#039;id de l&#039;utilisateur
$sUser_id = $oFacebook-&gt;user;

// les permissions pour l&#039;envoi de mail et de sms
$sQuery = &#039;SELECT email, sms FROM permissions WHERE uid=&#039; . $sUser_id;  

$aUserInformation = $oFacebook-&gt;api_client-&gt;fql_query($sQuery);
</pre>
<hr/>
Le résultat sera renvoyé sous la forme de booléen.<br />
 0 : on a pas la permission<br />
 1 : on a la permission</p>
<p>Pour avoir la permission il faut utiliser le fbml. plus précisément la balise <strong>&lt;fb:prompt-permission&gt;</strong></p>
<p>L&#8217;attribut perms est obligatoir puisque c&#8217;est lui qui va définir quelle autorisation à accorder. (pour nous ça sera <strong>sms </strong>et <strong>mail</strong>)</p>
<pre class="brush: html">
&lt;fb:prompt-permission perms=&quot;email&quot;&gt;Autorisez vous l&#039;application a envoyez des mails&lt;/fb:prompt-permission&gt;
</pre>
<p>Si l&#8217;utilisateur clique sur le lien, une fenêtre devrait apparaître :</p>
<div id="attachment_1409" class="wp-caption alignnone" style="width: 160px"><a href="http://media.waanser.com/2009/04/apifacebook.png"><img src="http://media.waanser.com/2009/04/apifacebook-150x150.jpg" alt="apifacebook" title="apifacebook" width="150" height="150" class="size-thumbnail wp-image-1409" /></a><p class="wp-caption-text">apifacebook</p></div>
<p> Voila nous avons fait le tour des données clé de l&#8217;api facebook. A travers ces exemples on a pu voir le fonctionnement de la base de données facebook. Comme je vous l&#8217;ai déjà dit, chaque donnée a son utilité, et c&#8217;est en fonction de vos projet que vous allez devoir choisir les données à récupérer. Le choix des données est une étape très importante, parce que vous pouvez manquez une information importantes ou alourdir votre base pour rien (à l&#8217;échelle de milliers d&#8217;utilisateurs, cela peut venir vite une catastrophe).</p>
<hr/>
Update : J&#8217;ai mis en ligne une documentation sur le fql, si vous êtes intéressé c&#8217;est <a href="http://www.waanser.com/documentation-base-de-donnees-facebook">par ici</a></p>
<hr/>
Si vous avez des questions, vous pouvez laissez un commentaire. <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.waanser.com/php/api-facebook/1308-les-donnees-cles-de-lapi-facebook-avec-le-fql.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Le FQL avec l&#8217;api facebook</title>
		<link>http://www.waanser.com/php/api-facebook/1362-le-fql-avec-lapi-facebook.html</link>
		<comments>http://www.waanser.com/php/api-facebook/1362-le-fql-avec-lapi-facebook.html#comments</comments>
		<pubDate>Tue, 31 Mar 2009 17:45:43 +0000</pubDate>
		<dc:creator>roul</dc:creator>
				<category><![CDATA[Api Facebook]]></category>

		<guid isPermaLink="false">http://www.waanser.com/?p=1362</guid>
		<description><![CDATA[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&#8217;avoir des bases en SQL. Le FQL qu&#8217;es-ce ce que c&#8217;est ? On pourrait dire que le FQL c&#8217;est le SQL de facebook. [...]]]></description>
			<content:encoded><![CDATA[<p>Api facebook offre généreusement une bonne partie de sa base données via le FQL.<br />
Nous allons voir dans ce tutoriel comment exploiter au mieux ces données.</p>
<p>Dans ce tutoriel, il est nécessaire d&#8217;avoir des bases en SQL.</p>
<h2>Le FQL qu&#8217;es-ce ce que c&#8217;est ?</h2>
<p>On pourrait dire que le FQL c&#8217;est le SQL de facebook. Mais en fait, bien qu&#8217;il ressemble au sql il n&#8217;en est rien, parce que le FQL<br />
est interprété et traité (par l&#8217;API facebook).<br/></p>
<p><strong><u>Oui, pour nous, ça change rien ?</u></strong></p>
<p>Contrairement au SQL, on ne peut pas modifier les données (UPDATE,DELETE,UPDATE).<br />
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&#8217;une personne, un groupe &#8230;) pour accéder aux informations.<br/></p>
<p> 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 <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<h2>Notre première requête FQL</h2>
<p>Déjà on va se connecter à notre API. </p>
<pre class="brush: php">
// on charge la librairie facebook
require_once &#039;lib-facebook/facebook.php&#039;;

// on définit la clé et le code secret
$sAppapikey = CLE;
$sAppsecret = CODE SECRET;

// on se connecte à facebook par la création d&#039;un objet Facebook
$oFacebook = new Facebook($sAppapikey, $sAppsecret);

// on demande à l&#039;utilisateur de se loguer
$oFacebook-&gt;require_login();

//on récupère l&#039;id de l&#039;utilisateur
$sUser_id = $oFacebook-&gt;user;
</pre>
<p>On va pas faire compliquer pour notre première requête FQL, on va juste récupérer les informations principales de<br />
l&#8217;utilisateur en cours. C&#8217;est à dire son nom, prénom, date de naissance,sexe,photo.</p>
<pre class="brush: php">
//notre requête FQL
$sQuery = &#039;SELECT first_name,last_name,birthday,sex,pic_big FROM user WHERE uid=&#039; . $sUser_id;  

// information de notre utilisateur
$aUserInformation = $oFacebook-&gt;api_client-&gt;fql_query($sQuery);
</pre>
<p>Comme vous le voyez nous avons interrogé la table <strong>user</strong> pour récupérer les informations de l&#8217;utilisateur en cours.</p>
<p>Par défaut le résultat retourné est sous forme de tableau.</p>
<div id="attachment_1296" class="wp-caption alignnone" style="width: 566px"><a href="http://media.waanser.com/2009/03/fql.jpg"><img src="http://media.waanser.com/2009/03/fql.jpg" alt="fql" title="fql" width="556" height="218" class="size-full wp-image-1296" /></a><p class="wp-caption-text">fql</p></div>
<p>Maintenant c&#8217;est pas compliqué pour mettre tout ça en forme</p>
<pre class="brush: php">
// affichage des données
echo &#039;&lt;h1&gt;Mes informations&lt;/h1&gt;&lt;br/&gt;&#039;;
echo &#039;nom : &#039;.$aUserInformation[0][&#039;last_name&#039;].&#039;&lt;br/&gt;&#039;;
echo &#039;prenom : &#039;.$aUserInformation[0][&#039;first_name&#039;].&#039;&lt;br/&gt;&#039;;
echo &#039;date de naissance : &#039;.$aUserInformation[0][&#039;birthday&#039;].&#039;&lt;br/&gt;&#039;;
echo &#039;sexe : &#039;.$aUserInformation[0][&#039;sex&#039;].&#039;&lt;br/&gt;&#039;;
echo &#039;photo :&lt;br/&gt; &lt;img src=\&#039;&#039;.$aUserInformation[0][&#039;pic_big&#039;].&#039;\&#039;/&gt;&#039;;
</pre>
<p>Voila ce que ça donne :</p>
<div id="attachment_1298" class="wp-caption alignnone" style="width: 193px"><a href="http://media.waanser.com/2009/03/fql1.jpg"><img src="http://media.waanser.com/2009/03/fql1.jpg" alt="fql" title="fql1" width="183" height="244" class="size-full wp-image-1298" /></a><p class="wp-caption-text">fql</p></div>
<p>Voila nous avons fait notre première requête. On va pouvoir savoir tout sur nos utilisateurs :p. </p>
<p>Stocker ces informations sur une base de données:</p>
<p>Il est toujours intéressant de stocker les informations sur une base de données. Il est bien important d&#8217;optimiser<br />
votre base en fonction de votre application (et non de la base facebook).<br />
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.<br />
Si vous stockez les informations de facebook pour être en toute légalité, n&#8217;oubliez pas de faire un tour à la <a href="http://www.cnil.fr">cnil </a>pour faire  une déclaration de fichier.</p>
<h2>La base de données Facebook</h2>
<p>Vous pouvez avoir toute la structure de la base de données facebook sur la <a href="http://wiki.developers.facebook.com/index.php/FQL_Tables">documentation</a>.Hélas elle n&#8217;est qu&#8217;en anglais <img src='http://www.waanser.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Actuellement il y a 23 tables que l&#8217;ont peut interroger. Cela fait une quantité astronomique de données que l&#8217;on peut récupérer.<br />
Il est essentiel de bien comprendre l&#8217;utilité de chaque table et surtout de savoir faire le tri entre toutes ses données.</p>
<p><strong>note sur la documentation :</strong> en FQL il est nécessaire d&#8217;utiliser un critère (clause <strong>WHERE</strong>)<br />
sur un élément marqué par une étoile &laquo;&nbsp;*&nbsp;&raquo;.</p>
<div id="attachment_1303" class="wp-caption alignnone" style="width: 503px"><a href="http://media.waanser.com/2009/03/fql2.jpg"><img src="http://media.waanser.com/2009/03/fql2.jpg" alt="fql" title="fql2" width="493" height="214" class="size-full wp-image-1303" /></a><p class="wp-caption-text">fql</p></div>
<p>Dans cette exemple, pour récupérer les information d&#8217;un utilisateur on a besoin forcément de son <strong>uid</strong> ou de son <strong>name</strong>.</p>
<p>Bon si vous n&#8217;ê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. <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>En attentant vous pouvez toujours poster un commentaire pour une remarque ou une interrogation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.waanser.com/php/api-facebook/1362-le-fql-avec-lapi-facebook.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Le FBML et les formulaires</title>
		<link>http://www.waanser.com/php/api-facebook/873-le-fbml-est-les-formulaires.html</link>
		<comments>http://www.waanser.com/php/api-facebook/873-le-fbml-est-les-formulaires.html#comments</comments>
		<pubDate>Wed, 11 Feb 2009 23:00:44 +0000</pubDate>
		<dc:creator>roul</dc:creator>
				<category><![CDATA[Api Facebook]]></category>

		<guid isPermaLink="false">http://www.waanser.com/?p=873</guid>
		<description><![CDATA[Dans ce tutoriel nous allons voir comment faire des formulaires tout beaux tout propres avec le FBML. Mon formulaire façon facebook Bien sur vous pouvez toujours utiliser le HTML pour faire vos formulaires, mais le FBML nous facilite la tache. Puisqu&#8217;en quelque balise le formulaire se génère automatiquement avec la mise en forme facebook. &#60;fb:editor [...]]]></description>
			<content:encoded><![CDATA[<p>Dans ce tutoriel nous allons voir comment faire des formulaires tout beaux tout propres avec le FBML.<br />
<span id="more-873"></span></p>
<h2>Mon formulaire façon facebook</h2>
<p>Bien sur vous pouvez toujours utiliser le HTML pour faire vos formulaires, mais le FBML nous facilite la tache.<br />
Puisqu&#8217;en quelque balise le formulaire se génère automatiquement avec la mise en forme facebook.</p>
<p><strong>&lt;fb:editor &gt;</strong></p>
<p>C&#8217;est avec cette balise que nous allons déclarer notre formulaire.</p>
<p><u>Attribut obligatoire :</u></p>
<p><strong>action</strong>: l&#8217;adresse ou le formulaire va rediriger l&#8217;utilisateur.</p>
<p><u>Attributs facultatifs :</u></p>
<p><strong>width</strong> : la taille maximal d&#8217;un champ (par défaut : 425).<br />
<strong>labelwidth</strong> : la taille maximal de la nomination du champ(par défaut : 75).</p>
<p>Pour ce tutoriel nous allons dire que nous voulons faire un formulaire ou l&#8217;utilisateur peut donner un avis sur les derniers films qui sont parus au cinéma. (je sais, l&#8217;exemple est bateau, mais j&#8217;arrive pas à trouver mieux <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</p>
<p>La base de notre formulaire va donner ça :</p>
<pre class="brush: html">
&lt;fb:editor action=&quot;?monavis&quot; labelwidth=&quot;100&quot;&gt;
&lt;/fb:editor&gt;
</pre>
<p>Dans un premier temps, l&#8217;utilisateur va devoir entrer son pseudo.<br />
Pour ceci, nous allons utiliser la balise <strong>&lt;fb:editor-text &gt;</strong></p>
<p><u>Attributs facultatifs :</u></p>
<p><strong>label</strong> : le libellé du champ.<br />
<strong>name</strong> : le nom du champ.<br />
<strong>value</strong> : la valeur par défaut du champ.<br />
<strong>maxlength</strong> : la taille maximum du champ.</p>
<p>Donc pour nous ça sera :</p>
<pre class="brush: html">
&lt;fb:editor action=&quot;?lasuite&quot; labelwidth=&quot;100&quot;&gt;
	&lt;fb:editor-text label=&quot;pseudo&quot; name=&quot;pseudo&quot; value=&quot;mon pseudo&quot;/&gt;
&lt;/fb:editor&gt;
</pre>
<p>en visuel :</p>
<div id="attachment_883" class="wp-caption alignnone" style="width: 399px"><a href="http://media.waanser.com/2009/02/facebook.png"><img src="http://media.waanser.com/2009/02/facebook.png" alt="api facebook" title="facebook" width="389" height="55" class="size-full wp-image-883" /></a><p class="wp-caption-text">api facebook</p></div>
<p>Maintenant nous allons rajouter une liste déroulante, composée d&#8217;une liste de film avec la balise <strong>&lt;fb:editor-custom&gt;</strong>.</p>
<p><u>Attributs facultatifs :</u></p>
<p><strong>label</strong> : le libellé de la liste déroulante.<br />
<strong>id</strong> : identifiant de la liste déroulante.</p>
<pre class="brush: html">
&lt;fb:editor-custom label=&quot;film&quot;&gt;
	&lt;select name=&quot;state&quot;&gt;
		&lt;option value=&quot;1&quot; selected&gt;La Folie des grandeurs&lt;/option&gt;
		&lt;option value=&quot;2&quot;&gt;Slumdog Millionaire&lt;/option&gt;
		&lt;option value=&quot;3&quot;&gt;Seraphine&lt;/option&gt;
		&lt;option value=&quot;4&quot;&gt;L&#039;Etrange histoire de Benjamin Button&lt;/option&gt;
		&lt;option value=&quot;5&quot;&gt;Nos enfants nous accuseront&lt;/option&gt;
	&lt;/select&gt;
&lt;/fb:editor-custom&gt;
</pre>
<p>une petite visualisation :</p>
<div id="attachment_886" class="wp-caption alignnone" style="width: 281px"><a href="http://media.waanser.com/2009/02/facebook1.png"><img src="http://media.waanser.com/2009/02/facebook1.png" alt="api facebook" title="facebook1" width="271" height="100" class="size-full wp-image-886" /></a><p class="wp-caption-text">api facebook</p></div>
<p>Notre utilisateur va pouvoir maintenant ajouter des commentaires aux film qu&#8217;il a sélectionné.<br />
On va utilisé la balise <strong>&lt;fb:editor-textarea&gt;</strong>.</p>
<p><u>Attributs facultatifs :</u></p>
<p><strong>label</strong> : le libellé de la textarea.<br />
<strong>name</strong> : le nom de la textarea.<br />
<strong>rows</strong> : la longueur en ligne de la textarea.</p>
<pre class="brush: html">
&lt;fb:editor-divider/&gt;
&lt;fb:editor-textarea label=&quot;commentaire&quot;&gt;
  	mes commentaires
&lt;/fb:editor-textarea&gt;
</pre>
<p>Pour aérer votre formulaire vous pouvez utiliser la balise <strong>&lt;fb:editor-divider/&gt;</strong></p>
<p>Notre formulaire commence à ressembler à quelque chose <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div id="attachment_890" class="wp-caption alignnone" style="width: 489px"><a href="http://media.waanser.com/2009/02/facebook2.png"><img src="http://media.waanser.com/2009/02/facebook2.png" alt="api facebook" title="facebook2" width="479" height="176" class="size-full wp-image-890" /></a><p class="wp-caption-text">api facebook</p></div>
<h2>Champs automatique</h2>
<p>L&#8217;utilisateur pourra renseigner la date ou il a vue le film. (si il a mit un commentaire c&#8217;est qu&#8217;il a dû voir le film ^^)</p>
<p>Pour ceci on a besoin de <strong>&lt;fb:editor-date&gt;</strong>.</p>
<p><u>Attribut obligatoire :</u></p>
<p><strong>label</strong>: le libellé du champ.<br />
<strong>value</strong>: la date par défaut (attention on doit indiquer un timestamp).</p>
<pre class="brush: html">
&lt;fb:editor-date label=&quot;j&#039;ai vu le film le &quot; value=&quot;5419000&quot; /&gt;
</pre>
<p>Comme vous le voyez, facebook a pris le temps de traduire les mois, mais il n&#8217;a toujours pas compris<br />
qu&#8217;en France la date commence par les jours et non pas par les mois (oui, je râle pour pas beaucoup).</p>
<div id="attachment_893" class="wp-caption alignnone" style="width: 250px"><a href="http://media.waanser.com/2009/02/facebook3.png"><img src="http://media.waanser.com/2009/02/facebook3.png" alt="api facebook" title="facebook3" width="240" height="89" class="size-full wp-image-893" /></a><p class="wp-caption-text">api facebook</p></div>
<p>Bon si je ne suis pas content je peux toujours utilisé la balise <strong>&lt;fb:editor-month&lg; </strong></p>
<p><u>Attributs facultatifs :</u></p>
<p><strong>label</strong> : le libellé de la liste déroulante.<br />
<strong>name</strong> : le nom de la liste déroulante.<br />
<strong>value</strong> : valeur de la liste déroulante.</p>
<pre class="brush: html">
&lt;fb:editor-month value=&quot;6&quot; name=&quot;mois&quot; label=&quot;mois&quot;/&gt;
</pre>
<p>Facebook nous offre aussi une liste déroulante prêt à porter pour l&#8217;heure avec la balise <strong>&lt;fb:editor-time&gt;</strong>.</p>
<p><u>Attributs facultatifs :</u></p>
<p><strong>label</strong> : le libellé de la liste déroulante.<br />
<strong>name</strong> : le nom de la liste déroulante.<br />
<strong>value</strong> : valeur de la liste déroulante.</p>
<pre class="brush: html">
&lt;fb:editor-time value=&quot;1185930724&quot; name=&quot;time&quot; label=&quot;a&quot;/&gt;
</pre>
<p>ce qui donne :</p>
<div id="attachment_897" class="wp-caption alignnone" style="width: 483px"><a href="http://media.waanser.com/2009/02/facebook4.png"><img src="http://media.waanser.com/2009/02/facebook4.png" alt="api facebook" title="facebook4" width="473" height="107" class="size-full wp-image-897" /></a><p class="wp-caption-text">api facebook</p></div>
<p>Voila, nous avons fait le tour des champs que nous propose le FBML.<br />
Il ne manque plus que le bouton de soumission.</p>
<p>Il faut savoir que les boutons doivent se situer dans la balise<br />
<strong>&lt;fb:editor-buttonset&gt;</strong></p>
<p>Pour le bouton de soumission ce n&#8217;est pas compliqué, il faut utiliser la balise <strong>&lt;fb:editor-button&gt;</strong>.</p>
<p><u>Attribut obligatoire :</u></p>
<p><strong>value</strong>: le nom du bouton de soumission.</p>
<p><u>Attributs facultatifs :</u></p>
<p><strong>optional</strong>: la valeur du bouton de soumission.</p>
<p>Le FBML à ajouter aussi un autre bouton via la balise <strong>&lt;fb:editor-cancel&gt;</strong></p>
<p><u>Attributs facultatifs :</u></p>
<p><strong>value</strong>: le nom du lien.<br />
<strong>href</strong>: l&#8217;adresse du lien.</p>
<p>En code cela donne :</p>
<pre class="brush: html">
	&lt;fb:editor-buttonset&gt;
		&lt;fb:editor-button value=&quot;Valider&quot;/&gt;
		&lt;fb:editor-cancel  value=&quot;Quitter&quot; href=&quot;http://www.facebook.com&quot;/&gt;
	&lt;/fb:editor-buttonset&gt;
</pre>
<p>On voit que facebook n&#8217;a pas pensé à nous, petit français, en effet il n&#8217;a pas traduit le mot &#8216;or&#8217;.<br />
Dommage, mais ce n&#8217;est pas grave, le bouton cancel peut être très facilement remplacé par un lien du type &lt;a href</p>
<div id="attachment_901" class="wp-caption alignnone" style="width: 188px"><a href="http://media.waanser.com/2009/02/facebook5.png"><img src="http://media.waanser.com/2009/02/facebook5.png" alt="api facebook" title="facebook5" width="178" height="45" class="size-full wp-image-901" /></a><p class="wp-caption-text">api facebook</p></div>
<p>Voici ce que devrait donner notre code au final.</p>
<pre class="brush: html">
&lt;fb:editor action=&quot;?lasuite&quot; labelwidth=&quot;100&quot;&gt;
	&lt;fb:editor-text label=&quot;pseudo&quot; name=&quot;pseudo&quot; value=&quot;mon pseudo&quot;/&gt;
       &lt;fb:editor-divider/&gt;
	&lt;fb:editor-custom label=&quot;film&quot;&gt;
		&lt;select name=&quot;state&quot;&gt;
			&lt;option value=&quot;1&quot; selected&gt;La Folie des grandeurs&lt;/option&gt;
			&lt;option value=&quot;2&quot;&gt;Slumdog Millionaire&lt;/option&gt;
			&lt;option value=&quot;3&quot;&gt;Seraphine&lt;/option&gt;
			&lt;option value=&quot;4&quot;&gt;L&#039;Etrange histoire de Benjamin Button&lt;/option&gt;
			&lt;option value=&quot;5&quot;&gt;Nos enfants nous accuseront&lt;/option&gt;
		&lt;/select&gt;
	&lt;/fb:editor-custom&gt;
	&lt;fb:editor-divider/&gt;
	&lt;fb:editor-textarea label=&quot;commentaire&quot;&gt;
  	mes commentaires
	&lt;/fb:editor-textarea&gt;
	&lt;fb:editor-divider/&gt;
	&lt;fb:editor-date label=&quot;j&#039;ai vu le film le &quot; value=&quot;5419000&quot; /&gt;
	&lt;fb:editor-divider/&gt;
	&lt;fb:editor-time value=&quot;1185930724&quot; name=&quot;time&quot; label=&quot;a&quot;/&gt;
	&lt;fb:editor-divider/&gt;
	&lt;fb:editor-buttonset&gt;
		&lt;fb:editor-button value=&quot;Valider&quot;/&gt;
		&lt;fb:editor-cancel  value=&quot;Quitter&quot; href=&quot;http://www.facebook.com&quot;/&gt;
	&lt;/fb:editor-buttonset&gt;
&lt;/fb:editor&gt;
</pre>
<p>Et pour donner un résultat époustouflant <img src='http://www.waanser.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<div id="attachment_904" class="wp-caption alignnone" style="width: 516px"><a href="http://media.waanser.com/2009/02/facebook6.png"><img src="http://media.waanser.com/2009/02/facebook6.png" alt="api facebook" title="facebook6" width="506" height="301" class="size-full wp-image-904" /></a><p class="wp-caption-text">api facebook</p></div>
<h2>Mon petit mot pour la fin :</h2>
<p>Comme vous l&#8217;avez remarqué, le FBML permet assez facilement d&#8217;afficher du contenu avec le style facebook.<br />
Le code est clair et facile à reprendre. Ce qui est dommage c&#8217;est que le FBML est mal adapté pour les français.<br />
Certaines balises font apparaitre &laquo;&nbsp;en dur&nbsp;&raquo; du texte anglais impossible à changer. Il faut juste espérer que l&#8217;api facebook corrigera ce petit défaut dans les quelques temps avenir.</p>
<p>Voila la partie FBML est terminée, je n&#8217;aurai pas eu le temps de voir toutes les balises que nous proposent ce langage.<br />
Voici la <a href="http://wiki.developers.facebook.com/index.php/FBML"> liste exhaustive</a>. Normalement vous devriez pas avoir trop de difficulté à comprendre les autres balises.<br />
Si vous avez des interrogations sur certaines balises que j&#8217;aurai vu ou pas, n&#8217;hésitez pas à poster vos questions sur un commentaire.<br />
Je ne suis pas toujours dernière mon ordinateur à rafraichir la page toutes les 5 secondes mais je pense pourvoir vous répondre assez rapidement <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.waanser.com/php/api-facebook/873-le-fbml-est-les-formulaires.html/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>API facebook et le FBML (Partie 2)</title>
		<link>http://www.waanser.com/php/api-facebook/591-api-facebook-et-le-fbml-partie-2.html</link>
		<comments>http://www.waanser.com/php/api-facebook/591-api-facebook-et-le-fbml-partie-2.html#comments</comments>
		<pubDate>Wed, 04 Feb 2009 22:43:20 +0000</pubDate>
		<dc:creator>roul</dc:creator>
				<category><![CDATA[Api Facebook]]></category>

		<guid isPermaLink="false">http://www.waanser.com/?p=591</guid>
		<description><![CDATA[Dans la première partie nous avons pu voir les premières commandes FBML. Dans ce tutoriel nous allons voir de façon plus complète toutes les possibilités du FBML. Plus précisément, comment utiliser les médias. Voici la première partie, pour ceux qui ne l&#8217;ont par encore lus. Afficher une photo Pour afficher une photo publiée dans facebook [...]]]></description>
			<content:encoded><![CDATA[<p>Dans la première partie nous avons pu voir les premières commandes FBML. Dans ce tutoriel nous allons voir de façon<br />
plus complète toutes les possibilités du FBML. Plus précisément, comment utiliser les médias.</p>
<p><span id="more-591"></span><br />
Voici la <a href="http://www.waanser.com/php/485-api-facebook-et-le-fbml-partie-1.html">première partie</a>, pour ceux qui ne l&#8217;ont par encore lus.</p>
<h2>Afficher une photo</h2>
<p>Pour afficher une photo publiée dans facebook il faut utiliser la balise <strong>&lt;fb:photo&gt;</strong></p>
<p>&lt;fb:photo pid=&nbsp;&raquo;LE PID&nbsp;&raquo; uid=&nbsp;&raquo;LE UID&nbsp;&raquo; /&gt;</p>
<p>On va prendre l&#8217;exemple de cette publication :</p>
<p><a href="http://www.facebook.com/photo.php?pid=1367728&#038;id=619393444&#038;op=1&#038;view=all&#038;subj=14113848026&#038;aid=-1&#038;oid=14113848026" > http://www.facebook.com/photo.php?pid=1367728&#038;id=619393444&#038;op=1&#038;view=all&#038;subj=14113848026&#038;aid=-1&#038;oid=14113848026</a></p>
<p>Et on veut récupérer l&#8217;image de cette gargouille, il faut donc trouver le <span style="color:red"> PID </span> et<br />
 le <span style="color:green"> UID</span> </p>
<p>En fait c&#8217;est très simple, ils sont juste dans l&#8217;url ! <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>http://www.facebook.com/photo.php?<span style="color:red">pid=1367728</span></p>
<p>&#038;<span style="color:green">id=619393444</span>&#038;op=1&#038;view=all&#038;subj=14113848026&#038;aid=-1&#038;oid=14113848026</p>
<p>Le PID est : 1367728<br />
Le UID est : 619393444</p>
<p>Si on veut afficher la photo on fait :</p>
<pre class="brush: html">
&lt;fb:if-can-see-photo pid=&quot;1367728&quot; uid=&quot;619393444&quot;&gt;
&lt;fb:photo pid=&quot;1367728&quot; uid=&quot;619393444&quot; /&gt;
&lt;/fb:if-can-see-photo&gt;
</pre>
<p>Et voilà la gargouille est affichée.</p>
<p>La balise <strong>&lt;fb:if-can-see-photo &gt; </strong>  sert juste à vérifier, si l&#8217;utilisateur peut lier la photo.</p>
<h2>Musique Maestro !</h2>
<p>Le FBML donne aussi la possibilité d&#8217;intégrer un petit lecteur mp3 dans votre gadget.</p>
<p>Voilà ce que cela peut donner :<br />
<div id="attachment_726" class="wp-caption alignnone" style="width: 310px"><a href="http://media.waanser.com/2009/01/apifacebook.png"><img src="http://media.waanser.com/2009/01/apifacebook.png" alt="fb:mp3" title="apifacebook" width="300" height="29" class="size-full wp-image-726" /></a><p class="wp-caption-text">fb:mp3</p></div></p>
<p>Pour ceci on va utiliser la balise <strong>&lt;fb:mp3&gt;</strong></p>
<pre class="brush: html">
&lt;fb:mp3
	src=&quot;http://media.waanser.com/2009/01/yebano_love_arpege.mp3&quot;
	title=&quot;Love arpege&quot;
	album=&quot;Yebano&quot;
	artist=&quot;Yuno&quot;
/&gt;
</pre>
<p><u>Attribut obligatoire :</u></p>
<p><strong>src</strong>: il est obligatoire, c&#8217;est le chemin absolu du fichier mp3.</p>
<p><u>Attributs facultatifs :</u></p>
<p><strong>title</strong> : le titre de la chanson.<br />
<strong>artist</strong> : le nom de l&#8217;artiste.<br />
<strong>album</strong> : le nom de l&#8217;album.<br />
<strong>width</strong> : la largeur du lecteur (par défaut c&#8217;est 300).<br />
<strong>height </strong> : la longueur du lecteur (par défaut c&#8217;est 29).</p>
<h2>FLV : Les vidéos Flash sur facebook</h2>
<p>Nous allons voir comment diffuser des vidéos flash sur notre application facebook.</p>
<div id="attachment_746" class="wp-caption alignnone" style="width: 385px"><a href="http://media.waanser.com/2009/02/ex_flv1.png"><img src="http://media.waanser.com/2009/02/ex_flv1.png" alt="api facebook video FLV" title="ex_flv1" width="375" height="303" class="size-full wp-image-746" /></a><p class="wp-caption-text">api facebook video FLV</p></div>
<p> Pour afficher les vidéos nous allons utiliser la balise <strong>&lt;fb:flv&gt;</strong>.</p>
<p>Voici un exemple de code :</p>
<pre class="brush: html">
&lt;fb:flv
	src=&#039;http://media.waanser.com/2009/02/691008.flv&#039;
	width=&#039;400&#039;
	height=&#039;300&#039;
	title=&#039;my movie&#039;
 	color=&#039;#FFBB00&#039;
 	salign=&#039;r&#039;
	img=&#039;http://media.waanser.com/2009/02/ex_flv.jpg&#039;
 	scale=&#039;showall&#039;
&gt;
</pre>
<p><u>Attribut obligatoire :</u></p>
<p><strong>src</strong> : il est obligatoire, c&#8217;est le chemin absolu du fichier .flv </p>
<p><u>Attributs facultatifs :</u></p>
<p><strong>title</strong> : le titre de la vidéo.<br />
<strong>width</strong> : la largeur du lecteur.<br />
<strong>height </strong> : la longueur du lecteur.<br />
<strong>scale</strong> : définit le format d&#8217;affichage de la vidéo. Il faut savoir qu&#8217;il y a trois options possibles :</p>
<ol>
<li>showall : affiche le format réel de la vidéo.</li>
<li>noborder : la vidéo est découpée par rapport au format des attributs &laquo;&nbsp;width&nbsp;&raquo; et &laquo;&nbsp;height&nbsp;&raquo;.</li>
<li>exactfit : la taille de la vidéo est redimensionnée au format défini par les attributs &laquo;&nbsp;width&nbsp;&raquo; et &laquo;&nbsp;height&nbsp;&raquo;.</li>
</ol>
<li>voir exemple : <a href="http://apps.facebook.com/waanser/flv.php"> sur ce lien </a></li>
<p><br/><br />
<strong>img</strong> : l&#8217;image de prévisualisation. Il faut que le chemin soit absolu. A noter aussi que l&#8217;image doit être en format .jpg<br />
<strong>align </strong> : l&#8217;alignement de la vidéo, ci-dessous les quatre options possibles</p>
<ol>
<li> l : gauche</li>
<li> r : droit</li>
<li> t : milieu</li>
<li> b : centré</li>
</ol>
<p><strong>color : </strong> couleur de fond de la vidéo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.waanser.com/php/api-facebook/591-api-facebook-et-le-fbml-partie-2.html/feed</wfw:commentRss>
		<slash:comments>15</slash:comments>
<enclosure url="http://media.waanser.com/2009/01/yebano_love_arpege.mp3" length="3290010" type="audio/mpeg" />
		</item>
		<item>
		<title>API facebook et le FBML (Partie 1)</title>
		<link>http://www.waanser.com/php/api-facebook/485-api-facebook-et-le-fbml-partie-1.html</link>
		<comments>http://www.waanser.com/php/api-facebook/485-api-facebook-et-le-fbml-partie-1.html#comments</comments>
		<pubDate>Tue, 20 Jan 2009 20:52:03 +0000</pubDate>
		<dc:creator>roul</dc:creator>
				<category><![CDATA[Api Facebook]]></category>

		<guid isPermaLink="false">http://www.waanser.com/?p=485</guid>
		<description><![CDATA[Nous allons voir dans cette article, le langage FBML (Facebook Markup Langage) qui, au niveau de la syntaxe s&#8217;approche du html. C&#8217;est grâce à ce langage que l&#8217;on va pouvoir manipuler facilement l&#8217;affichage des informations que Facebook a stockées sur l&#8217;utilisateur (l&#8217;individu qui parcours notre gadget). Pour suivre ce tutoriel, il faut savoir se connecter [...]]]></description>
			<content:encoded><![CDATA[<p>Nous allons voir dans cette article, le langage FBML (Facebook Markup Langage) qui, au niveau de la syntaxe s&#8217;approche du html.<br />
C&#8217;est grâce à ce langage que l&#8217;on va pouvoir manipuler facilement l&#8217;affichage des informations que Facebook a stockées sur l&#8217;utilisateur (l&#8217;individu qui parcours notre gadget).<span id="more-485"></span></p>
<hr/>
Pour suivre ce tutoriel, il faut savoir se connecter sur l&#8217;API Facebook, mais si ce n&#8217;est pas le cas, pas de panique ! Il faut juste lire <a href="http://www.waanser.com/php/97-developper-une-application-facebook-via-son-api.html">cet article</a>.</p>
<h2>Le FBML</h2>
<p>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&#8217;êtes pas obligé d&#8217;utiliser le FBML pour développer votre application Facebook, mais il est largement conseillé puisqu&#8217;il va nous faciliter grandement la vie.</p>
<hr/>
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&#8217;apportera aucun service en plus, mais il aura l&#8217;avantage de vous faire découvrir les possibilités que nous offrent le FBML. </p>
<hr/>
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&#8217;essentiel sera là !<br />
Toutefois, voici la <a href="http://wiki.developers.facebook.com/index.php/FBML">liste </a> exhaustive et mise à jour régulièrement des fonctions du FBML, (aussi n&#8217;hésitez pas à poster un commentaire sur une fonction que je n&#8217;aurai pas expliqué).</p>
<p>Bon fini de chipoter, let&#8217;s go!</p>
<h2>afficher les informations de nos amis</h2>
<p>Pour plus de simplicité, j&#8217;ai fait appel à un fichier php qui se connecte à Facebook automatiquement.<br />
Je l&#8217;ai appelé connexion.php</p>
<pre class="brush: php">
&lt;?php
// on charge la librairie facebook
require_once &#039;lib-facebook/facebook.php&#039;;
// on défini la clé et le code secret
$sAppapikey = &#039;VOTRE CLE&#039;;
$sAppsecret = &#039;VOTRE CODE SECRET&#039;;
// on se connecte à facebook par la creation d&#039;un objet Facebook
$oFacebook = new Facebook($sAppapikey, $sAppsecret);
// on demande à l&#039;utilisateur de se loguer
$sUser_id = $oFacebook-&gt;require_login();
?&gt;
</pre>
<hr/>
<strong> &lt;fb:header&gt;</strong> : la balise qui affiche un titre de notre application</p>
<div id="attachment_492" class="wp-caption alignleft" style="width: 182px"><img src="http://media.waanser.com/2009/01/facebook.jpg" alt="facebook" title="facebook" width="172" height="36" class="size-full wp-image-492" /><p class="wp-caption-text">facebook</p></div>
<p><br/><br />
&lt;fb:header&gt;Mes amis&lt;/fb:header&gt;<br />
<br/><br/><br/></p>
<p>Comme base, nous allons afficher une liste de 5 de nos amis.<br />
Et petit à petit nous allons afficher toute sorte d&#8217;information sur eux <img src='http://www.waanser.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
<pre class="brush: php">
&lt;?php
// on se connecte à  facebook
require_once &#039;connexion.php&#039;;
?&gt;
&lt;fb:header&gt;Mes amis&lt;/fb:header&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;?php
//on récupére les 5 premiers amis de l&#039;utilisateurs
$aFriends = $oFacebook-&gt;api_client-&gt;friends_get();
$aFriends = array_slice($aFriends, 0, 5);
// on affiche leurs informations à partir de leur identifiant
foreach ($aFriends as $iKey =&gt; $sFriend) {
	echo &#039;&lt;h1&gt; Ami &#039;.($iKey+1).&#039;&lt;/h1&gt;&lt;br/&gt;&#039;;
  	echo &#039;&lt;div&gt;&#039;;
  	echo &#039;Identifiant : &#039;.$sFriend;
  	echo &#039;&lt;/div&gt;&#039;;
  	echo &#039;&lt;br/&gt;&lt;br/&gt;&#039;;
}
?&gt;
</pre>
<hr/>
Pour un ami voilà ce qu&#8217; affiche notre gadget :<br />
<div id="attachment_518" class="wp-caption alignnone" style="width: 201px"><img src="http://media.waanser.com/2009/01/facebook1.png" alt="facebook" title="facebook1" width="191" height="69" class="size-full wp-image-518" /><p class="wp-caption-text">facebook</p></div></p>
<p>Je l&#8217;admets, on a rien du tout comme information, mais on va vite remédier à ça, avec tout ce que le FBML va nous offrir ^^.</p>
<p>Nous allons afficher les photos de nos amis en utilisant la balise <em>fb:mediaheader</em>:</p>
<p><fb:mediaheader uid="IDENTIFIANT UTILISATEUR"></p>
<p>Dans notre boucle il suffit d&#8217;entrer :</p>
<pre class="brush: php">
  	echo &#039;&lt;div&gt;&#039;;
  	echo &#039;Identifiant : &#039;.$sFriend.&#039;&lt;br/&gt;&#039;;
  	echo &#039;&lt;fb:mediaheader uid=&quot;&#039;.$sFriend.&#039;&quot;/&gt;&#039;;
  	echo &#039;&lt;/div&gt;&#039;;
</pre>
<p>Déjà ça rend un peu mieux :</p>
<div id="attachment_522" class="wp-caption alignnone" style="width: 286px"><img src="http://media.waanser.com/2009/01/facebook2.png" alt="facebook FBML" title="facebook2" width="276" height="133" class="size-full wp-image-522" /><p class="wp-caption-text">facebook FBML</p></div>
<hr/>
<h2>Qui est mon ami ?</h2>
<p>On va maintenant demander à Facebook si la liste de contacts sont bien nos amis.<br />
<strong><br />
&lt;fb:if-is-friends-with-viewer uid=&nbsp;&raquo;IDENTIFIANT UTILISATEUR&nbsp;&raquo;&gt;</strong><br />
<em>c&#8217;est mon ami</em><br />
<strong>&lt;fb:else&gt;</strong><br />
<em>ce n&#8217;est pas mon ami</em><br />
<strong>&lt;/fb:else&gt;</strong><br />
<strong>&lt;/fb:if-is-friends-with-viewer&gt;</strong></p>
<pre class="brush: php">
foreach ($aFriends as $iKey =&gt; $sFriend) {
	echo &#039;&lt;h1&gt;&#039;;
	echo &#039;&lt;fb:if-is-friends-with-viewer uid=&quot;&#039;.$sFriend.&#039;&quot;&gt;&#039;;
  	echo &#039;Ami &#039;;
  	echo &#039;&lt;fb:else&gt;Inconnu &lt;/fb:else&gt;&#039;;
  	echo&#039;&lt;/fb:if-is-friends-with-viewer&gt;&#039;;
	echo ($iKey+1).&#039;&lt;/h1&gt;&lt;br/&gt;&#039;;
  	echo &#039;&lt;div&gt;&#039;;
  	echo &#039;Identifiant : &#039;.$sFriend.&#039;&lt;br/&gt;&#039;;
  	echo &#039;&lt;fb:mediaheader uid=&quot;&#039;.$sFriend.&#039;&quot;/&gt;&#039;;
  	echo &#039;&lt;/div&gt;&#039;;
  	echo &#039;&lt;br/&gt;&lt;br/&gt;&#039;;
}
</pre>
<hr/>
Là vous remarquez, que ça n&#8217;a rien changer à notre page. Normal, vu que l&#8217;on a que des amis.<br />
Pour faire le test sur d&#8217;autre personnes, il suffit d&#8217;entrer des nouveaux identifiants dans notre tableau $aFriends.</p>
<pre class="brush: php">
$aFriends[]=15632748619; // jacques chirac
$aFriends[]=1619545751; // le père noel
$aFriends[]=1605863542; // charles le singe
</pre>
<p>Voila, vous savez maintenant les bases du FBML, dans la prochaine partie nous verrons la liste<br />
beaucoup plus complète des balises FBML.</p>
<p>La seconde partie est en <a href="http://www.waanser.com/php/591-api-facebook-et-le-fbml-partie-2.html">ligne</a>, elle traite la partie média du FBML.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.waanser.com/php/api-facebook/485-api-facebook-et-le-fbml-partie-1.html/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>API facebook</title>
		<link>http://www.waanser.com/php/api-facebook/97-developper-une-application-facebook-via-son-api.html</link>
		<comments>http://www.waanser.com/php/api-facebook/97-developper-une-application-facebook-via-son-api.html#comments</comments>
		<pubDate>Thu, 15 Jan 2009 23:37:17 +0000</pubDate>
		<dc:creator>roul</dc:creator>
				<category><![CDATA[Api Facebook]]></category>

		<guid isPermaLink="false">http://www.waanser.com/?p=97</guid>
		<description><![CDATA[Nous allons voir dans ce tutoriel comment créer une application facebook très rapidement. Pas de gros bavardage, nous allons attaquer le vif du sujet. Pour passer dans le monde des développeurs facebook, il faut suivre ce lien et accepter la demande d&#8217;ajout d&#8217;application. Voilà, nous sommes dans l&#8217;espace développeur de facebook. C&#8217;est ici que l&#8217;on [...]]]></description>
			<content:encoded><![CDATA[<p> Nous allons voir dans ce tutoriel comment créer une application facebook très rapidement.<br />
Pas de gros bavardage, nous allons attaquer le vif du sujet. <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p>Pour passer dans le monde des développeurs facebook, il faut suivre ce <a href="http://www.facebook.com/developers/"> lien </a> et accepter la demande d&#8217;ajout d&#8217;application.</p>
<p>Voilà, nous sommes dans l&#8217;espace développeur de facebook.<br />
C&#8217;est ici que l&#8217;on va configurer notre application.</p>
<hr/>
<h2>Rapide et efficace</h2>
<p>L&#8217;api facebook est très complet. Pour maîtriser tous ces composants, cela vous demandera beaucoup de temps.<br />
Pour ne pas se perdre dans tout ce méandre, je vous propose de sauter les étapes de configurations facultatives pour faire tourner une application très rapidement.</p>
<p>C&#8217;est parti. <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Cliquez sur le bouton &laquo;&nbsp;Créer une application&nbsp;&raquo;</p>
<p><a href="http://media.waanser.com/2010/05/api_facebook1.jpg"><img class="size-full wp-image-2111" title="api_facebook" src="http://media.waanser.com/2010/05/api_facebook1.jpg" alt="ajout d'une nouvelle application" /></a>1.jpg</p>
<hr/>
<p>Ensuite, on saisit le nom de notre application et on accepte.</p>
<p><a href="http://media.waanser.com/2010/05/api_facebook2.jpg"><img class="size-full wp-image-2111" title="api_facebook" src="http://media.waanser.com/2010/05/api_facebook2.jpg" alt="ajout d'une nouvelle application" /></a></p>
<hr/>
<p>Avant de continuer, on va créer la page où notre application, et facebook va se connecter.</p>
<p>Dans votre dossier <strong>www</strong> on va créer un dossier <strong>monAppliFacebook</strong>, avec un fichier <strong>index.php</strong> qui sera notre page d&#8217;accueil.</p>
<p><a href="http://media.waanser.com/2010/05/api_facebook3.jpg"><img class="size-full wp-image-2111" title="api_facebook" src="http://media.waanser.com/2010/05/api_facebook3.jpg" alt="ajout d'une nouvelle application" /></a></p>
<p>Le code source sera très simple :</p>
<pre class="brush: php">
echo &#039;Api facebook bonjour !&#039;;
</pre>
<p>On va vérifier que notre application tourne chez nous.</p>
<p><a href="http://media.waanser.com/2010/05/api_facebook6.jpg"><img class="size-full wp-image-2111" title="api_facebook" src="http://media.waanser.com/2010/05/api_facebook6.jpg" alt="ajout d'une nouvelle application" /></a></p>
<p>Pas de Fatal erreur ? Super! on peut passer à la suite. <img src='http://www.waanser.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<hr/>
<h2>Configuration de notre application</h2>
<p>De retour sur notre <a href="http://www.facebook.com/developers/"> panneau d&#8217;administration facebook </a>, on va modifier nos paramètres de l&#8217;application.</p>
<p><strong>Dans l&#8217;onglet cavenas </strong></p>
<p><a href="http://media.waanser.com/2010/05/api_facebook4.jpg"><img class="size-full wp-image-2111" title="api_facebook" src="http://media.waanser.com/2010/05/api_facebook4.jpg" alt="ajout d'une nouvelle application" /></a></p>
<p>On va dans le cadre <strong>URLs obligatoires</strong></p>
<p>Ici, on va saisir URL du canevas. C&#8217;est l&#8217;url que devra taper l&#8217;utilisateur pour arriver sur votre application.<br />
A vous de choisir l&#8217;url de votre application. (Eh oui, il faut un peu d&#8217;imagination).</p>
<p>URL de rappel de la page principale. C&#8217;est l&#8217;url où se trouve votre application, pour nous ça sera :<br />
<strong> http://localhost/monAppliFacebook/</strong></p>
<p><a href="http://media.waanser.com/2010/05/api_facebook5.jpg"><img class="size-full wp-image-2111" title="api_facebook" src="http://media.waanser.com/2010/05/api_facebook5.jpg" alt="ajout d'une nouvelle application" /></a></p>
<p>On enregistre nos modifications et on va sur l&#8217;url de votre application (pour moi c&#8217;est http://apps.facebook.com/application_roul/)</p>
<p>Et là, ça marche <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  !</p>
<hr/>
<p>Maintenant que facebook est bien connecté à notre code source, on va télécharger <a href="http://github.com/facebook/php-sdk/zipball/master"> la librairie <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </a></p>
<p><a href="http://media.waanser.com/2010/05/api_facebook7.jpg"><img class="size-full wp-image-2111" title="api_facebook" src="http://media.waanser.com/2010/05/api_facebook7.jpg" alt="ajout d'une nouvelle application" /></a></p>
<p>On décompresse le dossier, dans le dossier <strong>src</strong> on récupère le fichier <strong>facebook.php</strong> (qui est la librairie).<br />
On met le fichier sur notre dossier monAppliFacebook.</p>
<p><a href="http://media.waanser.com/2010/05/api_facebook8.jpg"><img class="size-full wp-image-2111" title="api_facebook" src="http://media.waanser.com/2010/05/api_facebook8.jpg" alt="ajout d'une nouvelle application" /></a></p>
<hr/>
Dans ce tutoriel, nous allons voir simple. Nous allons créer un bouton qui va permettre à l&#8217;utilisateur<br />
d&#8217;authentifier sur notre application.</p>
<p>Nous avons besoins de 2 choses: </p>
<ul>
<li>Récupérer les 2 clés d&#8217;identifications.</li>
<li>Configurer le chemin de connexion.</li>
</ul>
<p><strong>Récupérer les 2 clés d&#8217;identifications.</strong></p>
<p>Pour notre application facebook, on va avoir besoin d&#8217;une clé publique et d&#8217;une clé secrète.<br />
Pour les trouver, il faut aller dans le panneau d&#8217;administration de notre application sur l&#8217;onglet Général</p>
<hr/>
On va reprendre notre fichier index.php. On va repartir d&#8217;une base vierge.</p>
<p><a href="http://media.waanser.com/2010/05/api_facebook9.jpg"><img class="size-full wp-image-2111" title="api_facebook" src="http://media.waanser.com/2010/05/api_facebook9.jpg" alt="ajout d'une nouvelle application" /></a></p>
<p>Les informations sont ici.</p>
<p><a href="http://media.waanser.com/2010/05/api_facebook10.jpg"><img class="size-full wp-image-2111" title="api_facebook" src="http://media.waanser.com/2010/05/api_facebook10.jpg" alt="ajout d'une nouvelle application" /></a></p>
<hr/>
<p><strong>Configurer le chemin de connexion.</strong></p>
<p>Rendez vous dans l&#8217;onglet connexion</p>
<p><a href="http://media.waanser.com/2010/05/api_facebook11.jpg"><img class="size-full wp-image-2111" title="api_facebook" src="http://media.waanser.com/2010/05/api_facebook11.jpg" alt="ajout d'une nouvelle application" /></a></p>
<p>Le chemin de connexion est le chemin où l&#8217;utilisateur sera redirigé après la connexion.</p>
<p><a href="http://media.waanser.com/2010/05/api_facebook12.jpg"><img class="size-full wp-image-2111" title="api_facebook" src="http://media.waanser.com/2010/05/api_facebook12.jpg" alt="ajout d'une nouvelle application" /></a></p>
<p>Les configurations sont finies, passons aux codes <img src='http://www.waanser.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<hr/>
<h2>Un exemple concret d&#8217;utilisation</h2>
<p>Voici le code source. (Les explication sont dans les commentaires)</p>
<pre class="brush: php">
&lt;?php
/**
 * @author roul
 * @desc Exemple simple d&#039;utilisation de l&#039;api facebook
 * @link www.waanser.com
 * @since mai 2010
 */

// on charge la librairie facebook
require_once &#039;./facebook.php&#039;;

// clé publique
define(&#039;CLE_PUBLIQUE&#039;, &#039;Votre clé publique&#039;);
//clé secrète
define(&#039;CLE_SECRETE&#039;, &#039;&#039;Votre clé privée&#039;);

// on créé une intance de facebook
$oFacebook = new Facebook(array(
  &#039;appId&#039;  =&gt; CLE_PUBLIQUE,
  &#039;secret&#039; =&gt; CLE_SECRETE,
  &#039;cookie&#039; =&gt; true,
));

// on récupère les identifiants du visiteur
$session = $oFacebook-&gt;getSession();

// on récupère les informations du visiteur
 try {
    $aVisiteur = $oFacebook-&gt;api(&#039;/me&#039;);
  } catch (FacebookApiException $e) {
    error_log($e);
  }

?&gt;
&lt;!DOCTYPE html&gt;
&lt;!--  on va utilisser du fbml ( le html de facebook) --&gt;
&lt;html xmlns=&#039;http://www.w3.org/1999/xhtml&#039;
      xmlns:fb=&#039;http://www.facebook.com/2008/fbml&#039;&gt;
  &lt;body&gt;

  &lt;!--  si le client a accepté l&#039;application --&gt;
    &lt;?php if ($session) { ?&gt;
     Bienvenue  &lt;?= $aVisiteur[&#039;name&#039;] ?&gt; !
    &lt;?php } else { ?&gt; &lt;!--  sinon on propose à l&#039;utilisateur de se connecter à l&#039;application --&gt;
     Pour se connecter c&#039;est ici :
      &lt;fb:login-button&gt;&lt;/fb:login-button&gt;
    &lt;?php } ?&gt;

    &lt;div id=&#039;fb-root&#039;&gt;&lt;/div&gt;
    &lt;!--  on charge la librairie javascript de facebook pour la connexion --&gt;
    &lt;script src=&#039;http://connect.facebook.net/en_US/all.js&#039;&gt;&lt;/script&gt;
     &lt;!--  fonction qui envoie les informations à facebook connect --&gt;
    &lt;script&gt;
      FB.init({appId: &#039;&lt;?= CLE_PUBLIQUE ?&gt;&#039;, status: true,
               cookie: true, xfbml: true});
      FB.Event.subscribe(&#039;auth.login&#039;, function(response) {
        window.location.reload();
      });
    &lt;/script&gt;
  &lt;/body
&lt;/html&gt;
</pre>
<p>Maintenant, on retourne sur notre application facebook .</p>
<p>Voici ce que cela donne : </p>
<p><a href="http://media.waanser.com/2010/05/api_facebook13.jpg"><img class="size-full wp-image-2111" title="api_facebook" src="http://media.waanser.com/2010/05/api_facebook13.jpg" alt="ajout d'une nouvelle application" /></a></p>
<hr/>
<p>Quand on clique sur le bouton:</p>
<p><a href="http://media.waanser.com/2010/05/api_facebook14.jpg"><img class="size-full wp-image-2111" title="api_facebook" src="http://media.waanser.com/2010/05/api_facebook14.jpg" alt="ajout d'une nouvelle application" /></a></p>
<p>On clique sur allow et facebook vous reconnais.</p>
<p>Bravo \o/  vous avez fait votre première application. </p>
<p>La mise à jour des autres tutoriels devraient se faire d&#8217;ici quelques jours.<br />
<span id="more-97"></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.waanser.com/php/api-facebook/97-developper-une-application-facebook-via-son-api.html/feed</wfw:commentRss>
		<slash:comments>78</slash:comments>
		</item>
	</channel>
</rss>

