You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Microsoft Graph获取与Planner网页版「我的任务」一致的任务列表?

获取Planner网页版「我的任务」完整列表的方法

Planner网页版的「我的任务」实际上整合了两类任务:来自Planner计划(含私人计划)的任务,以及私人待办任务(同步自Microsoft To Do)。你调用GraphClient.Me.Planner.Tasks.GetAsync()只能拿到前者,因为私人待办不属于Planner实体范畴,需要通过To Do API单独获取后再合并结果。

步骤1:确认所需权限

应用需同时申请以下委托权限(工作/学校账户场景):

  • Planner相关:Planner.Read 或 Planner.ReadWrite
  • To Do相关:Tasks.Read 或 Tasks.ReadWrite

步骤2:获取Planner计划任务

使用Planner API获取当前用户关联的所有Planner任务,可扩展获取计划和桶的信息,方便后续关联展示:

var plannerTasks = await graphClient.Me.Planner.Tasks.GetAsync(requestConfig =>
{
    requestConfig.QueryParameters.Expand = new[] { "plan", "bucket" };
});

步骤3:获取私人待办任务

私人待办任务存储在Microsoft To Do的默认「任务」列表中,先定位该列表,再获取其中的任务:

// 获取用户所有To Do列表
var todoLists = await graphClient.Me.Todo.Lists.GetAsync();
// 找到默认私人待办列表(通常名称为「任务」)
var personalTodoList = todoLists.Value.FirstOrDefault(l => l.DisplayName == "任务");

List<TodoTask> personalTasks = new();
if (personalTodoList != null)
{
    // 获取该列表下的所有任务
    personalTasks = (await graphClient.Me.Todo.Lists[personalTodoList.Id].Tasks.GetAsync(requestConfig =>
    {
        requestConfig.QueryParameters.Expand = new[] { "parentList" };
    })).Value.ToList();
}

步骤4:合并任务列表

将Planner任务与私人待办任务合并,即可得到和网页版「我的任务」一致的完整列表,可根据需求统一处理任务状态、截止日期等字段。

内容的提问来源于stack exchange,提问作者23W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 20:04:59