Cuando desarrollamos una aplicación para Facebook tenemos que tener claro los permisos que necesitamos del usuario, tanto los normales como los extendidos, esto implica que debemos detectar vía código cuando usuario nos ha concedido o no un permiso. Puede suceder también que el usuario nos conceda los permisos extendidos al instalar la aplicación pero luego los revoque, con lo que esta no funcionaría bien.
¿Cómo podemos detectar si el usuario que carga la aplicación tiene esa concesión de permisos activada? Pues muy fácil, por ejemplo, con FQL. Os pongo a continuación un ejemplo con el permiso extendido manage_page. El FQL lo ejecutaremos utilizando la API de Open Graph de Facebook.
Para poder utilizar este código necesitáis una aplicación instalada en Facebook, la librería de Facebook en vuestro servidor, un servidor que ejecute PHP y conocimientos avanzados de PHP.
require_once(“../facebook/src/facebook.php”); // Librería de Facebook PHP
$app_id = ‘————–’; // El id de tu app
$app_secret = ‘———————-’; // La clave de tu app
$facebook = new Facebook(array(
’appId’ => $app_id,
’secret’ => $app_secret,
));
$user = $facebook->getUser();
function gfile_get_contents($url){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 160);
curl_setopt($curl, CURLOPT_TIMEOUT, 160);
$result = curl_exec ($curl);
curl_close ($curl);
return $result;
}
// Detectar permisos
$fql_query_url = ‘https://graph.facebook.com/fql/?q=SELECT+manage_pages+FROM+permissions+WHERE+uid=’. $user
. ‘&’ . $access_token;
$fql_query_result = gfile_get_contents($fql_query_url);
$fql_query_obj2 = json_decode(preg_replace(‘/:(\d+)/’, ‘:”${1}”‘, $fql_query_result),true);
$bPermisos = false;
foreach($fql_query_obj2["data"] as $datos){
if($datos['manage_pages']==1){
$bPermisos = true;
}
}
if($bPermisos==false){
echo(“No tienes el permiso manage_pages activado”);
}else{
echo(“Tienes el permiso manage_pages activado”);
}
// — fin del detector de permisos — //
Espero que os sea de utilidad ![]()
Más Info en: http://feedproxy.google.com/~r/gabrielcuesta/COjp/~3/sWsMQC_Fu60/
| < Anterior | Siguiente > |
|---|