Change Log 3.x

This document refers to the Android SDK v3. For the new Android SDK v4 please see our new Android docs.

Change log and release notes for the Facebook SDK for Android.

3.23.1 - Mar 12, 2015

facebook-android-sdk-3.23.1.zip - Facebook SDK 3.23.1 for Android

Facebook SDK

Added

  • Added support for hosting a Like button in a Fragment.

Fixed

  • For apps with publish permissions, tapping the Like button won't mistakenly bring up the Like dialog.

Audience Network

Fixed

  • Always send Advertising ID to server to enable cross device opt-out.

3.23.0 - Feb 5, 2015

facebook-android-sdk-3.23.0.zip - Facebook SDK 3.23.0 for Android

Facebook SDK

Added

  • Added gzip compression to Request object expect when there are attachments.

Modified

  • Removed the deprecated methods Settings.getShouldAutoPublishInstall and Settings.setShouldAutoPublishInstall. The auto-publish behavior has been removed. Apps should explicitly indicate events by calling AppEventsLogger.activateApp().

Fixed

  • Fixed JavaDoc for NativeAppCallContentProvider. PR 408.
  • Fixed JavaDoc for Session.StatusCallback.
  • Fixed certain AppEventsLogger behavior for app install reporting.
  • Fixed an issue that prevented LikeView to be used in Dialogs.

3.22.0 - Jan 6, 2015

facebook-android-sdk-3.22.0.zip - Facebook SDK 3.22.0 for Android

Facebook SDK

Added

  • Added video messaging with Facebook Messenger.
  • Added an option to use video Url for the share dialog.
  • Added javadoc for StatusCallback.call method.

Modified

  • Moved to the latest version of Gradle and Android build tools. Pull Request 407.

Fixed

  • Fixed link in README.mdown. Pull Request 405.

Audience Network

Modified

  • Allow a native ad to be loaded if device screen is off.

Fixed

  • Fixed an auto-refresh related crash for the rectangle format.
  • Reduce load on package manager to prevent a PackageManager Runtime Exception.

3.21.1 - Dec 5, 2014

facebook-android-sdk-3.21.1.zip - Facebook SDK 3.21.1 for Android

Facebook SDK

Modified

  • Modified the dependency format for the android support library.

Audience Network

Added

  • Auto-refresh capabilities for the new rectangle ad format.

Fixed

  • Fix issue preventing subsequent manual calls to loadAd() on the new rectangle ad format.

3.21.0 - Dec 1, 2014

facebook-android-sdk-3.21.0.zip - Facebook SDK 3.21.0 for Android

Facebook SDK

Added

  • VideoShareDialogBuilder to allow sharing videos via the Share Dialog.

Fixed

  • Fixed an issue with page like state on app restart.
  • Pull Request 395. Fix resource leak issue for cursors.
  • Pull Request 399. Dead code elimination FacebookDialog.java.
  • Pull Request 401. Support ContextWrapper objs with LoginButton.

Audience Network

Added

  • Support for a larger banner ad format, with height of 250 and flexible width between 300 and 360: AdView adViewRectangle = new AdView(context, “YOUR_PLACEMENT_ID”, AdSize.RECTANGLE_HEIGHT_250)
  • Optional OnTouchListener for NativeAd to let clients subscribe to touch events for custom animations, etc

Modified

  • Preload interstitial ads for better performance
  • A more polished sample app

Fixed

  • IntentReceiver leak

3.20.0 - Oct 30, 2014

facebook-android-sdk-3.20.0.zip - Facebook SDK 3.20.0 for Android

Facebook SDK

Modified

Fixed

  • Fixed bug in Requests dialog where certain cancellations were treated as errors instead of cancellations.
  • Pull request 315: Fixed retry logic for failing Async Tasks.
  • Pull request 383: Added the Maven repository declaration to the facebook project explicitly, for the benefit of developers who only include that project. Also updated the plugins in gradle settings to not use the deprecated style.
  • Pull request 389: Fix NPE when a networking error results in an empty error.
  • Fixing NPE-s in AuthorizationClient and Session
  • Other stability fixes.

Audience Network

Fixed

  • Internal and stability improvements.

3.19.1 - Oct 16, 2014

facebook-android-sdk-3.19.1.zip - Facebook SDK 3.19.1 for Android

Facebook SDK

Added

  • Updated a gradle task to upload to maven.

Modified

  • Updated to gradle 0.12.2.
  • The WebDialog's registered listeners will get a "cancelled" error if their app explicitly calls the dismiss method.

Fixed

  • The LikeView's behavior in the web-dialog path has been fixed for the case where the user had already liked the object for which the dialog has been presented. The OS-back button and the top-left-dialog-close button will both behave the same as the "Back" button in the dialog. This means that the LikeView will reflect the like-state that was displayed in the web-dialog when either of those two buttons are tapped.
  • Pull request 299, Fixing NPE for Motorola devices.
  • Pull request 364, Fixing WebDialog cancel.
  • Fixing NPE in PlacePickerActivity.
  • Fixed an issue preventing the Google Advertising ID from being accessed when the Facebook app wasn't installed on the device.

Audience Network

Fixed

  • Fixed a crash that may happen during rotations.
  • Added a default error message to prevent a crash.

3.19.0 - Oct 2, 2014

facebook-android-sdk-3.19.0.zip - Facebook SDK 3.19.0 for Android

Facebook SDK

Added

Deprecated

  • Settings.setIsLoggingEnabled is deprecated, Settings.setIsDebugEnabled should be used instead.

Fixed

  • Fixed issue 354, NullPointerException on GraphAction publish.
  • Pull request 346 accepted, using match_parent instead of fill_parent.
  • Pull request 378 accepted, fixed typo.

3.18.1 - Sept 25, 2014

facebook-android-sdk-3.18.1.zip - Facebook SDK 3.18.1 for Android

Facebook SDK

Fixed

  • Fixed bug that prevents some app events from being logged

Audience Network

Added

  • Added onLoggingImpression callback for AdListener

Fixed

  • Fixed resizeAdView method
  • Close cursor when getting attribution from FB4A

3.18 - Sept 3, 2014

facebook-android-sdk-3.18.zip - Facebook SDK 3.18 for Android

Modified

  • Improvements on the Audience Network sample apps, added sample to insert native ad in ListView.

Fixed

  • Fixed threading issue where WebViewCoreThread will consume CPU even after WebView is destroyed.
  • Fixed use case of getting user agent without creating a WebView.

3.17.2 - August 21, 2014

facebook-android-sdk-3.17.2.zip - Facebook SDK 3.17.2 for Android

Added

3.17.1 - August 7, 2014

facebook-android-sdk-3.17.1.zip - Facebook SDK 3.17.1 for Android

Fixed

  • Fixed logging of app activate events.

v3.17 - August 7, 2014

Facebook SDK

Added

  • Added the default_audience dialog oauth param.
  • Added Settings.setIsLoggingEnabled method to enable logging. This can be used as a workaround for the Gradle debug/release propagation issue: https://code.google.com/p/android/issues/detail?id=52962.
  • Added application session events which tracks application session through onResume and onPause.
  • Added getErrorUserMessage, getErrorUserTitle and getErrorIsTransient methods are added to FacebookRequestError.

Modified

  • Moved to the Graph API v2.1.
  • The minimum supported SDK version is updated to 9.
  • RPS Sample app is updated to use App Links instead of Deeplinks.

Fixed

  • Deadlock in AppEventsLogger at application starts, https://github.com/facebook/facebook-android-sdk/issues/360
  • AppEventsLogger.logEvent raises NullPointerException if facebook app is not installed, https://github.com/facebook/facebook-android-sdk/issues/362
  • Fixed compilation warnings, https://developers.facebook.com/bugs/253170204877041/

Audience Network

Added

  • The audience network SDK now supports larger banner ad formats for tablets.

Google Advertising ID

When developers use App Events, the Google Advertising ID is collected because Google has asked SDK providers to use the Google Advertising ID for advertising purposes (https://support.google.com/googleplay/android-developer/answer/6048248). All Facebook SDK releases since April 2014 use the Google Advertising ID.

v3.16 - July 18, 2014

facebook-android-sdk-3.16.0.zip - Facebook SDK 3.16 for Android

Facebook SDK

Added

  • New APIs to FriendPickerFragment to allow for taggable friends and invitable friends
  • Allow for OG actions to take inline objects

Modified

  • Removed publishInstall (use activateApp instead)
  • Removed GraphAPI, ProfilePicture, and SessionLogin samples

Fixed

  • Pull Request 361 (https://github.com/facebook/facebook-android-sdk/pull/361)

Audience Network

Fixed

  • Impression logging improvements

v3.15 - June 12, 2014

facebook-android-sdk-3.15.0.zip - Facebook SDK 3.15 for Android

Facebook SDK

Modified

  • Moved the Facebook application into a separate download available on the downloads page
  • Pull requests from vivekkiran and mstorsjo

Audience Network

Modified

  • The native ad API was changed to make it easier on logging the impression and handling the click. We removed the 'logImpression()' and 'handleClick()' functions in favor for ones that allow you to register the ad view. This will enable the SDK to handle the impression logging and click automatically. More details on the new API can be found here.

Fixed

  • Internal and stability improvements.

3.14.1 - May 12, 2014

Modified

  • Fixes to AudienceNetwork SDK
  • Fixes to login NUX
  • Pull requests from lopespm and gertcuykens

3.14 - April 30, 2014

Added

  • Added AudienceNetwork SDK
  • Added MessageDialogBuilder, PhotoMessageDialogBuilder, OpenGraphDialogBuilder to allow sharing links, photos, and open graph stories through the Message Dialog.
  • Added Bolts SDK
  • Added FacebookAppLinkResolver
  • Added versioning to SDK request calls
  • Ability to query the session for Permissions granted and declined

Modified

  • SDK will default all calls to Graph API 2.0
  • LoginButton will now use the New Login.
  • Removed Migration handling code
  • Updated samples

3.8 - March 24, 2014

Added

  • Added PhotoShareDialogBuilder to allow sharing photos via the Share Dialog.

Modified

  • Updated the fetchDeferredAppLinkData method to pull from the server, and improved how attribution identifiers are fetched.

Fixed

  • Disables form data saving in the WebView-based Login dialog (https://github.com/facebook/facebook-android-sdk/issues/327)

3.7 - February 21, 2014

Modified

  • Updated Scrumptious sample app to attach default images to all meals.
  • Updated server endpoint to use graph-video for video uploads.

Added

  • Added a ProgressCallback to Request and RequestBatch so callers can monitor upload progress.
  • Added new constructors to allow WebDialog builders to launch dialogs without a Session.

Fixed

  • Fixed potential ConcurrentModificationException when the Session.StatusCallbacks are run during session state changes.

3.6 - December 10, 2013

Modified

  • AppEventsLogger is now out of Beta, setLimitEventUsage is deprecated and moved to Settings as setLimitEventAndDataUsage.

Added

  • Added setSelection methods on FriendPickerFragment to allow pre-selection of friends.
  • Added example use of setSelection API in Friend Picker Sample
  • Added support for Gradle.

Fixed

  • Fixed bug in WebDialogs where the dialog would not display properly for large displays with soft keyboards.
  • Fixed bug where the callback for NewPermissionsRequest was not called.
  • Fixed bug in AuthorizationClient where it can hang on orientation changes.

3.5.2 - October 1, 2013

Fixed

  • Possible exception in activateApp() with certain old version of Facebook app for Android installed on device.

3.5.1 - September 26, 2013

Added

  • Added an OpenGraphAction.Factory.createForPost overload that takes an action type and populates it.

  • Added a FacebookDialog.OpenGraphActionDialogBuilder constructor that relies on the 'action' parameter having the correct type, and deprecated the old one, to reduce chances of incorrect actions being supplied to the Share Dialog.

  • Added FacebookDialog.OpenGraphActionDialogBuilder.setImageAttachmentFilesForAction and setImageAttachmentFilesForObject overloads that allow providing attachments as a File rather than a Bitmap.

Modified

  • Calls to AppEventsLogger.activateApp will only generate logged events if at least five minutes have elapsed since the last time one was logged, to avoid false reporting of activations during normal use of an app.

  • Request.newCustomAudienceThirdPartyIdRequest will now honor the setting specified via AppEventsLogger.setLimitEventUsage.

Fixed

  • Possible exceptions during authentication, app events logging, and file caching.

3.5 - August 20, 2013

Added

  • Added support for Native Share Dialog.

  • Added FacebookDialog, FacebookDialog.Callback, FacebookDialog.ShareDialogBuilder, FacebookDialog.OpenGraphActionDialogBuilder classes to represent Native Share Dialogs.

  • Added OpenGraphObject and OpenGraphObject.Factory classes to represent an Open Graph Object (to be used with the Object API as well as the Native Share Dialog).

  • Added GraphObject.getPropertyAs, GraphObject.getPropertyAsList helper methods to cast the property directly to a type.

  • Added OpenGraphAction.getType, OpenGraphAction.setType, OpenGraphAction.getData, OpenGraphAction.setData methods, and OpenGraphAction.Factory class to better represent an Open Graph Action.

  • Added Request.newPostOpenGraphObjectRequest, Request.newDeleteObjectRequest, Request.newUpdateOpenGraphObjectRequest methods to support the Object API.

  • Added overload to Request.newStatusUpdateRequest method with place ID and user IDs to allow for tagging.

  • Added AppEventsLogger and AppEventsConstants classes to allow for different flushing methods and log persistence to support asynchronous insights logging.

  • Added overloads to NewPermissionsRequest constructor, OpenRequest.setPermissions, LoginButton.setReadPermissions, LoginButton.setPublishPermissions, UserSettingsFragment.setReadPermissions, UserSettingsFragment.setPublishPermissions methods to take a String... in addition to a List<String>.

  • Added ProfilePictureView.setDefaultProfilePicture to allow a different default blank picture while a person's profile picture is being loaded.

  • Added overloaded Request.newCustomAudienceThirdPartyIdRequest methods to support App User IDs in Android.

  • Added Settings.setFacebookDomain to allow overriding the base Facebook domain.

  • Added RPS sample app to demonstrate the Native Share Dialog and Object API.

  • Added support for photo uploads in the Scrumptious sample.

Modified

  • Removed Hackbook sample.

  • Removed BooleanOG sample.

  • More accurate output from FacebookRequestError.toString.

  • More accurate exceptions from Session.

  • Deprecated all Request.execute*RequestAsync methods. Prefer to use the executeAsync method on the request instance instead.

  • Deprecated the InsightsLogger class. Prefer to use AppEventsLogger instead.

  • Deprecated all publishInstall related methods in Settings. Prefer to use AppEventsLogger.activateApp instead.

  • Updated PlacePickerFragment UI.

  • WebDialogs no longer take up the full screen for large screen devices, and will instead be scaled to be in the middle of the screen.

  • Updated LoginButton with new Facebook branding assets, changed the default "Log in" text to be "Log in with Facebook".

Fixed

  • Catch and propagate SecurityExceptions during request processing instead of silently ignoring.

  • Only call LoginButton's OnErrorListener if there's no Session.Callback registered with the session, otherwise it led to double handling of errors.

  • Session.closeAndClearTokenInformation now also clears image caches used by the SDK.

3.0.2 - July 1, 2013

Modified

  • Updated the sample app builds to work with ADT 22

3.0.1 - March 20, 2013

Added

  • Settings.publishInstallAndWaitForResponse() to manually publish install attribution and return the server response.
  • Settings.publishInstallAsync() overloaded with Request.Callback to allow for handling the server response.
  • Settings.getSdkVersion() to provide the current SDK version.
  • Settings.getMigrationBundle() to provide the current migration bundle supported by the SDK.

Modified

  • LoginButton respects the button text for non-default style.
  • UiLifecycleHelper monitors currently active session only when the activity is foreground.
  • The Web View Login dialog includes the token information for scenarios where new permissions are being requested. This avoids the person having to enter their login credentials whenever new permissions are requested for a session.
  • Updated error strings for authentication-related issues when making a request.

Fixed

  • Session.requestNewPermissions() now properly calls Session.StatusCallback.
  • Properly handle null messages passed in to Utility.logd().
  • Handling of NullPointerException when Utility.publishInstall() called.
  • Handling of NullPointerException when 'back' is pressed during Session.open().
  • Properly handle the cancel flow by calling the onCancel listener for the legacy facebook.authorize() method.

3.0 Final - December 13, 2012

Added

  • Added support for Android native Login Dialog

  • Added support for authentication via an Android service if the Facebook app already has an access token for the person

  • Added category support to FacebookRequestError

  • Requesting new permissions now validates that re-authenticated person is same as original person

  • Added batch-level callbacks to RequestBatch

Modified

  • AccessToken: publicly documented

  • AccessTokenSource: removed FACEBOOK_APPLICATION. Added FACEBOOK_APPLICATION_WEB, FACEBOOK_APPLICATION_NATIVE, FACEBOOK_APPLICATION_SERVICE.

  • DialogError: deprecated all methods

  • FacebookActivity: removed and replaced by UiLifecycleHelper

  • FacebookError: Deprecated all methods

  • FacebookRequestError: Added getUserActionMessageId, shouldNotifyUser, getCategory

  • FacebookSdkVersion: no longer public

  • LoggingBehaviors: Renamed to LoggingBehavior

  • LoginButton: Added getDefaultAudience and setDefaultAudience

  • LoginFragment: Renamed to UserSettingsFragment. Added getDefaultAudience and setDefaultAudience

  • NonCachingTokenCachingStrategy: New class

  • RequestBatch: added addCallback, removeCallback, Callback inner class

  • Session: removed openForRead(Activity), openForRead(Fragment), two overloads of openActiveSession that were missing the SessionCallback parameter, and open. Renamed reauthorizeForRead and reauthorizeForPublish to requestNewReadPermissions and requestNewPublishPermissions. Renamed ReauthorizeRequest to NewPermissionsRequest. Renamed openActiveSession(Context) to openActiveSessionFromCache. Moved getShouldAutopublishInstall from Builder to Settings

  • SessionDefaultAudience: updated value names - e.g. OnlyMe to ONLY_ME

  • Settings: added getShouldAutoPublishInstall and setShouldAutoPublishInstall

  • UiLifecycleHelper: new class used to add Session support to Activity subclasses

  • Util: deprecated all methods

3.0 Beta 2 - November 20, 2012

Added

  • {LoginButton,LoginFragment}.setLoginBehavior to be able to specify the login behavior for the session that will be opened.

  • Session status callback can be set for LoginButton and LoginFragment.

  • AccessTokenSource class to identify the source of a Facebook access token.

  • FacebookRequestError to describe error details for requests.

  • Session.openWithImportedAccessToken to facilitate token import from a previous version of an app.

  • WebDialog to support web dialogs including Feed and Request dialogs. WebDialog includes theme support via constructor.

Modified

  • Refactored namespace com.facebook to add .model and .widget. Some classes have moved accordingly.

  • TokenCache: moved TokenCache.{get,put}IsSSO to {get,put}Source.

  • ProfilePictureView: moved {get,set}UserID to {get,set}ProfileID.

  • PickerFragment is now base class for pickers instead of interface.

  • Settings.publishInstall moved to two new methods: Settings.publishInstallAsync and Settings.publishInstallAndWait providing asynchronous and synchronous options to publish install attribution.

  • Renamed FacebookServiceErrorException to FacebookServiceException. The error is now represented in an FacebookRequestError object.

  • GraphObjectWrapper moved to GraphObject.Factory. To create a GraphObject, use GraphObject.Factory.create().

  • ProfilePictureView: profile photos are now square by default, i.e., isCropped() returns true by default.

  • Deprecated the rest of the Facebook class. Previously the facebook.dialog() methods were not deprecated. You can use the new WebDialog class to implement facebook.dialog() functionality.

  • TestSession is now public.