5

I am trying to retrieve the skills that are visible on a user's profile in Microsoft Delve, inside of Office 365. It looks like this on the delve web app:

Delve Skills

I want to read the skills from a user's profile in our organization. Furthermore I want to update the skills in delve programmatically. Background is that we have an internal solution that is similar to Delve, but has some specific extensions. We want to synchronize content between the two, so we can make use of both platforms.

I looked through the Microsoft Graph API (https://developer.microsoft.com/en-us/graph/docs) but could not find what I need. Is there a way to retrieve the information (and update it) via Graph or another API?

1 Answers1

12

I found the solution. The key is the Microsoft Graph API. Delve itself is only a Graph App. On the page: https://developer.microsoft.com/en-us/graph/docs/overview/call_api you learn how to read users.

For example you can query your own skills by using:

GET https://graph.microsoft.com/v1.0/me/skills (Test with Graph Explorer)

Then, on https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/user_update you learn how to update a user (and e.g. his skills). You do that with:

PATCH https://graph.microsoft.com/v1.0/me and JSON payload:

{
"skills": [
    "Web API",
    "asp.net",
    "Windows Forms",
    "WPF",
    "Windows",
    "Windows Server",
    "Xamarin.Forms",
    "vb .net",
    "c#",
    "Citrix XenApp",
    ".NET"
    ]
}

To update other users you need one of the following scopes:

User.ReadWrite; User.ReadWrite.All; Directory.ReadWrite.All

The URL for other users is: https://graph.microsoft.com/v1.0/Users/>userPrincipalName< or use the user id.