REGISTRATION.HTML
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Facebook Registration plugin</title> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> </head> <body> <div id="add"></div> <div id="container"> <label>Facebook Registration plugin</label><br/> <div id="reg_form"> <center> <iframe src="https://www.facebook.com/plugins/registration? client_id=FACEBOOK_APP_ID_NUMERO& redirect_uri=http://myweb.com/store_user_data.php& fields=name,birthday,gender,location,email" scrolling="auto" frameborder="no" style="border:none" allowTransparency="true" width="50%" height="100%"> </iframe> </center> </div> </div> </body> </html>
Código PHP:
<?php
define('FACEBOOK_APP_ID', 'FACEBOOK_APP_ID_NUMERO');
define('FACEBOOK_SECRET', 'FACEBOOK_SECRET_NUMERO');
// 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 "<pre>";
print_r($response);
echo "</pre>"; // Uncomment this for printing the response Array
$name = $response["registration"]["name"];
$email = $response["registration"]["email"];
$password = $response["registration"]["password"];
$gender = $response["registration"]["gender"];
$dob = $response["registration"]["birthday"];
// Connecting to Database
mysql_connect('BD_HOST', 'USUARIO', 'CONTRASEÑA');
mysql_select_db('BASE_DE_DATOS');
$result = mysql_query("INSERT INTO users (name, email, password, gender, dob) VALUES ('$name', '$email', '$password', '$gender', '$dob')");
if ($result) {
// User successfully stored
echo "<pre>";
print_r($response);
echo "</pre>"; // Uncomment this for printing the response Array
// Redirect to some page
} else {
// Error
// Redirect to error page
}
} else {
echo '$_REQUEST is empty';
}
?>