La red de redes se esta convirtiendo en un espacio tan atractivo para los usuarios como para los desarrolladores web
Ayer se conoció la noticia de que Facebook había logrado flujo positivo en sus cuentas, es decir que los ingresos superaban los gastos de mantener ese enorme monstruo en línea. Además se dio a conocer que la red llego a los 300 millones de usuarios.
A que desarrollador le gustaría acceder a 300 millones de usuarios? bueno aunque sea a la mitad de ellos, o por lo menos el 00, 01 %....
Bueno la posibilidad esta presente, como dicen todas las reviews de Facebook que podemos encontrar por allí: Facebook es de especial interés por que permite una plataforma sobre la que terceros desarrollan aplicaciones accediendo a la propagación viral propia de la red social.
Ahora como crear una aplicación ya es un tema un poco mas complicado para una nota de prensa pero como el titulo es ese vamos a ver como hacemos una aplicación básica que no tiene ningún comportamiento propio pero que hace uso de varias funciones del API para acceder a informacion de los contactos y que además realiza publicaciones en el muro del usuario:
Facebook permite trabajar en múltiples entornos a los que hay que agregarles determinadas bibliotecas provistas por el mismo Facebook. Puntualmente programo en php así que voy a utilizar el API para php.
Para empezar hay que estar inscripto en Facebook y acceder a la pagina de Creadores en la dirección: http://www.facebook.com/developers/ de allí hay un botón que permite crear nuestra aplicación. Como configurarla lo pueden obtener de cualquier blog dedicado a programación que seguramente posteo el tema recientemente, para estos ejemplos debe ser un iframe y además es necesario copiar las API Key y Application Secret de tu nueva aplicación, después se deben bajar la librería de PHP y subirla a su servidor en donde alojaran la aplicación.
Deben insertar en su php el archivo facebook.php y a continuación pedir el ID del usuario que esta iniciando sesión en nuestra app:
$appapikey = '------------------------------------------------------';
$appsecret = '+++++++++++++++++++++++++++++++';
$facebook = new Facebook($appapikey, $appsecret);
$user_id = $facebook-> require_login();
Luego de eso podemos acceder a una funcion del objeto facebook que nos devolverá las ID de todos los amigos de nuestro usuario:
$friends_ids = $facebook-> api_client-> friends_get();
Si por ejemplo nuestra aplicación trabaja con datos guardados en una base de datos podemos utilizar el ID de usuario para relacionar los distintos inicios de sesión, así cuando un usuario deje por ejemplo un mensaje este podrá visualizarse solamente a sus amigos.
Para hacer estas primeras acciones no hizo falta mas que el usuario inicie sesión en la aplicación pero si queremos acceder a otros permisos como por ejemplo la publicación en el muro del usuario de un enlace debemos pedir por medio del API que el usuario confirme el acceso a su muro, esto se hace preguntando por la propiedad y redirigiendo a la pagina en cuestión si no esta disponible:
// extraemos si tiene permisos sobre 'share_item'
$hasPermission = $facebook-> api_client-> call_method("facebook.users.hasAppPermission", array(
'uid' => $user_id,
'ext_perm' => 'share_item'
));
if ( !$hasPermission )
{
// Si no los tiene redirigimos a la página para solicitarlos
header( "location: http://www.facebook.com/authorize.php?api_key=".$appapikey."& v=1.0& ext_perm=share_item& next=[url luego de aceptar]& next_cancel=[url si no acepta]");
}
else
{
// si tiene permisos no hacemos nada y continuamos nuestra app
}
Nótese que uno de los parametros enviados a authorize.php es la appikey, eso quizas sea un problema a solucionar, no me parece mostrarlo así nomas, es casi como el add de fotolog.
Ahora que tenemos los permisos de publicar en el muro podemos escribir un mensaje en el:
//Publica su lugar en el muro
$message = 'Estuvo jugando en la aplicación de juan perez';
$attachment = array('name' => 'Puntaje de '.$user_id, 'href' => 'http://apps.facebook.com/aplicaciondejuanperez/', 'caption' => '{*actor*} publico '.$user_id, 'description' => $algunavariableenphpquedescribaalgo, 'properties' => array('category' => array('text' => $tagdelaapp, 'href' => 'http://apps.facebook.com/aplicaciondejuanperez/'), 'ratings' => '5 estrellas, obvio'), 'media' => array(array('type' => 'image', 'src' => 'http://www.imageshack.us/smile.jpg', 'href' => 'http://apps.facebook.com/aplicaciondejuanperez/')), 'latitude' => '41.4', 'longitude' => '2.19');
$action_links = array(array('text' => 'Perfil de la Aplicacion', 'href' => 'http://www.facebook.com/apps/application.php?id=9282948372984374832'));
try { $facebook-> api_client-> stream_publish($message, $attachment, $action_links); } Catch (Exception $e) { }
//Termina de publicar
Que cosas interesantes hay aquí:
Tenemos un mensaje principal, luego construimos una variable bastante grande en donde como pueden ver se pueden editar todo lo que esta entre comillas simples o es variable php, importante aclaración: en anteúltimo renglón hay un id=muchosnumeros esa es la ID visible de la aplicación, es el acceso al perfil de la misma. Y lo otro importante es poner la llamada al API de php entre bloques try catch por que si no tenemos permisos o hemos sobrepasado el máximo permitido nos dará un error en tiempo de ejecución que no podremos sortear, salvo que pongamos try catch.
Bueno espero haberlos ilustrado un poco, muy poco. Pero para empezar a jugar es suficiente.
Les dejo mi aplicación para que vean cual es el verdadero potencial de las aplicaciones de Facebook, se trata de un mapa de Google Maps donde los usuarios pueden dejar un marcador y darle una descripción, sus amigos pueden ver los marcadores en cuestión.
Mi servidor envía aproximadamente 20kb por cada usuario que agrega un lugar, increíble no?
http://apps.facebook.com/mapasatelitalonda/
0 comentarios:
Publicar un comentario en la entrada