Home > ActionScript, Work > Compreendendo como funciona uma aplicação do Facebook

Compreendendo como funciona uma aplicação do Facebook

December 5th, 2009 Leave a comment Go to comments

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.

Facebook

Para que se possa entender melhor, um exemplo.

Imports:

import com.facebook.events.FacebookEvent;
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 _facebook       : Facebook;
private var _session        : FacebookSessionUtil;
private var _userCollection : FacebookUserCollection;
private var _user           : String;

Inicialização:

_user       = loaderInfo.parameters.fb_sig_user;
_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!

Categories: ActionScript, Work Tags: ,
  1. sara
    May 23rd, 2010 at 06:54 | #1

    Bom dia,

    Precisa de uma ajuda. Hoje ao entrar no meu facebook verifiquei que o meu profile mantinha- se, as fotos tambem, mas todos os meus amigos tinham desaparecido. Alguem deve ter entrado e apagado. Há alguma maneira de recuperar?
    Obrigada.

  2. August 19th, 2010 at 12:15 | #2

    Sinceramente não tenho a menor ideia. Provavelmente foi alguma instabilidade.

  1. No trackbacks yet.