From e79312a284b38b82657d1b577caeae50aa369a78 Mon Sep 17 00:00:00 2001 From: Justin Bishop Date: Tue, 7 Jul 2009 09:55:43 -0700 Subject: [PATCH] Changed the way we auth a bit. added a logout option to the lib. --- fb/FBAPI.as | 2 +- fb/FBConnect.as | 24 ++++++++++++++++++++++-- fb/display/FBDialog.mxml | 2 +- fb/util/Output.as | 2 +- fbair.mxml | 2 +- fbair/nile/NileContainer.mxml | 4 ++-- fbair/util/CommentCache.as | 1 + 7 files changed, 29 insertions(+), 8 deletions(-) diff --git a/fb/FBAPI.as b/fb/FBAPI.as index f209569..adf9acb 100755 --- a/fb/FBAPI.as +++ b/fb/FBAPI.as @@ -37,7 +37,7 @@ package fb { public class FBAPI { private static const restURL:String = - "http://api.facebook.com/restserver.php"; + "http://api.jubishop.devrs006.facebook.com/restserver.php"; private static var auth_token:String; private static var session_key:String; diff --git a/fb/FBConnect.as b/fb/FBConnect.as index 7d91448..0705239 100755 --- a/fb/FBConnect.as +++ b/fb/FBConnect.as @@ -63,7 +63,7 @@ package fb { 'publish_stream', 'auto_publish_short_feed' ]; - private static var permissions:Array = new Array();; + private static var permissions:Array = new Array(); private static var validating_permissions:Array; // Local filestorage (desktop "cookie") @@ -119,7 +119,7 @@ package fb { if (validating_permissions) return; // Ask about all these first, to see if we're already auth'd - dispatcher.dispatchEvent(new FBEvent(FBEvent.ALERT, + dispatcher.dispatchEvent(new FBEvent(FBEvent.ALERT, "Checking Extended Permissions")); validating_permissions = permission_names; FBAPI.callMethod("fql.query", { @@ -266,11 +266,31 @@ package fb { sharedObject.data["secret"] = session.secret; status = Connected; + + Output.log("Loaded session from login dialog: ", + session.key, session.uid, session.expires, session.secret); } else { status = NotLoggedIn; } } + // This will log us out if we have a session + public static function logout():void { + if (!api_key) return; + + if (status == Connected) { + var expiration:JSONLoader = FBAPI.callMethod("auth.expireSession"); + expiration.addEventListener(FBEvent.SUCCESS, loggedOutUser); + expiration.addEventListener(FBEvent.FAILURE, loggedOutUser); + } else loggedOutUser(); + } + + // Callback from restserver of when session is dead + private static function loggedOutUser(event:FBEvent = null):void { + session = null; + status = NotLoggedIn; + } + // Called internally when we've discovered we're unauthenticated private static function unauthenticated():void { validating_permissions = null; diff --git a/fb/display/FBDialog.mxml b/fb/display/FBDialog.mxml index 41417a8..eaca691 100755 --- a/fb/display/FBDialog.mxml +++ b/fb/display/FBDialog.mxml @@ -61,7 +61,7 @@ private static const MINIMUM_HEIGHT:int = 8; public static const FacebookURL:String = - "http://www.facebook.com"; + "http://www.jubishop.devrs006.facebook.com"; public static const NextPath:String = FacebookURL + "/connect/login_success.html"; diff --git a/fb/util/Output.as b/fb/util/Output.as index d0885b0..eb22647 100644 --- a/fb/util/Output.as +++ b/fb/util/Output.as @@ -24,7 +24,7 @@ package fb.util { import fb.util.FlexUtil; public class Output { - private static var verbose:Boolean = false; + private static var verbose:Boolean = true; private static var debugFile:File = FlexUtil.getUserPath("air_debug.txt"); private static var debugStream:FileStream = new FileStream(); private static var loggedItems:Array = new Array(); diff --git a/fbair.mxml b/fbair.mxml index 10fe687..0c77f59 100755 --- a/fbair.mxml +++ b/fbair.mxml @@ -144,7 +144,7 @@ // Now we call this to init our application. // Always call this only once, in the applicationComplete callback. - FBConnect.init('39f0aec9479177cddacef90da714b037'); + FBConnect.init('4b38d3e1a6df930669e13b82e3ba8974');//39f0aec9479177cddacef90da714b037'); // This function checks to see if we're already connected statusChanged(); diff --git a/fbair/nile/NileContainer.mxml b/fbair/nile/NileContainer.mxml index 4a1171e..4c5ca19 100644 --- a/fbair/nile/NileContainer.mxml +++ b/fbair/nile/NileContainer.mxml @@ -64,7 +64,7 @@ import mx.events.ScrollEvent; import mx.utils.ObjectUtil; - private static const PollingDelay:int = 30000; + private static const PollingDelay:int = 10000; private static const MinAnimationDelay:int = 500; private static const PageScrollSize:int = 512; private static const MouseWheelSize:int = 16; @@ -318,7 +318,7 @@ // Get latestUpdates on these jonx filters for (var filterKey:String in dataCache) { var filterList:ArrayCollection = dataCache[filterKey]; - latestUpdates[filterKey] = filterList.length > 0 ? + latestUpdates[filterKey] = filterList.length == MaxEntries ? filterList[filterList.length-1].created_time : 0; } } diff --git a/fbair/util/CommentCache.as b/fbair/util/CommentCache.as index 37c774e..bc049ad 100644 --- a/fbair/util/CommentCache.as +++ b/fbair/util/CommentCache.as @@ -16,6 +16,7 @@ package fbair.util { import fb.FBAPI; import fb.FBEvent; + import flash.events.Event; import flash.events.EventDispatcher;