Estoy intentando integrar Facebook Connect... bueno, de hecho creo que ya quedó integrado, conecta, obtiene el uid, el basic profile, etc…
Pero tengo un problema, y es que si estando logueado con Facebook Connect, yo cierro la sesión en Facebook.com, al volver a mi sitio y recargar, me sale el siguiente error:
Fatal error: Uncaught exception 'FacebookRestClientException' with message 'Session key invalid or no longer valid'
Entiendo que se debe a que yo sigo intentando trabajar con esa sesión, que fue cerrada desde Facebook.com, entonces dicha sesión ya no existe y por eso se produce el error…
Mi pregunta es… ¿Cómo averiguar si la sesión todavía existe o no existe? Es decir… ¿Cómo saber si el usuario cerró sesión en Facebook y asi poder cerrarla en mi sitio y de esa forma evitar el error?
Desde ya, muchas gracias!!
Saludos.
Bueno... ya lo resolví

Finalmente lo que es hago es catchear el error y listo...

No se si es la solución más óptima, pero funciona bien...
Si alguien tiene el mismo error que tenía yo, aquí les dejo el source code comentado:
h t t p : // está separado porque el foro piensa que a través de las etiquetas PHP estoy pasando URLs de Spam xD
Código PHP:
<?php
require_once 'facebook/facebook.php'; //Ruta de la api...
$Aplicacion = 'Ingresa aquí la Key que identifica a tu aplicación...'; //No olvides ingresar la key de tu aplicación
$ClaveSecreta = 'Ingresa aquí tu SecretKey...'; //No olvides ingresar la clave proporcionada por FB
$Facebook = new Facebook($Aplicacion, $ClaveSecreta);
$appcallbackurl = "H T T P : //".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$Logueado = 0; // Declaramos que NO estamos logueado (más abajo definiremos si es que lo estamos o no)
If ($Facebook->get_loggedin_user()) //Obtenemos los datos del usuario logueado (si es que existen)
{ //si existen
try //probamos de obtener los datos de la sesión
{
$uid = $Facebook->require_login(); //obtenemos el id del user en FB
$user_details = $Facebook->api_client->users_getStandardInfo($uid, array('last_name','first_name')); //intentamos obtener un poco de información del perfil
$Nombre = $user_details[0]['first_name']; //Almacenamos los datos del array
$Apellido = $user_details[0]['last_name']; //Seguimos con la matriz, esta vez almacenamos el Apellido
$Logueado = 1; //Declaramos que SI estamos logueado (aunque lo estamos probando todavía)
}
catch(Exception $e) //Intentamos capturar algún error debido a si la sesión venció, o el usuario cerró sesión desde FB o cualquier otro motivo que haya producido la caducación de la sesión y por lo tanto un error
{
$Logueado = 0; //si es asi, si pasó algo de eso, informamos que entonces NO estamos logueados (antes por existir un $uid dijimos que lo estabamos)
}
}
If ($Logueado == 1) //en caso de existir un $uid y no haber pasado por la captura del error, la variable $Logueado tendrá el valor de 1 que le asignamos más arriba, asi que por lo tanto mostramos lo que corresponda a estar logueados.
{
?>
Bienvenido <b><? echo "$Nombre $Apellido"; ?></b>
<br><br>
Seguro que lo más conveniente será almacenar tu $uid (<? echo $uid; ?>) en la base de datos y trabajar contigo como si fueras un usuario registrado via web.
<br><br>
Saludos!
<?
}
else //Si $Logueado es diferente a 1, porque la variable $uid está vacía o porque se produjo el error debido a la sesión caducada, entonces mostramos el botón de Facebook Connect...
{
?>
Bienvenido Desconocido, por favor, presiona sobre el botón e inicia sesión
<br><br>
<fb:login-button length="long" onlogin="location.href='<? echo $_SERVER['REQUEST_URI'];?>'"></fb:login-button>
<script type="text/javascript" src="H T T P : //static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php"></script>
<script type="text/javascript">
FB.init("Ingresa aquí la Key que identifica a tu aplicación...","xd_receiver.htm");
</script>
<?
}
?>

Saludos
