Compreendendo como funciona uma aplicação do Facebook
Na última semana estive trabalhando no projeto de uma aplicação que roda dentro do Facebook, como eu nunca tinha feito nada pro Facebook, no começo achei tudo meio estranho, mas no fim das contas as coisas começaram a fazer sentido.
A primeira coisa a fazer é baixar a biblioteca do php e a biblioteca AS3, na hora de editar seu arquivo index, não esqueça de dar uma olhada na documentação do FBML e no Developer roadmap.
Quando você adiciona um SWF via FBML, ele mesmo já passa algumas informações importantes via flashvars, secret e fb_sig_user (id do usuário que está usando sua aplicação). Com isso já é possível começar a aplicação. O Fluxo no Facebook está representado (toscamente, claro) no diagrama abaixo.

Para que se possa entender melhor, um exemplo.
Imports:
import com.facebook.Facebook;
import com.facebook.net.FacebookCall;
import com.facebook.utils.FacebookSessionUtil;
import com.facebook.data.users.FacebookUser;
import com.facebook.data.users.FacebookUserCollection;
import com.facebook.commands.users.GetInfo;
import com.facebook.data.users.GetInfoData;
Declarações:
private var _session : FacebookSessionUtil;
private var _userCollection : FacebookUserCollection;
private var _user : String;
Inicialização:
_session = new FacebookSessionUtil(API_KEY, SECRET, loaderInfo);
_session.verifySession();
_facebook = _session.facebook;
Chamando um dos métodos e tratando a informação:
* Chamada para recuperar todos os amigos do usuário
*/
private function _getFriends () : void
{
var _getFriendsCall : FacebookCall = _facebook.post(new GetFriends(null, _user));
_getFriendsCall.addEventListener(FacebookEvent.COMPLETE, _getFriendsComplete, false, 0, true);
}
/**
* Recupera os ids dos amigos do usuário e dispara a chamada para buscar as informações dos usuários
*/
private function _getFriendsComplete(e:FacebookEvent):void
{
e.currentTarget.removeEventListener(FacebookEvent.COMPLETE, arguments.callee, false);
var friends : FacebookUserCollection = GetFriendsData(e.data).friends || new FacebookUserCollection();
var i : int = friends.length;
var aFriends: Array = [].concat();
while (i--)
{
aFriends.push(FacebookUser(friends.getItemAt(i)).uid);
}
_toCollection(aFriends);
}
/**
* Busca os detalhes selecionados de todos os amigos do usuário
*/
private function _toCollection (aUids : Array = null) : void
{
var columns : Array = [GetInfoFieldValues.NAME, GetInfoFieldValues.PIC_SQUARE, GetInfoFieldValues.PIC];
var info : FacebookCall = _facebook.post(new GetInfo(aUids, columns));
info.addEventListener(FacebookEvent.COMPLETE, _createCollection, false, 0, true);
}
/**
* Armazena numa collection as informações dos amigos do usuário
*/
private function _createCollection(e:FacebookEvent):void
{
e.currentTarget.removeEventListener(FacebookEvent.COMPLETE, arguments.callee, false);
_userCollection = GetInfoData(e.data).userCollection;
//trace(FacebookUser(_userCollection.getItemAt(0)).name)
}
Acho que com isso já fica mais fácil começar a desenvolver seus aplicativos, daí é possível se aprofundar mais estudando a documentação da API do Facebook e da biblioteca AS3.
Ps.: Se você usou este post para começar sua aplicação, deixe o link nos comentários!

Last
Twitter
LinkedIn
Facebook