Sunday, May 15, 2016

SharePoint 2013 Get current login User Profile Properties through REST API

Introduction

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

Get all properties of current user 
http:///_api/SP.UserProfiles.PeopleManager/GetMyProperties


 List of User Properties (Use the GetPropertiesFor function for these):
AccountName
DirectReports
DisplayName
Email
ExtendedManagers
ExtendedReports
IsFollowed
LatestPost
Peers
PersonalUrl
PictureUrl"
Title
UserProfileProperties
UserUrl


I want to retrieve a custom field from the user profile property with REST. The property is searchable in search box. Name of the custom properties "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 etc.

I get a node that says UserProfileProperties where there is a Key? But how do I use this?

Let's proceed

I've created an 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 which 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:

<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.1.min.js"></script> 
    <script type='text/javascript'> 
        var workEmail = "";
        var EmployeeID = "";
        var Division = "";
        var userDisplayName = "";
        var AccountName = ""; 
        $.ajax({ 
            url: _spPageContextInfo.webAbsoluteUrl +"/_api/SP.UserProfiles.PeopleManager/GetMyProperties",
            headers: { Accept: "application/json;odata=verbose" },
            success: function (data) {
                try {
                    //Get properties from user profile Json response
                    userDisplayName = data.d.DisplayName;
                    AccountName = data.d.AccountName;
                    var properties = data.d.UserProfileProperties.results;
                    for (var i = 0; i < properties.length; i++) {
                     
                        if (property.Key == "WorkEmail") {
                            workEmail = property.Value;
                        }
                      
                        if (property.Key == "EmployeeID") {
                            EmployeeID = property.Value;
                        }
                        if (property.Key == "Division") {
                            Division = property.Value;
                        }

                    }
                    $('#AccountName').text(AccountName);
                    $('#userDisplayName').text(userDisplayName);
                    $('#EmployeeID').text(EmployeeID);
                    $('#workEmail').text(workEmail);
                    $('#Division').text(Division);
                 

                } catch (err2) {
                    //alert(JSON.stringify(err2));
                }
            },
            error: function (jQxhr, errorCode, errorThrown) {
                alert(errorThrown);
            }
        });

    </script>
  
    <h2><strong>Employee Details</strong></h2>
    <br />
    AccountName   <span id="AccountName"></span>
    DisplayName   <span id="userDisplayName"></span>
    EmployeeID    <span id="EmployeeID"></span>
    Email Address <span id="workEmail"></span>
    Division      <span id="Division"></span>

No comments:

Post a Comment

What is the cost of migration to SharePoint 2016?

Below are the points to understand better how much the cost of migration to SharePoint 2016 could be for your organization: What ver...