命名空间:microsoft.graph
重要
Microsoft Graph /beta 版本下的 API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
更新 plannerUser 对象的属性。 可以使用此作在用户最喜爱的计划列表中添加或删除计划,并指示用户最近查看的计划。
此 API 可用于以下国家级云部署。
| 全局服务 |
美国政府 L4 |
美国政府 L5 (DOD) |
由世纪互联运营的中国 |
| ✅ |
✅ |
✅ |
❌ |
权限
为此 API 选择标记为最低特权的权限。
只有在应用需要它时,才使用更高的特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型。 要了解有关这些权限的详细信息,请参阅 权限参考。
| 权限类型 |
最低特权权限 |
更高特权权限 |
| 委派(工作或学校帐户) |
Tasks.ReadWrite |
Group.ReadWrite.All |
| 委派(个人 Microsoft 帐户) |
不支持。 |
不支持。 |
| 应用程序 |
不支持。 |
不支持。 |
HTTP 请求
PATCH /me/planner
| 名称 |
说明 |
| Authorization |
Bearer {code}。 必需。 |
| If-Match |
要更新 的 plannerUser 的最后一个已知 ETag 值。 必填。 |
请求正文
在请求正文中,提供应更新的相关字段的值。 请求正文中未包含的现有属性会保留其以前的值,或者根据对其他属性值的更改重新计算。 为了获得最佳性能,请勿加入尚未更改的现有值。
响应
如果成功,此方法返回 204 No Content 响应和空内容。 如果请求指定具有首选项的Preferreturn=representation标头,则此方法在响应正文中返回响应200 OK代码和更新的 plannerUser 对象。
此方法可以返回任何 HTTP 状态代码。 应用应为此方法处理的最常见错误是 400、403、404、409 和 412 响应。 有关这些错误的详细信息,请参阅常见Planner错误条件。
示例
请求
以下示例显示了一个请求。 此请求将 ID 为“jd8S5gOaFk2S8aWCIAJz42QAAxtD”的计划添加为用户的收藏夹,并从收藏夹计划列表中删除 ID 为“7oTB5aMIAE2rVo-1N-L7RmQAGX2q”的计划。
它还更新计划“jd8S5gOaFk2S8aWCIAJz42QAAxtD”的最后一次查看时间。
PATCH https://graph.microsoft.com/beta/me/planner
Content-type: application/json
Prefer: return=representation
If-Match: W/"JzEtVXNlckRldGFpbHMgQEBAQEBAQEBAQEBAQEBIWCc="
{
"favoritePlanReferences": {
"jd8S5gOaFk2S8aWCIAJz42QAAxtD": {
"@odata.type": "#microsoft.graph.plannerFavoritePlanReference",
"orderHint": " !",
"planTitle": "Next Release Discussion"
},
"7oTB5aMIAE2rVo-1N-L7RmQAGX2q": null
},
"recentPlanReferences": {
"jd8S5gOaFk2S8aWCIAJz42QAAxtD": {
"@odata.type": "#microsoft.graph.plannerRecentPlanReference",
"lastAccessedDateTime": "2018-01-02T22:49:46.155Z",
"planTitle": "Next Release Discussion"
}
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = new PlannerUser
{
FavoritePlanReferences = new PlannerFavoritePlanReferenceCollection
{
AdditionalData = new Dictionary<string, object>
{
{
"jd8S5gOaFk2S8aWCIAJz42QAAxtD" , new PlannerFavoritePlanReference
{
OdataType = "#microsoft.graph.plannerFavoritePlanReference",
OrderHint = " !",
PlanTitle = "Next Release Discussion",
}
},
{
"7oTB5aMIAE2rVo-1N-L7RmQAGX2q" , null
},
},
},
RecentPlanReferences = new PlannerRecentPlanReferenceCollection
{
AdditionalData = new Dictionary<string, object>
{
{
"jd8S5gOaFk2S8aWCIAJz42QAAxtD" , new PlannerRecentPlanReference
{
OdataType = "#microsoft.graph.plannerRecentPlanReference",
LastAccessedDateTime = DateTimeOffset.Parse("2018-01-02T22:49:46.155Z"),
PlanTitle = "Next Release Discussion",
}
},
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Me.Planner.PatchAsync(requestBody, (requestConfiguration) =>
{
requestConfiguration.Headers.Add("Prefer", "return=representation");
requestConfiguration.Headers.Add("If-Match", "W/\"JzEtVXNlckRldGFpbHMgQEBAQEBAQEBAQEBAQEBIWCc=\"");
});
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
abstractions "github.com/microsoft/kiota-abstractions-go"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
graphusers "github.com/microsoftgraph/msgraph-beta-sdk-go/users"
//other-imports
)
headers := abstractions.NewRequestHeaders()
headers.Add("Prefer", "return=representation")
headers.Add("If-Match", "W/\"JzEtVXNlckRldGFpbHMgQEBAQEBAQEBAQEBAQEBIWCc=\"")
configuration := &graphusers.ItemPlannerRequestBuilderPatchRequestConfiguration{
Headers: headers,
}
requestBody := graphmodels.NewPlannerUser()
favoritePlanReferences := graphmodels.NewPlannerFavoritePlanReferenceCollection()
additionalData := map[string]interface{}{
jd8S5gOaFk2S8aWCIAJz42QAAxtD := graphmodels.NewPlannerFavoritePlanReference()
orderHint := " !"
jd8S5gOaFk2S8aWCIAJz42QAAxtD.SetOrderHint(&orderHint)
planTitle := "Next Release Discussion"
jd8S5gOaFk2S8aWCIAJz42QAAxtD.SetPlanTitle(&planTitle)
favoritePlanReferences.SetJd8S5gOaFk2S8aWCIAJz42QAAxtD(jd8S5gOaFk2S8aWCIAJz42QAAxtD)
"7oTB5aMIAE2rVo-1N-L7RmQAGX2q" := null
favoritePlanReferences.Set"7oTB5aMIAE2rVo-1N-L7RmQAGX2q"(&"7oTB5aMIAE2rVo-1N-L7RmQAGX2q")
}
favoritePlanReferences.SetAdditionalData(additionalData)
requestBody.SetFavoritePlanReferences(favoritePlanReferences)
recentPlanReferences := graphmodels.NewPlannerRecentPlanReferenceCollection()
additionalData := map[string]interface{}{
jd8S5gOaFk2S8aWCIAJz42QAAxtD := graphmodels.NewPlannerRecentPlanReference()
lastAccessedDateTime , err := time.Parse(time.RFC3339, "2018-01-02T22:49:46.155Z")
jd8S5gOaFk2S8aWCIAJz42QAAxtD.SetLastAccessedDateTime(&lastAccessedDateTime)
planTitle := "Next Release Discussion"
jd8S5gOaFk2S8aWCIAJz42QAAxtD.SetPlanTitle(&planTitle)
recentPlanReferences.SetJd8S5gOaFk2S8aWCIAJz42QAAxtD(jd8S5gOaFk2S8aWCIAJz42QAAxtD)
}
recentPlanReferences.SetAdditionalData(additionalData)
requestBody.SetRecentPlanReferences(recentPlanReferences)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
planner, err := graphClient.Me().Planner().Patch(context.Background(), requestBody, configuration)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
PlannerUser plannerUser = new PlannerUser();
PlannerFavoritePlanReferenceCollection favoritePlanReferences = new PlannerFavoritePlanReferenceCollection();
HashMap<String, Object> additionalData = new HashMap<String, Object>();
PlannerFavoritePlanReference jd8S5gOaFk2S8aWCIAJz42QAAxtD = new PlannerFavoritePlanReference();
jd8S5gOaFk2S8aWCIAJz42QAAxtD.setOdataType("#microsoft.graph.plannerFavoritePlanReference");
jd8S5gOaFk2S8aWCIAJz42QAAxtD.setOrderHint(" !");
jd8S5gOaFk2S8aWCIAJz42QAAxtD.setPlanTitle("Next Release Discussion");
additionalData.put("jd8S5gOaFk2S8aWCIAJz42QAAxtD", jd8S5gOaFk2S8aWCIAJz42QAAxtD);
additionalData.put("7oTB5aMIAE2rVo-1N-L7RmQAGX2q", null);
favoritePlanReferences.setAdditionalData(additionalData);
plannerUser.setFavoritePlanReferences(favoritePlanReferences);
PlannerRecentPlanReferenceCollection recentPlanReferences = new PlannerRecentPlanReferenceCollection();
HashMap<String, Object> additionalData1 = new HashMap<String, Object>();
PlannerRecentPlanReference jd8S5gOaFk2S8aWCIAJz42QAAxtD1 = new PlannerRecentPlanReference();
jd8S5gOaFk2S8aWCIAJz42QAAxtD1.setOdataType("#microsoft.graph.plannerRecentPlanReference");
OffsetDateTime lastAccessedDateTime = OffsetDateTime.parse("2018-01-02T22:49:46.155Z");
jd8S5gOaFk2S8aWCIAJz42QAAxtD1.setLastAccessedDateTime(lastAccessedDateTime);
jd8S5gOaFk2S8aWCIAJz42QAAxtD1.setPlanTitle("Next Release Discussion");
additionalData1.put("jd8S5gOaFk2S8aWCIAJz42QAAxtD", jd8S5gOaFk2S8aWCIAJz42QAAxtD1);
recentPlanReferences.setAdditionalData(additionalData1);
plannerUser.setRecentPlanReferences(recentPlanReferences);
PlannerUser result = graphClient.me().planner().patch(plannerUser, requestConfiguration -> {
requestConfiguration.headers.add("Prefer", "return=representation");
requestConfiguration.headers.add("If-Match", "W/\"JzEtVXNlckRldGFpbHMgQEBAQEBAQEBAQEBAQEBIWCc=\"");
});
const options = {
authProvider,
};
const client = Client.init(options);
const plannerUser = {
favoritePlanReferences: {
jd8S5gOaFk2S8aWCIAJz42QAAxtD: {
'@odata.type': '#microsoft.graph.plannerFavoritePlanReference',
orderHint: ' !',
planTitle: 'Next Release Discussion'
},
'7oTB5aMIAE2rVo-1N-L7RmQAGX2q': null
},
recentPlanReferences: {
jd8S5gOaFk2S8aWCIAJz42QAAxtD: {
'@odata.type': '#microsoft.graph.plannerRecentPlanReference',
lastAccessedDateTime: '2018-01-02T22:49:46.155Z',
planTitle: 'Next Release Discussion'
}
}
};
await client.api('/me/planner')
.version('beta')
.update(plannerUser);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Users\Item\Planner\PlannerRequestBuilderPatchRequestConfiguration;
use Microsoft\Graph\Beta\Generated\Models\PlannerUser;
use Microsoft\Graph\Beta\Generated\Models\PlannerFavoritePlanReferenceCollection;
use Microsoft\Graph\Beta\Generated\Models\PlannerFavoritePlanReference;
use Microsoft\Graph\Beta\Generated\Models\PlannerRecentPlanReferenceCollection;
use Microsoft\Graph\Beta\Generated\Models\PlannerRecentPlanReference;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new PlannerUser();
$favoritePlanReferences = new PlannerFavoritePlanReferenceCollection();
$additionalData = [
'jd8S5gOaFk2S8aWCIAJz42QAAxtD' => [
'@odata.type' => '#microsoft.graph.plannerFavoritePlanReference',
'orderHint' => ' !',
'planTitle' => 'Next Release Discussion',
],
'7oTB5aMIAE2rVo-1N-L7RmQAGX2q' => null,
];
$favoritePlanReferences->setAdditionalData($additionalData);
$requestBody->setFavoritePlanReferences($favoritePlanReferences);
$recentPlanReferences = new PlannerRecentPlanReferenceCollection();
$additionalData = [
'jd8S5gOaFk2S8aWCIAJz42QAAxtD' => [
'@odata.type' => '#microsoft.graph.plannerRecentPlanReference',
'lastAccessedDateTime' => new \DateTime('2018-01-02T22:49:46.155Z'),
'planTitle' => 'Next Release Discussion',
],
];
$recentPlanReferences->setAdditionalData($additionalData);
$requestBody->setRecentPlanReferences($recentPlanReferences);
$requestConfiguration = new PlannerRequestBuilderPatchRequestConfiguration();
$headers = [
'Prefer' => 'return=representation',
'If-Match' => 'W/"JzEtVXNlckRldGFpbHMgQEBAQEBAQEBAQEBAQEBIWCc="',
];
$requestConfiguration->headers = $headers;
$result = $graphServiceClient->me()->planner()->patch($requestBody, $requestConfiguration)->wait();
Import-Module Microsoft.Graph.Beta.Planner
$params = @{
favoritePlanReferences = @{
jd8S5gOaFk2S8aWCIAJz42QAAxtD = @{
"@odata.type" = "#microsoft.graph.plannerFavoritePlanReference"
orderHint = " !"
planTitle = "Next Release Discussion"
}
"7oTB5aMIAE2rVo-1N-L7RmQAGX2q" = $null
}
recentPlanReferences = @{
jd8S5gOaFk2S8aWCIAJz42QAAxtD = @{
"@odata.type" = "#microsoft.graph.plannerRecentPlanReference"
lastAccessedDateTime = "2018-01-02T22:49:46.155Z"
planTitle = "Next Release Discussion"
}
}
}
# A UPN can also be used as -UserId.
Update-MgBetaUserPlanner -UserId $userId -BodyParameter $params -IfMatch W/'"JzEtVXNlckRldGFpbHMgQEBAQEBAQEBAQEBAQEBIWCc="'
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.users.item.planner.planner_request_builder import PlannerRequestBuilder
from kiota_abstractions.base_request_configuration import RequestConfiguration
from msgraph_beta.generated.models.planner_user import PlannerUser
from msgraph_beta.generated.models.planner_favorite_plan_reference_collection import PlannerFavoritePlanReferenceCollection
from msgraph_beta.generated.models.planner_favorite_plan_reference import PlannerFavoritePlanReference
from msgraph_beta.generated.models.planner_recent_plan_reference_collection import PlannerRecentPlanReferenceCollection
from msgraph_beta.generated.models.planner_recent_plan_reference import PlannerRecentPlanReference
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = PlannerUser(
favorite_plan_references = PlannerFavoritePlanReferenceCollection(
additional_data = {
"jd8_s5g_oa_fk2_s8a_w_c_i_a_jz42_q_a_axt_d" : {
"@odata_type" : "#microsoft.graph.plannerFavoritePlanReference",
"order_hint" : " !",
"plan_title" : "Next Release Discussion",
},
"7o_t_b5a_m_i_a_e2r_vo-1_n-_l7_rm_q_a_g_x2q" : None,
}
),
recent_plan_references = PlannerRecentPlanReferenceCollection(
additional_data = {
"jd8_s5g_oa_fk2_s8a_w_c_i_a_jz42_q_a_axt_d" : {
"@odata_type" : "#microsoft.graph.plannerRecentPlanReference",
"last_accessed_date_time" : "2018-01-02T22:49:46.155Z",
"plan_title" : "Next Release Discussion",
},
}
),
)
request_configuration = RequestConfiguration()
request_configuration.headers.add("Prefer", "return=representation")
request_configuration.headers.add("If-Match", "W/\"JzEtVXNlckRldGFpbHMgQEBAQEBAQEBAQEBAQEBIWCc=\"")
result = await graph_client.me.planner.patch(request_body, request_configuration = request_configuration)
响应
以下示例显示了相应的响应。
注意:为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 200 OK
Content-type: application/json
{
"favoritePlanReferences": {
"jd8S5gOaFk2S8aWCIAJz42QAAxtD": {
"@odata.type": "#microsoft.graph.plannerFavoritePlanReference",
"orderHint": "8586866870001551087",
"planTitle": "Next Release Discussion"
},
"uZWtCtli30CGoWLIWSat1mQAC0ai": {
"@odata.type": "#microsoft.graph.plannerFavoritePlanReference",
"orderHint": "8586888705198093378",
"planTitle": "Product Support"
}
},
"recentPlanReferences": {
"jd8S5gOaFk2S8aWCIAJz42QAAxtD": {
"@odata.type": "#microsoft.graph.plannerRecentPlanReference",
"lastAccessedDateTime": "2018-01-02T22:49:46.155Z",
"planTitle": "Next Release Discussion"
},
"XYE5pqNJu0uuRC2PM4ZQrmQAF2Pn": {
"@odata.type": "#microsoft.graph.plannerRecentPlanReference",
"lastAccessedDateTime": "2018-01-01T19:39:17.57Z",
"planTitle": "Success Metrics"
}
},
"id": "-YPnMJRiIUSKFyaVjYEkBWQAAc47"
}