classes

FacebookLogger.as

Stiahnuť FacebookLogger.as

package sk.yoz.net
{
    import com.facebook.Facebook;
    import com.facebook.events.FacebookEvent;
    import com.facebook.utils.FacebookSessionUtil;
    
    import flash.display.LoaderInfo;
    import flash.events.EventDispatcher;
    
    import sk.yoz.events.FacebookLoggerEvent;
    
    public class FacebookLogger extends EventDispatcher
    {
        protected var facebook:Facebook;
        protected var session:FacebookSessionUtil;
        
        private var _connected:Boolean = false;
        
        public function FacebookLogger()
        {
            super();
        }
        
        [Bindable(event="FacebookLoggerEventCONNECTED")]
        public function get connected():Boolean
        {
            return _connected;
        }
        
        protected function set connected(value:Boolean):void
        {
            _connected = value;
            var type:String = FacebookLoggerEvent.CONNECTED;
            dispatchEvent(new FacebookLoggerEvent(type));
        }
        
        public function init(apiKey:String, appSecret:String, 
            loaderInfo:LoaderInfo):void
        {
            session = new FacebookSessionUtil(apiKey, appSecret, loaderInfo);
            session.addEventListener(FacebookEvent.CONNECT, connectHandler);
            facebook = session.facebook;
            
            if(loaderInfo.parameters.fb_sig_session_key)
                 session.verifySession();
            else
                login();
        }
        
        protected function login():void
        {
            session.login();
        }
        
        public function validate():void
        {
            session.validateLogin();
        }
        
        protected function connectHandler(event:FacebookEvent):void
        {
            if(!event.success) 
                return login();
            
            protected::connected = true;
        }
    }
}