Crear lector de feeds de tu blog en Facebook
5. Actualizar automáticamente la aplicación
Cada vez que algún usuario abre directamente nuestra aplicación, Facebook actualiza su contenido, esto es, realiza de nuevo una petición al sitio web donde la tengamos alojada. Pero, si solo accedemos a la aplicación a través de nuestro perfil, podría mostrar contenido desactualizado.
Esto es un gran problema, puesto que la gente pasa mucho más tiempo viendo su perfil que cualquier otra cosa. Y para solucionarlo nos proponen dos métodos en el Wiki de Facebook: de manera directa e indirecta. Si el contenido de la aplicación es diferente para cada usuario, se debe usar el método directo. Pero puesto que nuestro canal RSS es el mismo para todos los usuarios, usaremos el método indirecto.
Para hacerlo utilizaremos un cron que haga peticiones a nuestra aplicación; y una session key infinita, de tal manera que nuestro cron pueda loguearse en Facebook. Así que siguiendo los pasos en la documentación de Facebook, creamos un script PHP (get_infinite_key.php) con lo siguiente y lo subimos en el directorio de nuestra aplicación:
<?php
require_once('appinclude.php');
// forzar un login
$facebook->require_frame();
$user = $facebook->require_login();
// Esto imprime la tal "infinite session key"
echo $facebook->api_client->session_key;
?>
Luego, cierra la sesión actual de Facebook y borrar todas las cookies (o usa otro navegador); e invoca el script que acabamos de crear (por ej.: http://casidiablo.net/fb/get_infinite_key.php), en donde tendremos que loguearnos:

Asegúrate de marcar la opción “Guardar mi información de registro…”. Luego de eso verás tu infinite key:

Guárdala en un lugar seguro, e inmediatamente borra el archivo get_infinite_key.php de tu servidor. Es hora de crear nuestro cronjob, que utilizando la infinite key, hará peticiones a nuestra aplicación, actualizándola de paso en los perfiles de los usuarios. Por tanto, modificaremos un poco nuestro archivo conf.php, añadiendo nuestra infinite key:
<?php $appapikey = 'TU_APP_API_KEY'; $appsecret = 'TU_APP_SECRETO'; $infinite_session_key = 'TU_INFINITE_SESSION_KEY'; $appcallbackurl = 'http://casidiablo.net/fb/'; $rss_url = 'http://casidiablo.net/fb/rss.php'; $feed = 'http://casidiablo.net/feed/'; ?>
Y creamos un script llamado cronjob.php, el cual utilizando la infinite key actualizará la aplicación para todos los usuarios:
<?php
include('conf.php');
require_once 'facebook.php';
$facebook = new Facebook($appapikey, $appsecret);
$facebook->api_client->session_key = $infinite_session_key;
// Actualizamos el canarl RSS
$facebook->api_client->fbml_refreshRefUrl($rss_url);
?>
Ahora, solo debemos programar un cron:
crontab -e
Y añadimos:
0,30 * * * * /usr/bin/wget -O /dev/null http://casidiablo.net/fb/cronjob.php &> /dev/null
Con este cron se realizarán peticiones a cronjob.php cada 30 segundos, cámbialo según tus preferencias.
23 Comentarios | deja el tuyo



oliiiii chaooooooooooooooo
Como logro todo eso en .net alguien sabe de un tutorial?
Pues no entiendo a que te refieres, Max
Hola tengo el siguiente problema ya segui los pasos para crear mi lector de Feed en Facebook pero me da el siguiente error
FBML Error (line 2): unknown tag “rss” y no he podido solucionarlo, agradezco la toda la ayuda posible
Hola tengo la siguiente duda con la aplicacion que cree parece que no me funciona porque me da el siguiente error:
FBML Error (line 2): unknown tag “rss”
y no se a que se debe esto, necesito ayuda con esto, por favor
Hay un foro especial para desarrolladores de Facebook, allá te pueden guiar mejor.
Un saludo.
en mi pc aparece siempre cuando voy a iniciar secion [oject error] que hago
por q no me deja hacer nada en el facebook