For more information see what's new in Facebook SDK 3.5 for iOS.
facebook-ios-sdk-3.5.1.pkg - Facebook SDK 3.5.1 for iOS
FBWebDialogs.RPSSample sample app.facebook-ios-sdk-3.5.pkg - Facebook SDK 3.5 for iOS
FBSession support for the native Login Dialog
iOS 6 is still the default login dialog. People who have Facebook version 6.0 (or greater) will see the native Login Dialog. People on older versions of the Facebook app will continue to see the web-based Login Dialog.
FBRequest and FBRequestConnection helpers for Object API. SDK 3.5 supports the new Open Graph APIs that let apps create, read, update, and delete Open Graph objects. New methods on FBRequest and FBRequestConnection help make these API calls:
requestForPostOpenGraphObjectWithTyperequestForPostOpenGraphObjectrequestForUpdateOpenGraphObjectWithIdrequestForUploadStagingResourceWithImagerequestForDeleteObjectstartForPostOpenGraphObjectstartForPostOpenGraphObjectWithTypestartForUpdateOpenGraphObjectstartForUpdateOpenGraphObjectWithIdstartForUploadStagingResourceWithImageFor more information, see FBRequest and FBRequestConnection;
FBRequest and FBRequestConnection support for reading a custom audience API
requestForCustomAudienceThirdPartyIDstartForCustomAudienceThirdPartyIDFBSettings has several BetaFeature methods
The image property on FBOpenGraphAction changed from type NSArray to id
FBSBJSON has been removed with the update to iOS 5.0 as the minimum supported version.
FBDialogs addition of present* and can* methods for sharing Open Graph actions, links, and status updates
canPresentShareDialogWithParamspresentShareDialogWithParamspresentShareDialogWithLinkcanPresentShareDialogWithOpenGraphActionParamspresentShareDialogWithOpenGraphActionParamspresentShareDialogWithOpenGraphActionFBAppCall is a new class that apps use to consistently handle "open URL" events sent to an app from the Facebook app. Open URL events are used to send an app:
FBAppCall type is general plumbing for calls between applications.Richer support for deep links using FBAppCall
Once an app uses
FBAppCallto handle cross application calls in thehandleOpenURLmethod of the app delegate, the handling code uses theFBAppLinkDataclass to read data from the URL used to open the app.FBAppLinkDatahandles parsing the incoming URLs and provides strongly typed access to data on app links, including thetarget_urlfield of deep links.
FBGraphObject updates for Object API
FBGraphObjectincludes updates to support the Object API. To create an instance of an Open Graph object that your app can create using[FBRequest startForPostOpenGraphObject], use:
[FBGraphObject openGraphObjectForPost];
For example:
NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost];
object[@"type"] = @"books.book";
object[@"title"] = @"Snow Crash";
object[@"image"] = @"http://upload.wikimedia.org/wikipedia/en/d/d5/Snowcrash.jpg";
object[@"url"] = @"https://example.com/book-app/books/Snow-Crash";
Your app may load an FBGraphObject from local storage on an iOS device, and may change that object's state during routine app execution. To correctly create an FBOpenGraphObject using [FBRequest startForPostOpenGraphObject] or other similar methods, your app needs to mark the object as "provisioned for post" using:
object.provisionedForPost = YES;
Here's a complete example that creates an object, marks it as provisioned for post, and creates it:
NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost];
object.provisionedForPost = YES;
NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost];
object[@"type"] = @"books.book";
object[@"title"] = @"Snow Crash";
object[@"image"] = @"TODO";
object[@"url"] = @"https://example.com/book-app/books/Snow-Crash";
[FBRequestConnection startForPostOpenGraphObject:object
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
if(error) {
NSLog(@"Error: %@", error);
} else {
NSLog(@"Success");
}
}];
Adds FBErrorUtility public API and makes the -ObjC linker flag optional
SDK 3.2 included improved support for handling errors and required apps to use the –ObjC linker flag to access these new APIs. The –ObjC linker flag is still supported but is no longer required to use the new error handling APIs. Apps can use FBErrorUtility without
Adds Rock Paper Scissors sample app The Rock Paper Scissors sample apps shows how to use app-owned Open Graph objects and how to use the native Share Dialog from an app that doesn't require use of Facebook Login to publish Open Graph actions.
Add photo upload support to Scrumptious sample app Scrumptious has been updated to show how to use the image staging service and how to create user-owned Open Graph objects.
New setup instructions The SDK setup instructions have been simplified and just require apps to import frameworks and configure three settings in the .plist.
Security.framework is now required The Security framework is now required and helps secure cross app calls made to / from the Facebook app.
Removes BooleanOG and Hackbook samples These samples have been removed in favor of Rock Paper Scissors and to streamline the number of samples included in the SDK.
Removes support for iOS 4.* Facebook 6.0 dropped support for iOS 4.x. To stay in sync, the Facebook SDK is also does not support iOS 4.x.
facebook-ios-sdk-3.2.1.pkg - Facebook SDK 3.2.1 for iOS
FBFrictionlessRecipientCache class to maintain a cache of friends for use in the FBWebDialog class when presenting the Requests dialog.
FBWebDialog method presentRequestsDialogModallyWithSession:message:title:parameters:handler:friendCache: to enable frictionless request support by passing in a FBFrictionlessRecipientCache object representing a cached set of friends.
FBRequestConnection to properly handle a nil completion handler.facebook-ios-sdk-3.2.pkg - Facebook SDK 3.2 for iOS
FBSession properties accessToken, expirationDate and loginType have been deprecated. Instead use the new accessTokenData property to access this info.
FBSession methods reauthorize* have been deprecated, instead use the requestNew* methods.
Improved error handling logic, including handling various iOS 6 cases.
The Scrumptious sample now uses FBLoginViewfor authentication. The sample has also been modified to show best practices in handling errors during authorization and calling Facebook APIs.
Samples migrated from the deprecated APIs. The -ObjC linker flag added to all samples.
Implicit logging added to provide Facebook Insights to events such as launching/dismissing the native share sheet, launching/dismissing the native Login dialog, friend picker usage, and place picker usage. A new advanced setting in the App Dashboard named Mobile SDK Insights, allows you to turn off the implicit logging which is on by default.
PlacePickerSample sample displays an alert when a place is selected.
JustRequestSample sample renamed to GraphApiSample.
FBWebDialog class to provide webview dialogs to replace Facebook dialog API.
NSError(FBError) category extension to NSError to simplify Facebook error handling.
FBSession methods requestNewPublishPermissions:defaultAudience:completionHandler: requestNewReadPermissions:completionHandler: for requesting new or additional permissions for the session.
FBSession method openFromAccessTokenData to support opening from an FBAccessTokenData instance.
FBSession class method renewSystemCredentials to allow easy refresh of iOS 6 account store.
FBSession class methods to get and set default URL scheme suffix used in sessions:
setDefaultUrlSchemeSuffix:defaultUrlSchemeSuffixFBAccessTokenData class to simplify access token data operations.
FBSession property accessTokenData used to get the FBAccessTokenData used in the session.
FBSessionTokenCachingStrategy methods to operate with FBAccessTokenData:
nullCacheInstance - class method that returns an FBSessionTokenCachingStrategy instance that does not perform any caching. One scenario where this is useful is importing an access token using the openFromAccessTokenData method on an FBSession instance that is not initialized from cache. The nullCacheInstance can be used to create the required FBSession instance.cacheFBAccessTokenData: - method used to cache a token represented by FBAccessTokenData.fetchFBAccessTokenData - method used to fetch a cached token.FBPlacePickerViewController method updateView to allow a place picker refresh without a network roundtrip.
FBLoginViewDelegate method loginView:handleError: to notify the delegate of communication or authorization errors.
FBSettings method publishInstall:withHandler: enables defining a handler to process server response when publishing an attributed install for Mobile App Install Ads analytics.
FBInsights class to provide client-side logging of specialized app analytics that are then available on Facebook Insights. Also provides analytics for Conversion Pixel tracking for ads optimization.
FBSettings class methods setClientToken and clientToken to enable anonymous Facebook API calls in support of FBInsights logging.
Memory leaks in FBUserSettingsViewController, FBLoginView, and FBSession.
Incorrect use of publish permissions when read permissions should be used, in FBUserSettingsViewController and FBLoginView.
FBViewController to initialize ''done'' and''cancel'' buttons properly for non-programmatic init paths.
FBViewController and FBLoginView documentation.
A bug in the FBSession handleOpenURL method that no longer passed through errors.
A bug in the FBSession handleDidBecomeActive method that incorrectly coupled to the active session.
A bug in FBSession that prevented KVO of the state property.
How friend picker and place picker selection changed events are triggered when items are deselected. The event was being triggered multiple times in certain scenarios.
The friend picker to properly handle profiles with no name data.
A bug in WebView Login dialog reauthorization flow that did not invoke reauthorization handlers.
Rotation bugs in ProfilePictureSample, FriendPickerSample and FBUserSettingsViewController.
FriendPickerViewController and PlacePickerViewController can now fetch Retina-sized images.
FacebookSDK-3.1.1.pkg - Facebook SDK 3.1.1 for iOS
FacebookSDK-3.1.pkg - Facebook SDK 3.1 for iOS
Fixed sorting for FBFriendPickerViewController when a user have friends in multiple locales. The fix is consistent with the built in iOS Contacts app and with the iOS Human Interface Guidelines.
Fixed a bug in the Open Graph action message parameter. Changed the property name in the FBOpenGraphAction protocol from user_message to message.
The location property of the FBGraphUser is of type FBGraphUserLocation instead of FBGraphLocation. This fixes an issue where the user's location was incorrectly represented as a Facebook place object.
Fixed a bug to clear cached requests and images when and FBSession is closed using the closeAndClearTokenInformation method.
Renamed SBJSON to FBSBJSON in Facebook SDK to fix linking errors in apps also using newer versions of SBJSON.
Updated samples to work with iOS5 and retina display
iOS6 Login support.
FBNativeDialogs class to support the iOS6 SLComposeViewController social share controller.
FBsession class methods to separate out permission requests into read and publish when opening or reauthorizing sessions:
openActiveSessionWithReadPermissions:allowLoginUI:completionHandler: - opens an active session with the requested read permissions. openActiveSessionWithPublishPermissions:defaultAudience:allowLoginUI:completionHandler: - opens an active session with the requested publish permissions. reauthorizeWithReadPermissions:completionHandler: - reauthorizes a session with the additional requested read permissions. reauthorizeWithPublishPermissions:defaultAudience:completionHandler: - reauthorizes a session with the additional requested publish permissions. FBsession class method handleDidBecomeActive to better handle scenarios where a user switches back to an app without completing Facebook Login via Facebook for iOS app or Facebook on m.facebook.com, by for example clicking the device Home button.
Global migration support to enable shielding of apps from breaking server-side changes and maintain app stability. As an example, if the FBFriendPickerViewController data request results in a server response that is a breaking change, the Facebook SDK now has hooks to maintain stability and revert to getting the non-breaking data response.
FBGraphUserLocation protocol to represent a user's location.
FacebookSDK-3.0.8.pkg - Facebook SDK 3.0 for iOS (update 1)
FBGraphUserFacebookSDK-3.0.pkg - Facebook SDK 3.0 for iOS
FBLoginView property style removed as no profile picture is specified in this control.
FBSession class method sessionOpen has been removed, instead use the new openActiveSessionWithAllowLoginUI: class method.
FBSession class method sessionOpenWithPermissions:completionHandler: has been removed, instead use the new openActiveSessionWithPermissions:allowLoginUI:completionHandler: class method.
FBSession class methods openActiveSessionWithAllowLoginUI: and openActiveSessionWithPermissions:allowLoginUI:completionHandler: allows control for opening a session without showing the login UI, ex: if app starts and a cached token is available.
FBSettings class methods for supporting install publishing: shouldAutoPublishInstall, setShouldAutoPublishInstall: and publishInstall:.
Localization support for all visual components.
Localization support for Scrumptious and HelloFacebook sample apps.
Production art across all view controllers and controls.
Beta version
Framework has been renamed from FBiOSSDK to FacebookSDK.
Framework bundle file renamed from FBiOSSDKResources.bundle to FacebookSDKResources.bundle.
FBProfilePictureView property userID renamed to profileID.
FBProfilePictureView instance method:
- (id)initWithUserID:(NSString *)userID pictureCropping:(FBProfilePictureCropping)pictureCroppingmodified to :
- (id)initWithUserID:(NSString *)profileID pictureCropping:(FBProfilePictureCropping)pictureCroppingFBSession class method loggingBehavior moved to new FBSettings class.
FBSession class method setLoggingBehavior: moved to new FBSettings class.
FBTokenCachingStrategy method clearToken no longer takes in a parameter:
- (void)clearToken:(NSString *)tokenmodified to:
- (void)clearTokenFBRequest class methods starting with start* have moved to the FBRequestConnection class:
startWithGraphPath:completionHandler:startForPostWithGraphPath:graphObject:completionHandler:startWithGraphPath:parameters:HTTPMethod:completionHandler:Simple support for automating common model view controller behavior is now inherited from the new FBViewController base class.
FBUserSettingsViewController - view controller that displays the logged in user information and provides login and logout functionality.
FBSettings - class to manage settings, ex: logging behavior.
NSNotificationCenter support by FBSession for the active session is now available. Four notifications are supported:
FBSessionDidSetActiveSessionNotification to indicate that a new active session has been set.FBSessionDidUnsetActiveSessionNotification to indicate that a new active session has been unset.FBSessionDidBecomeOpenActiveSessionNotification to indicate that the active session is open.FBSessionDidBecomeClosedActiveSessionNotification to indicate that there is no longer an active session.FBRequest - class methods added:
requestForPostWithGraphPath:graphObject: requestForPostStatusUpdate: requestForPostStatusUpdate:place:tags: requestWithGraphPath:parameters:FBRequestConnection - class methods added:
startForMeWithCompletionHandler:startForMyFriendsWithCompletionHandler:startForUploadPhoto:completionHandler:startForPostStatusUpdate:completionHandler:startForPostStatusUpdate:place:tags:completionHandler:startForPlacesSearchAtCoordinate:radiusInMeters:resultsLimit:searchText:completionHandler:FBUserSettingsDelegate - protocol added to define methods called by an FBUserSettingsViewController.
FBViewControllerDelegate - protocol added to define methods called when the Cancel or Done buttons are pressed in an FBViewController.