Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / Javascript

How to Get Login Name and Display Name Using SharePoint 2013 REST API

0.00/5 (No votes)
14 Aug 2013CPOL 19.2K  
How to get login name and display name using SharePoint 2013 REST API.

Working with REST API is quite simple and straight forward, for example when you need to fetch data from a list you can use the following jQuery AJAX code snippet:

JavaScript
jQuery.ajax({
   url: "http://YourSite/_api/web/lists/getbytitle('ListName')/items",
   type: "GET",
   headers: { "Accept": "application/json;odata=verbose" },
   success: function(data, textStatus, xhr) {
    var dataResults = data.d.results;
    alert(dataResults[0].Title);     
    },
   error: function(xhr, textStatus, errorThrown) {
   alert("error:"+JSON.stringify(xhr));
   }
});

Another good example is when you need to get specific fields like “Title”, “ID”, or  “Modified”, you can use the $select keyword.

For example:

JavaScript
url: "http://YourSite/_api/web/lists/getbytitle('ListName')/items$select= Title ,ID, Modified",
    type: "GET",
    headers: { "Accept": "application/json;odata=verbose" },
    success: function(data, textStatus, xhr) {
     var dataResults = data.d.results;
     alert(dataResults[0].Modified);     
        },
    error: function(xhr, textStatus, errorThrown) {
    alert("error:"+JSON.stringify(xhr));
    }
});

But what happens when you need to get a user/group field like “Author” ? well, things are not as obvious as they seem.

Unfortunately you can’t use /getbytitle('ListName')/items or /getbytitle('ListName')/items?filter=Author to get the user field since this field does not exist in the response data, but luckily for us we have an “AuthorId” field that (as you already  guessed) will get us the user id.

image

So after getting the user id from your list you need to make another AJAX call to get the user login name/display name by using /_api/Web/GetUserById method .

Example:

JavaScript
function getUser(id){
var returnValue;
  jQuery.ajax({
   url: "http://YourSite/_api/Web/GetUserById(" + id + ")",
   type: "GET",
   headers: { "Accept": "application/json;odata=verbose" },
   success: function(data) {
           var dataResults = data.d;
      //get login name  
      var loginName  = dataResults.LoginName.split('|')[1];
      alert(loginName);     
      //get display name
      alert(dataResults.Title);
   }
 });
}

image

Full example:

JavaScript
jQuery.ajax({
    url: "/SiteName/_api/web/lists/getbytitle('ListName')/items",
    type: "GET",
    headers: { "Accept": "application/json;odata=verbose" },
    success: function(data, textStatus, xhr) {
        var dataResults = data.d.results;
        var resultId = dataResults[0].AuthorId.results[0];
        getUser(resultId)
    },
    error: function(xhr, textStatus, errorThrown) {
        alert("error:"+JSON.stringify(xhr));
    }
});

function getUser(id){
var returnValue;
  jQuery.ajax({
   url: "http://YourSite/_api/Web/GetUserById(" + id + ")",
   type: "GET",
   headers: { "Accept": "application/json;odata=verbose" },
   success: function(data) {
           var dataResults = data.d;
      //get login name  
      var loginName  = dataResults.LoginName.split('|')[1];
      alert(loginName);     
      //get display name
      alert(dataResults.Title);
   }
 });
}

I would like to thank Ofir Elmishali for helping me with this post.

Hope you’ll find this post helpful.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)