<?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>Le bloc-note de Tony Mirante &#187; Facebook</title>
	<atom:link href="http://www.le-bloc-note-de-tony-mirante.com/category/facebook/feed" rel="self" type="application/rss+xml" />
	<link>http://www.le-bloc-note-de-tony-mirante.com</link>
	<description>Developpement web, Tutoriaux, jQuery, Ajax, Php, MySQL, web 2.0 et exemples</description>
	<lastBuildDate>Sun, 11 Sep 2011 13:09:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Extraire les données d&#8217;une URL comme Facebook</title>
		<link>http://www.le-bloc-note-de-tony-mirante.com/query/extraire-les-donnees-dune-url-comme-facebook-118</link>
		<comments>http://www.le-bloc-note-de-tony-mirante.com/query/extraire-les-donnees-dune-url-comme-facebook-118#comments</comments>
		<pubDate>Sun, 20 Feb 2011 22:25:05 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.le-bloc-note-de-tony-mirante.com/?p=118</guid>
		<description><![CDATA[Avez-vous remarqué quand on poste un lien sur Facebook, ce dernier va automatiquement générer un extrait du lien, avec une vignette et un bref descriptif. Nous allons voir comment faire pareil avec un peu d&#8217;Ajax et jQuery. Code Javascript et HTML : On utilise les expressions régulières pour récupérer la description entre les balises &#60;title&#62;&#60;/title&#62;]]></description>
			<content:encoded><![CDATA[<p>Avez-vous remarqué quand on poste un lien sur Facebook, ce dernier va automatiquement générer un extrait du lien, avec une vignette et un bref descriptif.<br />
Nous allons voir comment faire pareil avec un peu d&#8217;Ajax et jQuery.</p>
<p><img class="aligncenter size-full wp-image-119" title="extraction de donnees comme facebook" src="http://www.le-bloc-note-de-tony-mirante.com/wp-content/uploads/2011/02/extraction-de-donnees-comme-facebook-1.png" alt="" width="501" height="268" /></p>
<p><span id="more-118"></span></p>
<p><strong>Code Javascript et HTML :</strong></p>
<pre class="brush: xml; title: ; notranslate">

&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/
ajax/libs/jquery/1.4.2/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(document).ready(function()
{
$(&quot;#contentbox&quot;).keyup(function()
{
var content=$(this).val();
var urlRegex = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&amp;@#\/%?=~_|!:,.;]*[-A-Z0-9+&amp;@#\/%=~_|])/ig;
// Filtering URL from the content using regular expressions
// Filtrer l'URL du contenu en utulisant les expressions regulières
var url= content.match(urlRegex);

if(url.length&gt;0)
{
$(&quot;#linkbox&quot;).slideDown('show');
$(&quot;#linkbox&quot;).html(&quot;&lt;img src='link_loader.gif'&gt;&quot;);
// Récupération des données du domaine
$.get(&quot;urlget.php?url=&quot;+url,function(response)
{
// On récupère le nom du site entre les balises &lt;title&gt;&lt;/title&gt;
var title=(/&lt;title&gt;(.*?)&lt;\/title&gt;/m).exec(response)[1];
// On récupère la premiere image en .png avec la balise image src=''
var logo=(/src='(.*?).png'/m).exec(response)[1];
$(&quot;#linkbox&quot;).html(&quot;&lt;img src='&quot;+logo+&quot;.png' class='img'/&gt;&lt;div&gt;&lt;b&gt;&quot;+title+&quot;&lt;/b&gt;&lt;br/&gt;&quot;+url)
});

}
return false;
});
});
//HTML Code
&lt;textarea id=&quot;contentbox&quot;&gt;&lt;/textarea&gt;
&lt;div id=&quot;linkbox&quot;&gt;&lt;/div&gt;
&lt;/script&gt;
</pre>
<p>On utilise les expressions régulières pour récupérer la description entre les balises &lt;title&gt;&lt;/title&gt; ainsi que la première image .png que l&#8217;on trouve.</p>
<p>Après vous pouvez peaufiner, remplacer le .png par un .jpg ou bien utilisez l&#8217;api d&#8217;un générateur de screenshot de site web (<a href="http://www.robothumb.com" target="_blank">http://www.robothumb.com</a> , leur API est vraiment simple) pour générer la vignette, etc etc..</p>
<p><strong>urlget.php</strong></p>
<p>il contient juste la fonction <a href="http://php.net/manual/fr/function.file-get-contents.php" target="_blank">file_get_contents</a> qui lira le contenu d&#8217;un fichier dans une chaîne de caractères.</p>
<pre class="brush: php; title: ; notranslate">

&lt;?php
if($_GET['url'])
{
$url=$_GET['url'];
echo file_get_contents($url);
}
?&gt;
</pre>
<p><strong>Code CSS :</strong></p>
<pre class="brush: css; title: ; notranslate">

body
{
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
}
#contentbox
{
width:458px; height:50px;
border:solid 2px #dedede;
font-family:Arial, Helvetica, sans-serif;
font-size:14px;
margin-bottom:6px;
}
.img
{
float:left; width:150px; margin-right:10px;
text-align:center;
}
#linkbox
{
border:solid 2px #dedede; min-height:50px; padding:15px;
display:none;
}
</pre>
<p>Voila, vous avez une base de départ pour vos projets.</p>
<p style="text-align: center;"><a href="http://demo.le-bloc-note-de-tony-mirante.com/extraire-les-donnes-d-une-url-comme-facebook/demo.zip"><img class="alignnone size-full wp-image-60" title="Télécharger" src="http://www.le-bloc-note-de-tony-mirante.com/wp-content/uploads/2011/02/telecharger.png" alt="" width="266" height="78" /></a> <a href="http://demo.le-bloc-note-de-tony-mirante.com/extraire-les-donnes-d-une-url-comme-facebook/" target="_blank"><img class="alignnone size-full wp-image-62" title="Démo" src="http://www.le-bloc-note-de-tony-mirante.com/wp-content/uploads/2011/02/demo.png" alt="" width="266" height="78" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.le-bloc-note-de-tony-mirante.com/query/extraire-les-donnees-dune-url-comme-facebook-118/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Inscription avec les données de Facebook</title>
		<link>http://www.le-bloc-note-de-tony-mirante.com/facebook/inscription-avec-les-donnees-de-facebook-92</link>
		<comments>http://www.le-bloc-note-de-tony-mirante.com/facebook/inscription-avec-les-donnees-de-facebook-92#comments</comments>
		<pubDate>Fri, 18 Feb 2011 17:54:12 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.le-bloc-note-de-tony-mirante.com/?p=92</guid>
		<description><![CDATA[Facebook prend une place de plus en plus énorme et je vais vous expliquez comment récupérer les données de Facebook pour simplifier l&#8217;inscription sur vos sites. Ce plugin est une iframe que vous pouvez placer n&#8217;importe où, vous pouvez même y ajouter des champs si Facebook ne les possèdes pas. Premièrement, il va falloir créer]]></description>
			<content:encoded><![CDATA[<p>Facebook prend une place de plus en plus énorme et je vais vous expliquez comment récupérer les données de Facebook pour simplifier l&#8217;inscription sur vos sites.<br />
Ce plugin est une iframe que vous pouvez placer n&#8217;importe où, vous pouvez même y ajouter des champs si Facebook ne les possèdes pas.</p>
<p><a href="http://www.le-bloc-note-de-tony-mirante.com/wp-content/uploads/2011/02/facebook_inscription_plugin.png"><img class="aligncenter size-full wp-image-111" title="facebook_inscription_plugin" src="http://www.le-bloc-note-de-tony-mirante.com/wp-content/uploads/2011/02/facebook_inscription_plugin.png" alt="" width="454" height="143" /></a></p>
<p><span id="more-92"></span></p>
<p>Premièrement, il va falloir créer une application Facebook</p>
<p>1/ Créer votre <a title="Créer votre application Facebook" href="http://www.facebook.com/developers/createapp.php" target="_blank">application Facebook</a> , donnez lui un nom, acceptez les conditions générales et validez.</p>
<p>2/ Dans l&#8217;onglet &laquo;&nbsp;Web Site&nbsp;&raquo; , Remplissez l&#8217;<strong>url de votre site</strong> et le <strong>domaine</strong></p>
<p><a href="http://www.le-bloc-note-de-tony-mirante.com/wp-content/uploads/2011/02/facebook_inscription_donnes.png"></a><a href="http://www.le-bloc-note-de-tony-mirante.com/wp-content/uploads/2011/02/facebook_inscription_donnes.png"><img class="aligncenter size-full wp-image-93" title="facebook_inscription_donnes" src="http://www.le-bloc-note-de-tony-mirante.com/wp-content/uploads/2011/02/facebook_inscription_donnes.png" alt="" width="516" height="151" /></a></p>
<p>3/ Gardez de côté votre APP_ID ainsi que votre APP_SECRET , vous en aurez besoin après.</p>
<p>Deuxièmement, créer votre base de données.</p>
<pre class="brush: sql; title: ; notranslate">

CREATE TABLE demo_inscription_avec_info_facebook_users(
uid int( 11 ) PRIMARY KEY AUTO_INCREMENT ,
nom varchar( 50 ) ,
email varchar( 50 ) UNIQUE ,
PASSWORD varchar( 50 ) ,
genre varchar( 6 ) ,
date_de_naissance varchar( 16 ),
telephone varchar( 10 )
);
</pre>
<p>Troisièmement, créer votre formulaire.</p>
<p>1/ On va utilisez l&#8217;iframe que Facebook nous fournit.</p>
<p>2/ Remplacez juste par vos informations, <strong>client_id</strong> qui est votre <strong>APP_ID</strong> et <strong>redirect_ur</strong>i qui est l&#8217;<strong>url de redirection</strong> (la page qui va inscrire notre membre dans la base de données, voir plus bas)</p>
<pre class="brush: xml; title: ; notranslate">&lt;iframe allowtransparency=&quot;true&quot; frameborder=&quot;no&quot; height=&quot;600&quot; scrolling=&quot;auto&quot; src=&quot;http://www.facebook.com/plugins/registration.php?
 client_id=VOTRE_APP_ID&amp;
 redirect_uri=http://votresite.com/store_user_data.php?&amp;
 fields=[
 {&quot;name&quot;:&quot;name&quot;},
 {&quot;name&quot;:&quot;email&quot;},
 {&quot;name&quot;:&quot;password&quot;},
 {&quot;name&quot;:&quot;gender&quot;},
 {&quot;name&quot;:&quot;birthday&quot;},&lt;/div&gt;
&lt;div&gt;{&quot;name&quot;:&quot;captcha&quot;}
{&quot;name&quot;:&quot;phone&quot;, &quot;description&quot;:&quot;Numéro de téléphone&quot;, &quot;type&quot;:&quot;text&quot;} ]&quot;
 scrolling=&quot;auto&quot;
 frameborder=&quot;no&quot;
 style=&quot;border: none;&quot;
 width=&quot;500&quot;
 height=&quot;600&quot;&gt;
 &lt;/iframe&gt;</pre>
<p>Le formulaire est assez simple, on demande le nom (que facebook nous fournit), l&#8217;e-mail (facebook nous le fournit aussi), la date de naissance et le sexe (idem).</p>
<p>J&#8217;ai rajouté le numéro de téléphone (que l&#8217;utilisateur entrera) pour vous montrez comment on ajoute un champ (rien de bien compliqué).</p>
<p>Vous vous retrouvez donc avec un formulaire qui ressemble a celui la :<br />
<img class="aligncenter size-full wp-image-99" title="facebook_inscription_donnes_2" src="http://www.le-bloc-note-de-tony-mirante.com/wp-content/uploads/2011/02/facebook_inscription_donnes_2.png" alt="" width="509" height="442" /></p>
<p>Quatrièmement : Créer la page qui enregistrera les informations dans votre base de données.</p>
<p><strong>store_user_data.php</strong></p>
<div>
<pre class="brush: php; title: ; notranslate">&lt;?php
 define('FACEBOOK_APP_ID', 'VOTRE_APP_ID');
 define('FACEBOOK_SECRET', 'VOTRE_CLE_SECRETE');

 // No need to change function body
 function parse_signed_request($signed_request, $secret) {
 list($encoded_sig, $payload) = explode('.', $signed_request, 2);

 // decode the data
 $sig = base64_url_decode($encoded_sig);
 $data = json_decode(base64_url_decode($payload), true);

 if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
 error_log('Unknown algorithm. Expected HMAC-SHA256');
 return null;
 }

 // check sig
 $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
 if ($sig !== $expected_sig) {
 error_log('Bad Signed JSON signature!');
 return null;
 }

 return $data;
 }

 function base64_url_decode($input) {
 return base64_decode(strtr($input, '-_', '+/'));
 }

 if ($_REQUEST) {
 $response = parse_signed_request($_REQUEST['signed_request'],
 FACEBOOK_SECRET);

 echo &quot;&lt;pre&gt;&quot;;
 print_r($response);
 echo &quot;&lt;/pre&gt;&quot;; // décommentez ces lignes pour voir les informations reçus.

 $name = $response[&quot;registration&quot;][&quot;name&quot;];
 $email = $response[&quot;registration&quot;][&quot;email&quot;];
 $password = $response[&quot;registration&quot;][&quot;password&quot;];
 $gender = $response[&quot;registration&quot;][&quot;gender&quot;];
 $dob = $response[&quot;registration&quot;][&quot;birthday&quot;];
 $phone = $response[&quot;registration&quot;][&quot;phone&quot;];

 // Connecting to Database
 mysql_connect('localhost', 'VOTRE_USER', 'VOTRE_MDP');
 mysql_select_db('VOTRE_BDD');

 $result = mysql_query(&quot;INSERT INTO demo_inscription_avec_info_facebook_users (nom, email, password, genre, date_de_naissance, telephone) VALUES ('$name', '$email', '$password', '$gender', '$dob', $phone)&quot;);
 if ($result) {
 // Utilisateur enregistré
 echo &quot;Information enregistré dans la base de données.&quot;;
 // Redirection vers une autre page
 } else {
 // Erreur
 echo &quot;Erreur.&quot;;
 // Redirection vers une page d'erreur
 }
 } else {
 echo '$_REQUEST est vide O_o';
 }
 ?&gt;
</pre>
<p>Remplacez VOTRE_APP_ID et VOTRE_CLE_SECRETE fournit par facebook.</p>
<p>Remplacez aussi vos informations de base de données : VOTRE_USER, VOTRE_MDP et VOTRE_BDD.</p>
<p>Et voila, vous avez un formulaire qui récupère les données de facebook et les inscrits dans votre base de données.</p>
<p style="text-align: center;"><a title="Télécharger" href="http://demo.le-bloc-note-de-tony-mirante.com/inscription-avec-les-donnes-de-facebook/demo.zip"><img class="alignnone" title="Télécharger" src="http://ks306500.kimsufi.com/~leblocno/wp-content/uploads/2011/02/telecharger.png" alt="" width="266" height="78" /></a> <a title="Démo" href="http://demo.le-bloc-note-de-tony-mirante.com/inscription-avec-les-donnes-de-facebook/" target="_blank"><img title="Démo" src="http://ks306500.kimsufi.com/~leblocno/wp-content/uploads/2011/02/demo.png" alt="" width="266" height="78" /></a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.le-bloc-note-de-tony-mirante.com/facebook/inscription-avec-les-donnees-de-facebook-92/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

