El otro dia, por un proyecto, necesitaba crear una landing page para una pagina de facebook y tenía que discriminar si un usuario que accediese era fan o no y mostrar un contenido distinto a los fans y otro a los no fans.
Como ya viene siendo algo habitual, facebook nos modifica las cosas cada dos por tres y esta vez nos ha variado la forma de crear landig pages en nuestra fan page y esto implica la forma de discriminar a los usuarios.
Antiguamente, lo que hacíamos es ir a instalar una aplicación que se llama fbml (digo llama, por que aún existe, aunque no la podemos usar) y en esta, utilizábamos los tags <fb:visible-to-conection>
Y si ahora ya no existe este método, como lo hacemos para discriminar los fans?
Hay dos opciones. Una seria la de instalar aplicaciones que hacen lo mismo, como podría ser Cool Tabs. La otra, es crear una aplicación propia(facebook nos dice que tenemos que hacerlo así
).
Personalmente, prefiero la solución 2 ya que nos permite mayor versatilidad.
Facebook ahora pasa una variable codificada por POST para las aplicaciones tipo pestaña, llamada signed_request. Todos los detalles generales sobre esta variable los puedes ver aquí.
Vamos a crear nuestra aplicación.
No voy a explicar como crear una aplicación de facebook por que hay muchas webs que lo explican. Aqui, nuestro amigo google, me ha chivado unas cuantas webs que nos lo explican.
Google
Comentar, que cuando creemos la aplicación, en la pestaña de edición de la app "Integración con facebook", debemos rellenar los campos de "Page tabs". En url de pestaña solo debemos insertar el mismo valor del canvas url.
Otro tema a revisar, para que nos funcione nuestra aplicación, es comprobar que el "OAuth 2.0 para Canvas esté activada(esto lo encontramos dentro de las opciones de la aplicación y por defecto ya esta activada - foto lateral)
Cuando tengamos la aplicación creada, vamos a modificar el fichero php que tengamos en nuestro servidor.
Este código es el que debemos insertar para discriminar los usuarios.
-
<?php
-
-
//Esta función nos parsea la firma encriptada y nos devuelve la info del usuario en sesión
-
function parsePageSignedRequest() {
-
$encoded_sig = null;
-
$payload = null;
-
return $data;
-
}
-
return false;
-
}
-
?>
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
<html xmlns="http://www.w3.org/1999/xhtml">
-
<head>
-
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
-
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /><head>
-
</head>
-
<body>
-
-
<?php
-
// Vamos a comprobar la variable
-
$signed_request = parsePageSignedRequest())
-
-
if($signed_request->page->liked) {
-
echo "Soy FAN
"; -
}
-
else {
-
echo "No soy FAN
"; -
}
-
?>
-
</body>
-
</html>
Guardamos y ya lo tenemos.
Descarga el fichero de ejemplo






Drupal developer








Hola, Buen dia… podrías ayudarme en algo?
he utilizado tu código y me sale “You are not a fan!” sea o no sea fan…
que podría estar pasando:: no he podido.
Me podrias comentar un poco como has creado la app? Creo que puede venir por aqui el problema. Un saludo!
Podeis crear una PAGINA WEB COMPLETA DENTRO DE FACEBOOK de manera totalmente automática y con un diseño profesional gracias a la aplicación MITUCAN HTML. Esta aplicación se instala en tu página de empresa en facebook (Fan Page) y solo tendrás que elegir el diseño que más te guste y personalizarla. Lograras crear una landing pages (pagina de aterrizaje) con la que captar fans gracias al botón “me gusta”
Podeis ver como funciona en la web oficial http://www.mitucan.com