Pedir permisos en una aplicación de Facebook
Escrito por giancarloSep 30
Desde hace ya un par de años estoy haciendo aplicaciones para Facebook y algo que uso casi siempre es el pedir permisos a los usuarios para poder acceder a sus datos, publicar en su muro, en el muro de sus amigos, saber su fecha de nacimiento, email, etc.
Este tutorial no explica como crear una aplicación, sino como pedir permisos al usuario.
Primero que todo a partir del 01 de octubre de 2011 Facebook no va a permitir tener una aplicación que corra en un dominio que no tengo un certificado SSL (https).
Bueno, yendo al grano. Cómo lo conseguimos?
Es muy simple, primero hay que descargar la clase Facebook (facebook.php), está en la carpeta “src”
En mi caso, normalmente ninguna página de la aplicación puede correr si no has aceptado los permisos. Entonces creo un PHP que lo llamo “header.php”
require_once("facebook.php"); $canvas_base_url = "http://apps.facebook.com/URL_DE_LA_APLICACION/"; $fanpage_base_url = "http://www.facebook.com/NOMBRE_DEL_FAN_PAGE"; $tab_base_url = "http://www.facebook.com/NOMBRE_DEL_FAN_PAGE?sk=app_IDDELAAPLICACION"; $facebook = new Facebook(array( 'appId' => 'IDDELAAPLICACION', 'secret' => 'CLAVE_SECRETA', 'cookie' => true, )); $session = $facebook->getSession(); $me = null; if($session){ try{ $me = $facebook->api('/me'); } catch(FacebookApiException $e) { } } if(!$me){ $loginUrl = $facebook->getLoginUrl(array('canvas' => 1, 'fbconnect' => 0, 'req_perms' => 'email, user_birthday', 'next' => $tab_base_url, 'cancel' => $fanpage_base_url)); echo("<script type="text/javascript">top.location.href='" . $loginUrl . "'</script>"); exit(); } |
Cuando el usuario ya aceptó los permisos de tu aplicación, entonces la variable “$me” tendrá los datos del usuario.
//PROBAR LA INFORMACIÓN echo "<pre>"; print_r($me); echo "</pre>"; |
Facebook te ayuda a ver todos los permisos que puedes solicitar al usuario.

Holaaa..
estoy haciendo unas pruebas con unas aplicaciones, en base al tutorial, todo me funciona perfecto, me dice lo de los permisos, pero al darle Permitir, simplemente te redireccionar al sitio web donde esta hospedada la aplicación y con la pagina totalmente en blanco?
Porque? .. sera por la falta del certificado?. o porqué?
He creado una aplicación con el código fuente publicado y me aparece el siguiente error, y efectivamente he visto que en los archivos facebook.php y base_facebook.php no existe tal método.
Fatal error: Call to undefined method Facebook::getSession() in /home/deet1979/public_html/facebookFlash/header.php on line 14
pensé que tenÃa desactualizada la clase pero en github tampoco aparece dicho método.
https://github.com/facebook/php-sdk/blob/master/src/base_facebook.php
como lo soluciono, debo actualizar el script que has publicado?
Estoy actualizando el post para que tengas el archivo “facebook.php” que yo he utilizado.