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.
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
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;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);
}
Oscar-blog :
Musgo-blog :