Get Current Login User Profile Properties Through REST API

Posted: April 17, 2015 in SharePoint2013

Introduction

User profile properties provide information about SharePoint users, such as display name, email, account name and other business and personal information including custom properties.

Imagine

Imagine I want to retrieve a custom field from the user profile property with REST. The property is searchable in a search box. The name of the custom properties are “Employee ID” and “Division”.

But when I try to use http://siteurl/_api/SP.UserProfiles.PeopleManager/GetMyProperties, it does not retrieve the custom properties, on the contrary I can see only the built-in properties like:

  • AccountName
  • DisplayName

I get a node that says UserProfileProperties. Where is a key? So how do I use this?

Let’s proceed

I’ve created a UserProfile with some custom properties.

When I use http://siteurl/_api/SP.UserProfiles.PeopleManager/GetMyProperties, I get a result set with all UserProfile properties, including my custom properties. Right now I am using a workaround that iterates through the (big) result set with all properties to get my custom property.

Step 1: Navigate to your SharePoint 2013 site.

Step 2: From this page select the Site Actions | Edit Page.

Edit the page, go to the “Insert” tab in the Ribbon and click the “Web Part” option. In the “Web Parts”dialogue, go to the “Media and Content” category, select the “Script Editor” Web Part and click the “Add button”.

Step 3: Once the Web Part is inserted into the page, you will see an “EDIT SNIPPET” link; click it. You can insert the HTML and/or JavaScript as in the following:

  1. <script src=http://ajax.aspnetcdn.com/ajax/jQuery/jquery:1.10.1.min.js&#8221;></script>
  2.     <script type=‘text/javascript’>
  3.         var workEmail = “”;
  4.         var EmployeeID = “”;
  5.         var Division = “”;
  6.         var userDisplayName = “”;
  7.         var AccountName = “”;
  8.         $.ajax({
  9.             url: _spPageContextInfo.webAbsoluteUrl + “/_api/SP.UserProfiles.PeopleManager/GetMyProperties”,
  10.             headers: { Accept: “application/json;odata=verbose” },
  11.             success: function (data) {
  12.                 try {
  13.                     //Get properties from user profile Json response
  14.                     userDisplayName = data.d.DisplayName;
  15.                     AccountName = data.d.AccountName;
  16.                     var properties = data.d.UserProfileProperties.results;
  17.                     for (var i = 0; i < properties.length; i++) {
  18.                         if (property.Key == “WorkEmail”) {
  19.                             workEmail = property.Value;
  20.                         }
  21.                         if (property.Key == “EmployeeID”) {
  22.                             EmployeeID = property.Value;
  23.                         }
  24.                         if (property.Key == “Division”) {
  25.                             Division = property.Value;
  26.                         }
  27.                     }
  28.                     $(‘#AccountName’).text(AccountName);
  29.                     $(‘#userDisplayName’).text(userDisplayName);
  30.                     $(‘#EmployeeID’).text(EmployeeID);
  31.                     $(‘#workEmail’).text(workEmail);
  32.                     $(‘#Division’).text(Division);
  33.                 } catch (err2) {
  34.                     //alert(JSON.stringify(err2));
  35.                 }
  36.             },
  37.             error: function (jQxhr, errorCode, errorThrown) {
  38.                 alert(errorThrown);
  39.             }
  40.         });
  41.     </script>
  42.     <h2><strong>Employee Details</strong></h2>
  43.     <br />
  44.     AccountName   <span id=“AccountName”></span>
  45.     DisplayName   <span id=“userDisplayName”></span>
  46.     EmployeeID    <span id=“EmployeeID”></span>
  47.     Email Address <span id=“workEmail”></span>
  48.     Division      <span id=“Division”></span>


User Properties

The following is the list of User Properties (use the GetPropertiesFor function for these):

AccountName
DirectReports
DisplayName
Email
ExtendedManagers
ExtendedReports
IsFollowed
LatestPost
Peers
PersonalUrl
PictureUrl
Title
UserProfileProperties
UserUrl

User Profile Properties

The following is the list of User Profile Properties:

AboutMe

SPS: LastKeywordAdded
AccountName

SPS: Locale
ADGuid

SPS: Location
Assistant

SPS: MasterAccountName
CellPhone

SPS: MemberOf
Department

SPS: MUILanguages
EduExternalSyncState

SPS: MySiteUpgrade
EduOAuthTokenProviders

SPS: O15FirstRunExperience
EduPersonalSiteState

SPS: ObjectExists
EduUserRole

SPS: OWAUrl
Fax

SPS: PastProjects
FirstName

SPS: Peers
HomePhone

SPS: PersonalSiteCapabilities
LastName

SPS: PersonalSiteInstantiationState
Manager

SPS: PhoneticDisplayName
Office

SPS: PhoneticFirstName
PersonalSpace

SPS: PhoneticLastName
PictureURL

SPS: PrivacyActivity
PreferredName

SPS: PrivacyPeople
PublicSiteRedirect

SPS: ProxyAddresses
QuickLinks

SPS: RegionalSettings:FollowWeb
SID

SPS: RegionalSettings:Initialized
SISUserId

SPS: ResourceAccountName

SPS: AdjustHijriDays

SPS: ResourceSID
SPS: AltCalendarType

SPS: Responsibility

SPS: Birthday

SPS: SavedAccountName
SPS: CalendarType
SPS: SavedSID
SPS: ClaimID
SPS: School
SPS: ClaimProviderID
SPS: ShowWeeks
SPS: ClaimProviderType
SPS:SipAddress
SPS:ContentLanguages
SPS:Skills
SPS:DataSource
SPS:SourceObjectDN
SPS:Department
SPS:StatusNotes
SPS:DisplayOrder
SPS:Time24
SPS:DistinguishedName
SPS:TimeZone
SPS:DontSuggestList
SPS: UserPrincipalName
SPS:Dotted:line
SPS:WorkDayEndHour
SPS:EmailOptin
SPS:WorkDayStartHour
SPS:FeedIdentifier
SPS:WorkDays
SPS:FirstDayOfWeek

Title

SPS:FirstWeekOfYear
UserName

SPS:HashTags
UserProfile_GUID

SPS:HireDate
WebSite

SPS:Interests
WorkEmail

SPS:JobTitle
WorkPhone

SPS:LastColleagueAdded

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s