lo que pasa que facebook antes las aplicaciones se usaban por medio de FBML
pero ahora las nuevas ya no dejan poner esa opcion es por eso que el codigo que pusiste no te funciona, te dejo un ejemplo de permisos si quieres
Código PHP:
<?php
$fbconfig['appid' ] = "APP_ID";
$fbconfig['api' ] = "CODIGO_API";
$fbconfig['secret'] = "API_SECRET";
//set application urls here
$fbconfig['baseUrl'] = "http://www.tuweb.com/rutadetuapp/"; tu web donde esta canvas
$fbconfig['appBaseUrl'] = "http://apps.facebook.com/tu_app/"; tu apps
$uid = null; //id del usuario
try{
include_once "facebook.php";
}
catch(Exception $o){
echo '<pre>';
print_r($o);
echo '</pre>';
}
// CREAMOS LA CONFIGURACION
$facebook = new Facebook(array(
'appId' => $fbconfig['appid'],
'secret' => $fbconfig['secret'],
'cookie' => true,
));
//CREAMOS LA PARTE DE DAR PERMISOS
// 'req_perms' => 'email,publish_stream,status_update' ES LA PARTE DE LOS PERMISOS lee en facebook si quieres dar mas permisos
$session = $facebook->getSession();
$loginUrl = $facebook->getLoginUrl(
array(
'canvas' => 1,
'fbconnect' => 0,
'req_perms' => 'email,publish_stream,status_update'
)
);
$fbme = null;
if (!$session) {
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
exit;
}
else {
try {
$uid = $facebook->getUser();
$fbme = $facebook->api('/me');
} catch (FacebookApiException $e) {
echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
exit;
}
}
// te imprimo todo los datos en un array y asi puedas consultar a tu usuario
echo '<pre>';
print_r($d);
echo '</pre>';
?>
Es una idea en general suerte ;)