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.

http://github.com/mikekinney/MKAbeFook

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.