¿Quieres registrarte?

Conectar ActionScript 3 con Facebook usando la API de Adobe

Por: phoxer
22 de Mayo del 2009
696 de clabLevel
Otros artículos de phoxer
4,893 visitas

Hace unos días me comenzó la curiosidad de poder hacer una aplicación para Facebook en ActionScript 3, después de muchos dolores de cabeza, pruebas, ningún ejemplo bueno en Internet que explique bien como poder conectar Flash o Flex con la Api de Facebook, encontré la página donde Adobe está desarrollando una API para conectarse localmente o externamente, directamente a la plataforma de Facebook.

Bien lo que les vengo a ofrecer es evitarles el mismo dolor de cabeza y perdida de tiempo que me causo a mi tratar de conectarme a Facebook, asi que a continuación les dejo el código limpio para poder conectarse a la plataforma de Facebook. :wink:

Aviso Importante: este método solo funciona sobre Facebook, no funciona localmente, para generar aplicaciones localmente ver este video.

Veamos algo de código..
Importamos todas las clases que vamos a utilizar para el desarrollo

Código :

import com.facebook.commands.profile.SetFBML;
import com.facebook.commands.users.HasAppPermission;
import com.facebook.commands.users.GetInfo;
import com.facebook.data.users.GetInfoData;
import com.facebook.data.BooleanResultData;
import com.facebook.data.auth.ExtendedPermissionValues;
import com.facebook.data.users.HasAppPermissionValues;
import com.facebook.data.users.GetInfoFieldValues;
import com.facebook.data.users.FacebookUser;
import com.facebook.errors.FacebookError;
import com.facebook.events.FacebookEvent;
import com.facebook.net.FacebookCall;
import com.facebook.Facebook;
import com.facebook.session.WebSession;
import com.facebook.utils.FacebookSessionUtil


Ahora vamos a obtener todas las variables que Facebook nos pasa por FlashVars, estas variables contienen información importante para el desarrollo.
También comenzamos a generar las variables que utilizaremos en la aplicación.

Código :

var flashVarsParams:Object = loaderInfo.parameters;

var fbSessionUtil:FacebookSessionUtil = new FacebookSessionUtil("*ApyKey", null, loaderInfo);
fbSessionUtil.addEventListener(FacebookEvent.CONNECT, onFacebookConnect, false, 0, true);
var fb:Facebook = fbSessionUtil.facebook;
var user:FacebookUser;

*ApyKey: Es el código que Facebook te da al crear un nuevo espacio para tu aplicacíón.

Ahora vamos a generar las funciones que nos permitan interactuar con la base de datos de Facebook.

Código :

function isAppAllowed(SessionKey:String):void {
   if (SessionKey != null) {
      fbSessionUtil.verifySession();
   } else {
      shown.text="Facebook nesesita validad al usuario.";
   }
}
isAppAllowed(flashVarsParams.fb_sig_session_key);

function onFacebookConnect(e:FacebookEvent):void { 
   if (e.success){
      setApplicationFBML();
   } else {
      shown.text="Error, No se puede conectar a Facebook.";
   }
}

function setApplicationFBML():void{
   var call:FacebookCall=fb.post(new GetInfo([fb.uid],[GetInfoFieldValues.ALL_VALUES]));
   call.addEventListener(FacebookEvent.COMPLETE,onGetInfo);
}

function onGetInfo(e:FacebookEvent):void{
   user=(e.data as GetInfoData).userCollection.getItemAt(0) as FacebookUser;
   trace("Hello "+user.first_name+" "+user.last_name);
}


Listo con esas pocas lineas de código podemos conectarnos a la plataforma de Facebook y obtener de la base de datos
la información de los usuarios. ^^

Enviar a twitter Enviar a facebook


También te interesa


Etiquetas actionscript_3 facebook api

Comentarios | Enviar un comentario
Interesante.. buen tip (y)
Por: Zguillez
Buen tip phoxer.
Por: LongeVie
muy buen tip ^^
Por: eldervaz
buen tip,

"Facebook neCesita validar al usuario."; !!!

:)
Por: pepe++-blog
Soy yo,o este artículo tenía un video y estaba más completo el fin de semana ?
Por: xxxlolo-blog
Esto supera ampliamente mis capacidades :(
Por: Raalej-blog
Hola, como haces para obtener esto : flashVarsParams.fb_sig_session_key
Por: oscar-blog
Gracias por la aportacion.
Estoy intentando hacer algo, pero no hay forma de que me funcione tu codigo phoxer.

falla en la funcion isAppAllowed, SessionKey parece ser null y no se porque
Por: Musgo-blog

Oscar-blog :


Hola, como haces para obtener esto : flashVarsParams.fb_sig_session_key

Hola Oscar, esos son variables que entran por FlashVars por defecto en Facebook, solo las obtienes cuando usas el FB:SWF que es para embeber contenido SWF en el Canvas de Facebook, de otro modo no vas a tener esos valores.


Musgo-blog :


Estoy intentando hacer algo, pero no hay forma de que me funcione tu codigo phoxer.

falla en la funcion isAppAllowed, SessionKey parece ser null y no se porque


Lo mismo para vos Musgo, te debe de tirar error ya que lo debes estar probando en modo local.. proba de embeber el swf en la etiqueta FB:Swf de Facebook sobre una aplicacíon..

Yo lo compartí porque a mi me funciono muy bien.. estos son los juegos en flash que hice para facebook con esta Api..
Simon Extreme
Hanged Monkey
Por: phoxer
oooooooooooooooooooooola los amo a todos
Por: sabrina-blog
Como se podria poner un mensaje en el muro de facebook desde la api lei la api pero no envia nada a fecebook aun cuando me eh conectado correctamente.

gracias.
Por: Alberto-blog
Gracias por el blog, muy util. Tengo un par de preguntas que te agradecería que me resolvieras:
- El código ese lo copio directamente en el Flash? (tengo el CS4 y me da sintax error al lanzar la película).
- Por último ¿qué codigo necesito poner en ActionScript para que cuando el usuario haga clic en un botón le aparezca la ventana de ¿quieres publicarlo en tu muro?

Muchas gracias a todos
Por: mok-blog
Me gustó lo del chequeo existoso de la conexión era lo que le faltaba al mio. Yo armé lo mismo pero generando una aplicación air.
http://www.mentesflash.com.ar/blog/2010/03/conexion-de-facebook-y-as3/

Luego voy a cambiar eso, porque lo estaba haciendo con un "try"

gracias!
Por: Marco Cartolano-blog
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.