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.
facebook-android-sdk-3.23.1.zip - Facebook SDK 3.23.1 for Android
facebook-android-sdk-3.23.0.zip - Facebook SDK 3.23.0 for Android
facebook-android-sdk-3.22.0.zip - Facebook SDK 3.22.0 for Android
facebook-android-sdk-3.21.1.zip - Facebook SDK 3.21.1 for Android
facebook-android-sdk-3.21.0.zip - Facebook SDK 3.21.0 for Android
facebook-android-sdk-3.20.0.zip - Facebook SDK 3.20.0 for Android
facebook-android-sdk-3.19.1.zip - Facebook SDK 3.19.1 for Android
facebook-android-sdk-3.19.0.zip - Facebook SDK 3.19.0 for Android
facebook-android-sdk-3.18.1.zip - Facebook SDK 3.18.1 for Android
facebook-android-sdk-3.18.zip - Facebook SDK 3.18 for Android
facebook-android-sdk-3.17.2.zip - Facebook SDK 3.17.2 for Android
facebook-android-sdk-3.17.1.zip - Facebook SDK 3.17.1 for Android
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.
facebook-android-sdk-3.16.0.zip - Facebook SDK 3.16 for Android
facebook-android-sdk-3.15.0.zip - Facebook SDK 3.15 for Android
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
.
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
.
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.
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.
WebDialog
s 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".
Catch and propagate SecurityException
s 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.
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.LoginButton
respects the button text for non-default style.UiLifecycleHelper
monitors currently active session only when the activity is foreground.Session.requestNewPermissions()
now properly calls Session.StatusCallback
.null
messages passed in to Utility.logd()
. NullPointerException
when Utility.publishInstall()
called.NullPointerException
when 'back' is pressed during Session.open()
.onCancel
listener for the legacy facebook.authorize()
method.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
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
{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.
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.