sábado, 29 de agosto de 2009

Google maps y Facebook APIs, Exageradamente poderosos... Insoportablemente simples...

Hola programadores!!!

Esta vez quisiera compartir con ustedes mis primeros pinitos usando los APIs de Facebook y Google maps. Esta es una sencilla aplicación que pretende obtener tu lista de amigos de facebook recopilando alguna información de cada uno de ellos en un archivo XML. Puntualmente, la información que se almacena es el nombre, apellido, la ciudad y país de residencia y la version reducida de la foto de su perfil. El API libre de Facebook provee los métodos, $api_client->users_getInfo para obtener la informacion de un usuario facebook usando su facebook ID y $api_client->friends_get para obtener la lista de los ID's de los amigos del usuario registrado. En el script friends.php esta el código necesario para llamar estos metodos y construir el archivo XML.

Atraves de AJAX y el método google.maps.DownloadUrl es posible llamar el script friends.php y obtener el XML con la lista de amigos. El método google.maps.Xml.parse(doc) parsea el documento XML (la lista) y usando DOM es posible almacenar la informacion de todos tus amigos en un array de javascript. El archivo geofriends.html se encarga de configurar el mapa y recorrer el array, con la información de cada amigo construye el mensaje (nombre y ubicación de tu amigo) y llama al geocoder para obtener las coordenas de la ciudad donde él/ella residen. Dado que hacer llamadas repetitivas al servidor de geocodificación puede colgar el script y saturar el servidor se usa el método setTimeout() de javascript para gestionar cada geocodificación en intervalos prudentes de tiempo. De esta manera también se logra ejecutar y mostrar la información de cada amigo enseguida esta es devuelta por el geocoder, lo que le da más fluidez a la aplicación (no tienes que esperar a geocodificar toda la lista para mostrarla en el mapa).

Dado que la lista de amigos puede ser extensa, friends.php solo retorna los amigos que residan fuera de tu ciudad. Obviamente, deberas haber configurado tu ciudad de residencia en la configuración de tu perfil, todos tus amigos que no hayan configurado el lugar de su residencia no serán tenidos en cuenta.

Este es el código fuente del archivo con los comandos del API de Facebook para obtener la lista de tus amigos (friends.php) y este es el código fuente con los comandos de API de Google maps para gestionar la lista y construir el mapa (geofriends.html).

Teóricamente esta es una aplicación facebook y si tienes una cuenta activa puedes y eres libre de instalarla y TEORICAMENTE debería funcionar. Toda sugerencia y retroalimentación serán bienvenidas. Puedes instalarla dirigiendote a esta dirección...

http://apps.facebook.com/geofriendstwo/

o en ...

http://acalderon.50gigs.net/m/geofriends.html

si no estas logeado a facebook, se te solicitará tu login y password para tener acceso.

Este es un video de como funciona para mi usuario...



Aqui hay algunos links de soporte e interés...

Información básica sobre Facebook applications.

Guia de referencia Facebook API.

Guia de referencia Google maps API.

Tips and tricks de javascript.

Hasta la próxima y que las fuentes te acompañen!!!


No hay comentarios: