更新技能
本文内容
命名空间:microsoft.graph
重要
Microsoft Graph版本下的 /beta API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
更新用户配置文件 中的一个技能Proficiency 对象 的属性 。
权限
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限 。
权限类型
权限(从最低特权到最高特权)
委派(工作或学校帐户)
User.ReadWrite、User.ReadWrite.All
委派(个人 Microsoft 帐户)
User.ReadWrite、User.ReadWrite.All
应用程序
User.ReadWrite.All
HTTP 请求
PATCH /me/profile/skills/{id}
PATCH /users/{id | userPrincipalName}/profile/skills/{id}
名称
说明
Authorization
Bearer {token}。必需。
Content-Type
application/json. Required.
请求正文
在请求正文中,提供应更新的相关字段的值。 请求正文中不包括的现有属性将保留其以前的值,或根据对其他属性值的更改重新计算。 为了获得最佳性能,请勿加入尚未更改的现有值。
属性
类型
Description
allowedAudiences
String
能够查看实体中包含的值的访问群体。 继承自 itemFacet 。 可取值为:me、family、contacts、groupMembers、organization、federatedOrganizations、everyone、unknownFutureValue。
categories
String 集合
包含用户与技能类别关联的类别 (例如个人、专业、爱好) 。
collaborationTags
字符串集合
包含用户与兴趣相关联的体验方案标记。 集合中允许的值为 askMeAbout ableToMentor :、、、。 wantsToLearn wantsToImprove
displayName
String
包含技能的友好名称。
inference
inferenceData
如果实体是由创建或修改应用程序推断出来的,则包含推断详细信息。 继承自 itemFacet 。
熟练程度
skillProficiencyLevel
此技能的用户熟练程度的详细信息。 可取值为:elementary、limitedWorking、generalProfessional、advancedProfessional、expert、unknownFutureValue。
响应
如果成功,此方法在响应正文中返回 响应代码和更新的 200 OK skillProficiency 对象。
示例
请求
下面展示了示例请求。
PATCH https://graph.microsoft.com/beta/me/profile/skills/{id}
Content-type: application/json
{
"categories": [
"Professional"
],
"proficiency": "advancedProfessional"
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var skillProficiency = new SkillProficiency
{
Categories = new List<String>()
{
"Professional"
},
Proficiency = SkillProficiencyLevel.AdvancedProfessional
};
await graphClient.Me.Profile.Skills["{skillProficiency-id}"]
.Request()
.UpdateAsync(skillProficiency);
const options = {
authProvider,
};
const client = Client.init(options);
const skillProficiency = {
categories: [
'Professional'
],
proficiency: 'advancedProfessional'
};
await client.api('/me/profile/skills/{id}')
.version('beta')
.update(skillProficiency);
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/beta/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/me/profile/skills/{id}"]]];
[urlRequest setHTTPMethod:@"PATCH"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphSkillProficiency *skillProficiency = [[MSGraphSkillProficiency alloc] init];
NSMutableArray *categoriesList = [[NSMutableArray alloc] init];
[categoriesList addObject: @"Professional"];
[skillProficiency setCategories:categoriesList];
[skillProficiency setProficiency: [MSGraphSkillProficiencyLevel advancedProfessional]];
NSError *error;
NSData *skillProficiencyData = [skillProficiency getSerializedDataWithError:&error];
[urlRequest setHTTPBody:skillProficiencyData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
SkillProficiency skillProficiency = new SkillProficiency();
LinkedList<String> categoriesList = new LinkedList<String>();
categoriesList.add("Professional");
skillProficiency.categories = categoriesList;
skillProficiency.proficiency = SkillProficiencyLevel.ADVANCED_PROFESSIONAL;
graphClient.me().profile().skills("{id}")
.buildRequest()
.patch(skillProficiency);
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewSkillProficiency()
requestBody.SetCategories( []String {
"Professional",
}
proficiency := "advancedProfessional"
requestBody.SetProficiency(&proficiency)
skillProficiencyId := "skillProficiency-id"
graphClient.Me().Profile().SkillsById(&skillProficiencyId).Patch(requestBody)
Import-Module Microsoft.Graph.People
$params = @{
Categories = @(
"Professional"
)
Proficiency = "advancedProfessional"
}
# A UPN can also be used as -UserId.
Update-MgUserProfileSkill -UserId $userId -SkillProficiencyId $skillProficiencyId -BodyParameter $params
响应
下面展示了示例响应。
注意: 为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 200 OK
Content-type: application/json
{
"id": "0fb4c1e3-c1e3-0fb4-e3c1-b40fe3c1b40f",
"allowedAudiences": "organization",
"inference": null,
"createdDateTime": "2020-07-06T06:34:12.2294868Z",
"createdBy": {
"application": null,
"device": null,
"user": {
"displayName": "Innocenty Popov",
"id": "db789417-4ccb-41d1-a0a9-47b01a09ea49"
}
},
"lastModifiedDateTime": "2020-07-06T06:34:12.2294868Z",
"lastModifiedBy": {
"application": null,
"device": null,
"user": {
"displayName": "Innocenty Popov",
"id": "db789417-4ccb-41d1-a0a9-47b01a09ea49"
}
},
"source": null,
"categories": [
"Professional"
],
"displayName": "API Design",
"proficiency": "advancedProfessional",
"webUrl": null,
"collaborationTags": [
"ableToMentor"
]
}