FBSDKProfile

Represents an immutable Facebook profile

Discussion:

This class provides a global "currentProfile" instance to more easily add social context to your application. When the profile changes, a notification is posted so that you can update relevant parts of your UI and is persisted to NSUserDefaults. Typically, you will want to call enableUpdatesOnAccessTokenChange:YES so that it automatically observes changes to the [FBSDKAccessToken currentAccessToken]. You can use this class to build your own FBSDKProfilePictureView or in place of typical requests to "/me".

Conforms to:NSCopying, NSSecureCoding
Superclass:NSObject
Declared in:FBSDKProfile.h
Properties
firstName

The user's first name

@property (nonatomic, readonly) NSString *firstName;
Declared In: FBSDKProfile.h
lastName

The user's last name

@property (nonatomic, readonly) NSString *lastName;
Declared In: FBSDKProfile.h
linkURL

A URL to the user's profile.

@property (nonatomic, readonly) NSURL *linkURL;
Discussion:

Consider using Bolts and FBSDKAppLinkResolver to resolve this to an app link to link directly to the user's profile in the Facebook app.

Declared In: FBSDKProfile.h
middleName

The user's middle name

@property (nonatomic, readonly) NSString *middleName;
Declared In: FBSDKProfile.h
name

The user's complete name

@property (nonatomic, readonly) NSString *name;
Declared In: FBSDKProfile.h
refreshDate

The last time the profile data was fetched.

@property (nonatomic, readonly) NSDate *refreshDate;
Declared In: FBSDKProfile.h
userID

The user id

@property (nonatomic, readonly) NSString *userID;
Declared In: FBSDKProfile.h
Class Methods
currentProfile

Gets the current FBSDKProfile instance.

+ (FBSDKProfile *) currentProfile;
Declared In: FBSDKProfile.h
enableUpdatesOnAccessTokenChange:

Indicates if currentProfile will automatically observe FBSDKAccessTokenDidChangeNotification notifications

ParameterDescription
enable

YES is observing

+ (void) enableUpdatesOnAccessTokenChange:(BOOL)enable;
Discussion:

If observing, this class will issue a graph request for public profile data when the current token's userID differs from the current profile. You can observe FBSDKProfileDidChangeNotification for when the profile is updated. Note that if [FBSDKAccessToken currentAccessToken] is unset, the currentProfile instance remains. It's also possible for currentProfile to return nil until the data is fetched.

Declared In: FBSDKProfile.h
loadCurrentProfileWithCompletion:

Loads the current profile and passes it to the completion block.

ParameterDescription
completion

The block to be executed once the profile is loaded

+ (void)
loadCurrentProfileWithCompletion
void
^
FBSDKProfile
profile
NSError
error
completion;
Discussion:

If the profile is already loaded, this method will call the completion block synchronously, otherwise it will begin a graph request to update currentProfile and then call the completion block when finished.

Declared In: FBSDKProfile.h
setCurrentProfile:

Sets the current instance and posts the appropriate notification if the profile parameter is different than the receiver.

ParameterDescription
profile

The profile to set

+ (void) setCurrentProfile:(FBSDKProfile *)profile;
Discussion:

This persists the profile to NSUserDefaults.

Declared In: FBSDKProfile.h
Instance Methods
imagePathForPictureMode:size:

A convenience method for returning a Graph API path for retrieving the user's profile image.

ParameterDescription
mode

The picture mode

size

The height and width. This will be rounded to integer precision.

- (NSString *)
imagePathForPictureMode: (FBSDKProfilePictureMode)mode
size: (CGSize)size
__attribute__((deprecated("use imageURLForPictureMode:size: instead")));
Discussion:

You can pass this to a FBSDKGraphRequest instance to download the image.

Declared In: FBSDKProfile.h
imageURLForPictureMode:size:

A convenience method for returning a complete NSURL for retrieving the user's profile image.

ParameterDescription
mode

The picture mode

size

The height and width. This will be rounded to integer precision.

- (NSURL *)
imageURLForPictureMode: (FBSDKProfilePictureMode)mode
size: (CGSize)size;
Declared In: FBSDKProfile.h
initWithUserID:firstName:middleName:lastName:name:linkURL:refreshDate:

Initializes a new instance.

ParameterDescription
userID

The user ID

firstName

The user's first name

middleName

The user's middle name

lastName

The user's last name

name

The user's complete name

linkURL

The link for this profile

refreshDate

The optional date this profile was fetched. Defaults to [NSDate date].

- (instancetype)
initWithUserID: (NSString *)userID
firstName: (NSString *)firstName
middleName: (NSString *)middleName
lastName: (NSString *)lastName
name: (NSString *)name
linkURL: (NSURL *)linkURL
refreshDate: (NSDate *)refreshDate
NS_DESIGNATED_INITIALIZER;
Declared In: FBSDKProfile.h
isEqualToProfile:

Returns YES if the profile is equivalent to the receiver.

ParameterDescription
profile

The profile to compare to.

- (BOOL) isEqualToProfile:(FBSDKProfile *)profile;
Declared In: FBSDKProfile.h
Constants
FBSDKProfileDidChangeNotification
FBSDK_EXTER N NSString *const FBSDKProfileDidChangeNotification;
Discussion:

The userInfo dictionary of the notification will contain keys FBSDKProfileChangeOldKey and FBSDKProfileChangeNewKey.

Declared In: FBSDKProfile.h