创建 projectParticipation
命名空间:microsoft.graph
重要
Microsoft Graph版本下的 /beta API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
使用此 API 在用户配置文件中创建新的 projectParticipation 对象。
权限
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。
| 权限类型 |
权限(从最低特权到最高特权) |
| 委派(工作或学校帐户) |
User.ReadWrite、User.ReadWrite.All |
| 委派(个人 Microsoft 帐户) |
User.ReadWrite、User.ReadWrite.All |
| 应用程序 |
User.ReadWrite.All |
HTTP 请求
POST /me/profile/projects
POST /users/{id | userPrincipalName}/profile/projects
| 名称 |
说明 |
| Authorization |
Bearer {token}。必需。 |
| Content-Type |
application/json. Required. |
请求正文
在请求正文中,提供 projectParticipation 对象的 JSON 表示形式。
下表显示了在用户配置文件中创建新的 projectParticipation 对象时可以设置 的属性。
| 属性 |
类型 |
Description |
| allowedAudiences |
String |
能够查看实体中包含的值的访问群体。 继承自 itemFacet。 可取值为:me、family、contacts、groupMembers、organization、federatedOrganizations、everyone、unknownFutureValue。 |
| categories |
String 集合 |
包含用户与项目计划关联的类别 (例如,数字转换、国家/) 。 |
| client |
companyDetail |
包含有关项目用于的客户端的详细信息。 |
| collaborationTags |
字符串集合 |
包含用户与兴趣相关联的体验方案标记。 集合中允许的值为 askMeAbout ableToMentor :、、、。 wantsToLearn wantsToImprove |
| 同事 |
relatedPerson 集合 |
列出同样从事项目工作的人。 |
| detail |
positionDetail |
包含有关用户在项目上的角色的详细信息。 |
| displayName |
String |
包含项目的友好名称。 |
| inference |
inferenceData |
如果实体是由创建或修改应用程序推断出来的,则包含推断详细信息。 继承自 itemFacet。 |
| source |
personDataSource |
如果从另一个服务同步,则值源自何处。 继承自 itemFacet。 |
| 发起人 |
relatedPerson 集合 |
为项目提供赞助的一个或多个人员。 |
关系
响应
如果成功,此方法在 201, Created 响应正文中返回 响应代码和一个新的 projectParticipation 对象。
示例
请求
下面展示了示例请求。
POST https://graph.microsoft.com/beta/me/profile/projects
Content-type: application/json
{
"categories": [
"Branding"
],
"client": {
"displayName": "Contoso Ltd.",
"department": "Corporate Marketing",
"webUrl": "https://www.contoso.com"
},
"displayName": "Contoso Re-branding Project",
"detail": {
"company": {
"displayName": "Adventureworks Inc.",
"department": "Consulting",
"webUrl": "https://adventureworks.com"
},
"description": "Rebranding of Contoso Ltd.",
"jobTitle": "Lead PM Rebranding",
"role": "project management",
"summary": "A 6 month project to help Contoso rebrand after they were divested from a parent organization."
}
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var projectParticipation = new ProjectParticipation
{
Categories = new List<String>()
{
"Branding"
},
Client = new CompanyDetail
{
DisplayName = "Contoso Ltd.",
Department = "Corporate Marketing",
WebUrl = "https://www.contoso.com"
},
DisplayName = "Contoso Re-branding Project",
Detail = new PositionDetail
{
Company = new CompanyDetail
{
DisplayName = "Adventureworks Inc.",
Department = "Consulting",
WebUrl = "https://adventureworks.com"
},
Description = "Rebranding of Contoso Ltd.",
JobTitle = "Lead PM Rebranding",
Role = "project management",
Summary = "A 6 month project to help Contoso rebrand after they were divested from a parent organization."
}
};
await graphClient.Me.Profile.Projects
.Request()
.AddAsync(projectParticipation);
const options = {
authProvider,
};
const client = Client.init(options);
const projectParticipation = {
categories: [
'Branding'
],
client: {
displayName: 'Contoso Ltd.',
department: 'Corporate Marketing',
webUrl: 'https://www.contoso.com'
},
displayName: 'Contoso Re-branding Project',
detail: {
company: {
displayName: 'Adventureworks Inc.',
department: 'Consulting',
webUrl: 'https://adventureworks.com'
},
description: 'Rebranding of Contoso Ltd.',
jobTitle: 'Lead PM Rebranding',
role: 'project management',
summary: 'A 6 month project to help Contoso rebrand after they were divested from a parent organization.'
}
};
await client.api('/me/profile/projects')
.version('beta')
.post(projectParticipation);
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/beta/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/me/profile/projects"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphProjectParticipation *projectParticipation = [[MSGraphProjectParticipation alloc] init];
NSMutableArray *categoriesList = [[NSMutableArray alloc] init];
[categoriesList addObject: @"Branding"];
[projectParticipation setCategories:categoriesList];
MSGraphCompanyDetail *client = [[MSGraphCompanyDetail alloc] init];
[client setDisplayName:@"Contoso Ltd."];
[client setDepartment:@"Corporate Marketing"];
[client setWebUrl:@"https://www.contoso.com"];
[projectParticipation setClient:client];
[projectParticipation setDisplayName:@"Contoso Re-branding Project"];
MSGraphPositionDetail *detail = [[MSGraphPositionDetail alloc] init];
MSGraphCompanyDetail *company = [[MSGraphCompanyDetail alloc] init];
[company setDisplayName:@"Adventureworks Inc."];
[company setDepartment:@"Consulting"];
[company setWebUrl:@"https://adventureworks.com"];
[detail setCompany:company];
[detail setDescription:@"Rebranding of Contoso Ltd."];
[detail setJobTitle:@"Lead PM Rebranding"];
[detail setRole:@"project management"];
[detail setSummary:@"A 6 month project to help Contoso rebrand after they were divested from a parent organization."];
[projectParticipation setDetail:detail];
NSError *error;
NSData *projectParticipationData = [projectParticipation getSerializedDataWithError:&error];
[urlRequest setHTTPBody:projectParticipationData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
ProjectParticipation projectParticipation = new ProjectParticipation();
LinkedList<String> categoriesList = new LinkedList<String>();
categoriesList.add("Branding");
projectParticipation.categories = categoriesList;
CompanyDetail client = new CompanyDetail();
client.displayName = "Contoso Ltd.";
client.department = "Corporate Marketing";
client.webUrl = "https://www.contoso.com";
projectParticipation.client = client;
projectParticipation.displayName = "Contoso Re-branding Project";
PositionDetail detail = new PositionDetail();
CompanyDetail company = new CompanyDetail();
company.displayName = "Adventureworks Inc.";
company.department = "Consulting";
company.webUrl = "https://adventureworks.com";
detail.company = company;
detail.description = "Rebranding of Contoso Ltd.";
detail.jobTitle = "Lead PM Rebranding";
detail.role = "project management";
detail.summary = "A 6 month project to help Contoso rebrand after they were divested from a parent organization.";
projectParticipation.detail = detail;
graphClient.me().profile().projects()
.buildRequest()
.post(projectParticipation);
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewProjectParticipation()
requestBody.SetCategories( []String {
"Branding",
}
client := msgraphsdk.NewCompanyDetail()
requestBody.SetClient(client)
displayName := "Contoso Ltd."
client.SetDisplayName(&displayName)
department := "Corporate Marketing"
client.SetDepartment(&department)
webUrl := "https://www.contoso.com"
client.SetWebUrl(&webUrl)
displayName := "Contoso Re-branding Project"
requestBody.SetDisplayName(&displayName)
detail := msgraphsdk.NewPositionDetail()
requestBody.SetDetail(detail)
company := msgraphsdk.NewCompanyDetail()
detail.SetCompany(company)
displayName := "Adventureworks Inc."
company.SetDisplayName(&displayName)
department := "Consulting"
company.SetDepartment(&department)
webUrl := "https://adventureworks.com"
company.SetWebUrl(&webUrl)
description := "Rebranding of Contoso Ltd."
detail.SetDescription(&description)
jobTitle := "Lead PM Rebranding"
detail.SetJobTitle(&jobTitle)
role := "project management"
detail.SetRole(&role)
summary := "A 6 month project to help Contoso rebrand after they were divested from a parent organization."
detail.SetSummary(&summary)
result, err := graphClient.Me().Profile().Projects().Post(requestBody)
Import-Module Microsoft.Graph.People
$params = @{
Categories = @(
"Branding"
)
Client = @{
DisplayName = "Contoso Ltd."
Department = "Corporate Marketing"
WebUrl = "https://www.contoso.com"
}
DisplayName = "Contoso Re-branding Project"
Detail = @{
Company = @{
DisplayName = "Adventureworks Inc."
Department = "Consulting"
WebUrl = "https://adventureworks.com"
}
Description = "Rebranding of Contoso Ltd."
JobTitle = "Lead PM Rebranding"
Role = "project management"
Summary = "A 6 month project to help Contoso rebrand after they were divested from a parent organization."
}
}
# A UPN can also be used as -UserId.
New-MgUserProfileProject -UserId $userId -BodyParameter $params
响应
下面展示了示例响应。
注意: 为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 201 Created
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": [
"Branding"
],
"client": {
"displayName": "Contoso Ltd.",
"pronunciation": null,
"department": "Corporate Marketing",
"officeLocation": null,
"address": null,
"webUrl": "https://www.contoso.com"
},
"displayName": "Contoso Re-branding Project",
"detail": {
"company": {
"displayName": "Adventureworks Inc.",
"pronunciation": null,
"department": "Consulting",
"officeLocation": null,
"address": null,
"webUrl": "https://adventureworks.com"
},
"description": "Rebranding of Contoso Ltd.",
"endMonthYear": "datetime-value",
"jobTitle": "Lead PM Rebranding",
"role": "project management",
"startMonthYear": "datetime-value",
"summary": "A 6 month project to help Contoso rebrand after they were divested from a parent organization."
},
"colleagues": null,
"sponsors": null
}