Hello.
I'm trying to update a user's skillProficiency
using the Beta API.
First i get the skillProficiency
from a user by calling the beta API.
GET https://graph.microsoft.com/beta/users/{userid}/profile/skills/180eb4aa-e988-4a44-9745-065db3460cf6/?$select=id,displayName,categories,proficiency,source
Response:
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#users('{userid}')/profile/skills(id,displayName,categories,proficiency)/$entity",
"id": "180eb4aa-e988-4a44-9745-065db3460cf6",
"displayName": "azure devops",
"categories": [],
"proficiency": null,
"source": {
"type": [
"User"
]
}
}
Then i try to PATCH the skillProficiency using the beta API:
PATCH https://graph.microsoft.com/beta/users/{userid}/profile/skills/180eb4aa-e988-4a44-9745-065db3460cf6
Body:
{
"displayName": "Azure DevOps",
"categories": [
"CI/CD"
],
"proficiency": "elementary"
}
Response is a 404
{
"error": {
"code": "UnknownError",
"message": "",
"innerError": {
"date": "2022-12-22T10:41:51",
"request-id": "77fa3206-3ba5-4807-b79e-ceb423a61fc8",
"client-request-id": "77fa3206-3ba5-4807-b79e-ceb423a61fc8"
}
}
}
I did some more testing. The uses case mentioned in the issue is based on skills added via de Delve portal. This can be seen as the source type is UPA.
I also tested to create and update a new skill both created and updated using the API. This does work (although the PATCH call returned a 204 No Content which should actually return a 200 OK response code and an updated skillProficiency
object in the response body.
Also, deleting skills previously created using Delve does not work. So, there is a connection between the two.
Hope this helps with the analysis.