Comunidad de diseño web y desarrollo en internet

El Graph API de Facebook y su integración con Flash

En días recientes, me encontraba yo muy ocioso, vagando de un lugar a otro por internet, haciendo montajes fotográficos comprometedores de gente, botándole el sitio a Apple por no dejar usar Flash en sus productos, esperando la salida de los Android tablets, cuando DE REPENTE, me topo con Facebook. Pero no entré a una página donde entran los simples mortales, noooo, entre a la documentación de Developers. Encontré varios cambios, entre ellos, un nuevo juguetito llamado Graph API.

Como dice la documentación:

Graphs API :

La nueva Graph API intenta simplificar drásticamente la manera en que los desarrolladores leen y escriben datos en Facebook. Presenta una visión simple y consistente de la gráfica social Facebook, que representan objetos de manera uniforme en el gráfico (por ejemplo, la gente, fotos, eventos y páginas de fans) y las conexiones entre ellas (por ejemplo, las relaciones de amigo, para compartir contenidos y etiquetas de fotos).


Algo así me puso el Translate de Google, pero en verdad empiezo a utilizarlo y veo que simplifica las cosas, les voy a explicar porque.

Mi usuario en Facebook es “bernethe”, entonces, solicito a Graph API la información asi: http://graph.facebook.com/bernethe

Como pueden ver, me devuelve el uid de Facebook, nombre completo, nombre, apellido, pagina perfil de Facebook, locación y sexo. Noto que por alguna razón, esta estructura que me devuelve, se me parece mucho a JSON, y veo una oportunidad para utilizar el “as3corelib” para hacer algo con Flash.

Así que abro Flash, y empiezo con el código, primero importo la clase JSON

Código :

import com.adobe.serialization.json.JSON;

Luego creo 3 variables, una de tipo URLRequest que es donde llamo al Graph API, una URLLoader donde guardo los datos que me trae el Graph API, y una de tipo Object donde estructuraré la info que solicité al Graph API.

Código :

var req:URLRequest = new URLRequest("http://graph.facebook.com/bernethe ");
var ld:URLLoader = new URLLoader(req);
var user:Object;

Para estructurar la info del usuario, necesito que esté cargada, por lo que al URLLoader le puse un listener. Así me aseguro de estructurar la información hasta que esté cargada.

Código :

ld.addEventListener(Event.COMPLETE,buildData);

La estructuración la hago dentro de la función buildData, que fue la función que llamé en el listener, que no he declarado, aquí la desarrollo:

Código :

function buildData(ev:Event):void {
   user = JSON.decode(ev.target.data);
   for(var it in user){
      trace(it+" => "+user[it]);
   }
}

Grande fue mi sorpresa al ver que funcionó, y no contento con eso, seguí escudriñándome en el API. Noté que puedo solicitar otros datos, cambiando el URLRequest:
http://graph.facebook.com/?ids=bernethe&fields=id,name,picture

Ahora puedo usar la foto dentro de Flash, y no solo eso, puedo solicitarle info de varios usuarios cambiando el URLRequest, y un poco la función:
http://graph.facebook.com/?ids=bernethe,freddyvega&fields=id,name,picture

Código :

function buildData(ev:Event):void {
   user=JSON.decode(ev.target.data);
   for (var it in user) {
      trace(it+":");
      for (var it2 in user[it]) {
         trace("\t"+it2+" => "+user[it][it2]);
      }
      trace("");
   }
}

En la documentación del API vienen más cosas que no he podido ver, por cuestiones de tiempo, pero están muy interesantes, como la opción de publicar a Facebook. Espero este tema les sirva tanto como me sirve a mi, y espero que ustedes lo utilicen.

Salu2

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate