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 :
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

Por Lucas el 08 de Mayo de 2010
"No se encontro la definición com.adobe.serialization.json:JSON."
"Acceso a una propiedad JSON no definida"
Que me esta faltando hacer?
Por unnamed el 10 de Mayo de 2010
aqui la url, http://code.google.com/p/as3corelib/
Por Daniel el 10 de Mayo de 2010
Gracias,
Daniel
¿Cual es el tamaño óptimo para desarrollar una aplicación de Facebook?
Gracias!
Por bernethe el 18 de Mayo de 2010
Por paolo el 19 de Mayo de 2010
Por Alberto el 17 de Junio de 2010
PERO QUE PROBLEMON: estoy usando este ejemplo segundo.
var req:URLRequest = new URLRequest("http://graph.facebook.com/?ids="+uid.text+"&fields=id,name,picture");
var ld:URLLoader = new URLLoader(req);
var user:Object;
ld.addEventListener(Event.COMPLETE,buildData);
function buildData(ev:Event):void {
user = JSON.decode(ev.target.data);
for (var it in user) {
username.text=(it);
for (var it2 in user[it]) {
trace(user[it][it2]);
picture.text=(user[it][it2]);
}
Y no puedo lograr pasar corectamente los datos, me funciona pero no siempre me carga los datos donde le puse, Y LOS MAS IMPORTANTE es que el nombre no lo puedo pasar jamas... utiliso el trace(user[it][it2]); para controlar si me carga todo correctamente... y el resultado es perfecto... pero no logro pasar el nombre...
PORFA ALGIEN QUE ME DE UNA MANO PORFAVOR!!! ho bernethe!!
Gracias
Por apoloux el 31 de Octubre de 2010
Error opening URL 'http://graph.facebook.com/bernethe'
Error #2044: Unhandled ioError:. text=Error #2032: Stream Error.
Hay algo estra que configurar?
Por flashodelico el 10 de Febrero de 2011
estoy siguiendo tu tutorial, que me parecio muy bueno y muy claro.
podrias explicarme de donde sale 'it' o 'it2', por favor?
y en caso que quiera, por ejemplo imprimir el nombre del usuario en un campo de texto dinamico, como podria hacerlo?
desde ya muchas gracias, por el tutorial y, por anticipado por tu respuesta.
saludos,
sebas.
Por DDDDDDDDDDDDDDDDDDDD el 10 de Marzo de 2011
Por JAAAAAAAAAAAAAA el 10 de Marzo de 2011
Por APESTA LA WEB el 10 de Marzo de 2011
Por Muñeca el 22 de Julio de 2011
Por Ram05 el 13 de Septiembre de 2011
como puedo integrar esto sin usar FBML???
(pues FB ya lo botó)