estoy migrando mi viejo FB aplicación a la nueva API gráfico usando el PHP APICómo comprobar si el usuario está conectado con el nuevo facebook php api
Tengo dos páginas: las públicas (que no requieren la conexión del usuario) y los privados (que hacer)
Así que el código de cada página php en mi aplicación funciona de la siguiente manera:
if (this_page_requires_user_login){
$facebook = new Facebook(...) ;
$session = $facebook->getSession ;
if (!$session){
$url =$facebook.getLoginUrl(array(next => current_page);
echo "<fb:redirect url=$url/>" ;
}
// the rest of the code continues here
Ahora bien, como se puede ver, esta forma de trabajo hacia delante cada página a la URL de inicio de sesión y mientras funciona, también es lento y agrega el & session = {bla} cadena a url muy simple.
Necesito una forma de verificar donde un usuario ya está conectado antes de redirigirlo a la página de inicio de sesión. Pero no puedo encontrar dicho método en php api. ¿Cuál es la mejor manera de hacer esto?
EDITAR
Esto parecía hacer el truco
if ($session) {
try {
$me = $facebook->api('/me');
if ($me) {
// here comes your code for user who is logged in
}
} catch (FacebookApiException $e) {
login()
}
}else{
login()
}
function login(){
$url =$facebook.getLoginUrl(array(next => current_page);
echo "<fb:redirect url=$url/>" ;
}
Si ha almacenado el token de acceso y lo está utilizando, esto no funciona, debido a que la llamada a la API todavía funciona sin lanzar una excepción, pero luego cuando se les redirige a la getLogoutUrl por ejemplo, sólo se envía a la página de inicio de Facebook, en lugar de enviarlo a su sitio web – andrewtweber
@andrewtweber exactamente. Gracias. –
Debes descifrar la url anteriormente, por eso no redirigir: Php echo rawurlencode ($ logoutUrl); ?> –