0.9.x Update
A significant update was pushed back to github. Documentation has been updated here.
Fixes
- fixed issue handling extended permissions redirect
- fixed uid not returning correct value
- fixed stored session not correctly being restored
- fixed potential for infinite loop in MKFacebookRequestQueue
Changes
- MKFacebook uid method now returns NSString
- MKFacebookRequest parameters can now accept a NSArray containing strings in place of a comma separated string for methods that require a list
- MKFacebookRequest default connection timeout changed to 30 seconds
- MKFacebookRequestQueue modified to use new MKFacebookRequestDelegate methods
- Removed custom selectors from MKFacebookRequestQueue
Now on GitHub
Updates, documentation, and demos will still be hosted here at pointlesscrap.net but source is now available at GitHub.
MKAbeFook 0.9 Beta 1

What started out as a simple plan to support the improved desktop authorization for Facebook Connect - Authorization and Authentication for Desktop Applications - has turned out to be a significant overhaul of just about everything.
The old login process looked something like this:
- try to authenticate using existing session or send a request to obtain an auth token
- handle response for auth token
- generate URL to display login window if a valid auth token was received
- display login window
- wait for user to do something (i.e. login then close the login window)
- when the login window is closed send a request for an auth session
- handle response for auth session, if it's good it's safe to assume the user login was successful, store session info, etc... - otherwise clean up and get ready to do it all again
- notify application that a user logged in
Desktop 0.8.3
What's fixed:
- persistent sessions should now work correctly in 10.6
- debug builds should really log to the console this time
- fetchFacebookData: should no longer always return nil in 10.6
Desktop 0.8.2
This is a minor update to fix a few compile warnings in 10.6.
Changes:
- grantExtendedPermissionForSheet: now uses a URL with &popup
- login window will check app permission for offline_access before directing user to grant offline access page
- generateSigForParameters will raise an exception if it finds nil sessionSecret or sessionKey, a message will be displayed about setting application type to desktop
- release builds will no longer log to console
The next release is planned for the end of September and will be a significant update.
Desktop 0.8.2 Beta 1
The focus of this release will be automatically redirecting the user to grant offline_access after log in. The implementation is still messy at this point but I believe it works. Any feedback on this would be greatly appreciated.
What's new:
- -(id)showFacebookLoginWindowForSheet:(BOOL)forSheet automaticallyGrantOfflinePermissions:(BOOL)extendPermissions
- -(NSWindow *)grandExtendedPermissionForSheet:(NSString *)aString
I'll try to catch up on emails this week, sorry for the delays.
Desktop 0.8.1
MKFacebook Changes
- -(void)setUseStandardDefaultsSessionStorage:(BOOL)aBool; added
- -(BOOL)useStandardDefaultsSessionStorage; added
- -(BOOL)hasPersistentSession; added
- -(NSDictionary *)savePersistentSession; added
- -(BOOL)restorePersistentSession:(NSDictionary *)persistentSession; added
- fixed NSString append nil issue. Thanks Andrei Freeman.
- new login window looks a little like the iPhoto '09 login window
Mobile MKAbeFook Test Application
A new demo application for Mobile MKAbeFook is available here.
Mobile 0.4.1
- added MMKAbeFookRequestDelegate protocol
- improves request error handling and reliability
Desktop 0.8
MKFacebook Changes
- -(void)setDisplayLoginAlerts:(BOOL)aBool; added
- -(BOOL)displayLoginAlerts; added
- -(void)setAlertsEnabled:(BOOL)aBool; removed
- -(BOOL)alertsEnabled; removed
- new MKFacebookDelegate protocol
MKFacebookRequest Changes
- -(void)setDisplayAPIErrorAlert:(BOOL)aBool; added
- -(BOOL)displayAPIErrorAlert; added
- +(id)requestUsingFacebookConnection:(MKFacebook *)aFacebookConnection delegate:(id)delegate selector:(SEL)aSelector; added
- +(id)requestUsingFacebookConnection:(MKFacebook *)aFacebookConnection delegate:(id)delegate; added
- -(void)facebookErrorResponseReceived:(id)errorResponse; ( delegate method ) added
- -(void)setNumberOfRequestAttempts; added
- -(void)setDisplayGeneralErrors:(BOOL)aBool; removed
- -(BOOL)displayGeneralErrors; removed
- -(void)receivedFacebookXMLErrorResponse:(id)failedResponse; ( delegate method ) removed
- MKFacebookRequests will automatically retry requests that fail with error 1, 2, or 4 error codes
- new notifications are available for displaying request activity
- new MKFacebookRequestDelegate protocol
MKFacebookRequestQueue Changes
- -setTimeBetweenRequests:(float)watTime; added
- -(float)timeBetweenRequests; added
- MKFacebookRequestQueue can now optionally pause between requests in order to try to prevent "too many requests" errors
New Class MKEventsRequest (incomplete)
- documentation incomplete
New Class MKPhotosRequest (incomplete)
- documentation incomplete
Other Things
- window used to display extended permissions no longer displays a title of "Login"
Documentation Updated
- http://pointlesscrap.net/sites/mkabefook/documentation/desktop/index.html
Infinite Sessions
Use -(void)grantExtendedPermission:(NSString *)aString; to present the user with a window that will let them receive an "infinite" session the next time they log in. Unfortunately the user will have to login one more time after this is called before -(void)loadPersistentSession; will work.
FYI
Anything marked as deprecated will be removed in 0.8.5.
