我正在使用带有.Net SDK的Microsoft Graph API。
我正在尝试创建一个新的PlannerTask,并在执行此操作时提供说明。
PlannerTask的描述在一个相关对象PlannerTaskDetails上,因此该对象是"只读"。
这似乎意味着要创建一个带有描述的PlannerTask,我必须至少进行两次调用。第一个调用创建PlannerTask,第二个调用更新PlannerTaskDetails。
要更新PlannerTaskDetails,需要一个电子标签。所以我使用Expand来请求在返回创建的PlannerTask时填充Details属性。但它返回无人居住(即无效)。
var task = await graphServiceClient
.Planner
.Tasks
.Request()
.Expand("Details")
.AddAsync(plannerTask);
var taskPlannerDetailsETag = task.Details.GetEtag();
var taskDetails = await graphServiceClient
.Planner
.Tasks[task.Id]
.Details
.Request()
.Header("If-Match", taskPlannerDetailsETag)
.UpdateAsync(new PlannerTaskDetails()
{
Description = officeTask.Body
});
接下来要尝试的是创建PlannerTask,然后进行第二次调用以检索PlannerTaskDetails,然后再进行第三次调用以更新PlannerTaskDetails。但我认为我必须接近这个错误,3次网络往返创建一个描述的单一任务似乎,很荒谬。
我做错了什么?
答案 0 :(得分:2)
创建任务,阅读详细信息,然后更新详细信息是当前完成此方案的正确方法。请注意,在创建任务后立即读取详细信息可能会失败,因为处理是异步的,因此您应该添加一些重试逻辑以获得稳定的行为。我们正在努力改进此方案以简化流程。