1

Is there a way to retrieve the currently logged in user's colleagues' usernames?

I found this which shows how to do it using server object model, but haven't found anything for JavaScript object model.

2 Answers 2

2

I might be wrong, but isnt Colleagues the same as SPS-Peers? If so you could get it with UserProfiles.

Example:

function getPeers() {
    var context = SP.ClientContext.get_current();
    var peopleManager = new SP.UserProfiles.PeopleManager(context);
    userProfileProperties = peopleManager.getMyProperties();
    context.load(userProfileProperties, 'Peers');
    context.executeQueryAsync(success, fail);
}
function success(){
  var peers = userProfileProperties.get_peers();
  console && console.dir(peers);
}

function fail(sender, args) {
 console && console.log("Error");
}


SP.SOD.loadMultiple(['sp.js', 'userprofile'],function() {
 getPeers();
});
6
  • 1
    Hmm.. an interesting idea, according to this support.office.com/en-sg/article/… My Colleagues category includes your manager, your peers, and your direct reports Commented Apr 8, 2015 at 9:28
  • @VadimGremyachev So if one includes the Properties; DirectReports/ExtendedReports and ExtendedManagers you would have the same result Commented Apr 8, 2015 at 10:06
  • Thanks for this suggestion. I'll give it a try and get back.
    – Submits
    Commented Apr 9, 2015 at 11:48
  • So this solution seems to work. However, I don't get back ALL of the user's colleagues, as setup in Active Directory. I have a feeling this is possibly because they don't all have user profiles on SharePoint as some have not yet logged onto our new SharePoint site - what do you think? Any way to get around this so that all colleagues are returned regardless of whether they have a user profile on SharePoint or not? Thanks.
    – Submits
    Commented Apr 13, 2015 at 8:48
  • @Submits I don't think you can get all the Peers without syncing all the Users. They don't have to be logged in for the Profile to be created, just mysite is created the first time they click on about me. Do you see the missing people in the UserProfile Service if you search for AD-users there? If not, make sure you sync all the users to the User Profile Service. Commented Apr 13, 2015 at 10:03
1

Unfortunately it does not seem possible to archive via SharePoint CSOM/JSOM API since SSOM ColleagueManager class is not supported in CSOM/JSOM API.

But you could utilize SharePoint Web Services, in particular UserProfileService.GetUserColleagues method for that purpose:

SPServices example:

$().SPServices({
    operation: "GetUserColleagues", 
    AccountName: $().SPServices.SPGetCurrentUser({fieldName: "Name"}), 
    completefunc:function(data,status) {
        //process GetUserColleaguesResult... 
    }
});
2
  • 1
    Thanks for your suggestion. I shall give it a try and get back.
    – Submits
    Commented Apr 9, 2015 at 11:48
  • 1
    I prefer the answer by Anders on this occasion as it does not require the use of SPServices. Many thanks for your help.
    – Submits
    Commented Apr 13, 2015 at 8:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.