首页 > 解决方案 > MS Graph API 更新 PlannerTask.ConversationThreadId

问题描述

我想更新 PlannerTask 中的“ConversationThreadId”字段。

这是我的代码:

plannerTask = await graphClient.Planner.Tasks["XXXXXXXXX"].Request().GetAsync();
var eTagId = plannerTask.GetEtag();
plannerTask.ConversationThreadId = "YYYYYYYY";
await graphClient.Planner.Tasks[plannerTask.Id]
    .Request()
    .Header("Prefer", "return=representation")
    .Header("If-Match", eTagId)
    .UpdateAsync(plannerTask);

它抛出了这个错误:

消息:请求无效:从 JSON 读取器读取时,为名为“assignedBy”的属性找到了意外的“StartObject”节点。需要一个“PrimitiveValue”节点。

我究竟做错了什么?

谢谢

标签: c#microsoft-graph-apimicrosoft-plannermicrosoft-graph-plannertasks

解决方案


获得方法是:

plannerTask = await graphClient.Planner.Tasks["XXXXXXXXX"].Request().GetAsync();
var eTagId = plannerTask.GetEtag();
var newTask = new PlannerTask {
        ConversationThreadId = "YYYYYYYY"
};
await graphClient.Planner.Tasks[plannerTask.Id]
    .Request()
    .Header("Prefer", "return=representation")
    .Header("If-Match", eTagId)
    .UpdateAsync(newTask);

这是因为它不是 PUT 而是 PATCH,所以我们只应该发送已更改的字段。我正在发送完整的对象,这就是问题所在。现在我创建 newTask 并只在其中指定“ConversationThreadId”。这种方式对我来说就像一种魅力。


推荐阅读