Created
April 20, 2012 08:13
-
-
Save dandelionmood/2427064 to your computer and use it in GitHub Desktop.
Connexion OAuth à Facebook
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Ce coup-ci, on va avoir besoin de la librairie OAuth | |
include_once "../../library/OAuthStore.php"; | |
include_once "../../library/OAuthRequester.php"; | |
$error = $_GET['error']; | |
$code = $_GET['code']; | |
// Il faut reprendre l'URL exacte avec laquelle cette page a été appelée. | |
$redirect_uri = 'http://monsite.com/callback_facebook.php'; | |
// Si une erreur s'est produite (typiquement parce que l'internaute a décliné | |
// l'invitation de Facebook) on va gérer le cas de figure plus bas. | |
if( is_null($error) ) { | |
$params = array( | |
'client_id' => __FACEBOOK_APP_ID__, | |
'client_secret' => __FACEBOOK_APP_SECRET__, | |
// C'est ce code reçu qui va nous permettre d'aller plus loin. | |
'code' => $code, | |
'redirect_uri' => $redirect_uri | |
); | |
// Connexion au Auth Store. | |
$options = array('consumer_key' => __FACEBOOK_APP_ID__, 'consumer_secret' => __FACEBOOK_APP_SECRET__); | |
OAuthStore::instance("2Leg", $options); | |
// On gère un problème au cas où l'application n'est plus autorisée. | |
try { | |
// On récupère notre access token, enfin ! | |
$request = new OAuthRequester("https://graph.facebook.com/oauth/access_token", "GET", $params); | |
$result = $request->doRequest(0); | |
parse_str($result['body'], $p); | |
// À ce stade, vous disposez dans $p du access_token permettant d'interroger | |
// facebook pour récupérer les informations de l'utilisateur. | |
} | |
catch( OAuthException2 $e ) { | |
echo "L'application n'est plus autorisée !"; | |
} | |
} else { | |
echo "Une erreur s'est produite."; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// Pas besoin d'inclusions particulières, il suffit pour Facebook de rediriger | |
// l'internaute vers une page de formulaire (il n'y a pas de notion | |
// de request_token). | |
// La page à appeler en callback | |
$redirect_uri = 'http://monsite.com/callback_facebook.php'; | |
$params = array( | |
'client_id' => __FACEBOOK_APP_ID__, | |
// Pour récupérer le mail de l'internaute dans la foulée de la connexion | |
// on va immédiatement demander à accéder à cette donnée dans le | |
// formulaire de connexion. | |
'scope' => 'email', | |
// On redirige sur cette URL à la fin de la connexion. | |
'redirect_uri' => $redirect_uri, | |
'display' => 'popup' // on va l'afficher dans un popup, sinon «page» ou «touch» | |
); | |
$url_redirection = 'https://www.facebook.com/dialog/oauth?' | |
.http_build_query($params); | |
// Finalement, on redirige l'internaute vers le formulaire chez Facebook. | |
header( "Location: $url_redirection" ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment