如何通过Microsoft Graph获取与Planner「我的计划」一致的计划列表?
获取Planner「我的计划」完整列表的C# SDK实现
问题原因
调用GraphClient.Me.Planner.Plans.GetAsync()仅能返回用户作为所有者的私有计划,而Planner Web UI的「我的计划」页面展示的是用户拥有访问权限的所有计划(包括共享计划、团队关联计划等),两者依赖的API端点不同。
解决方案
使用Microsoft Graph API的/me/planner/allPlans端点,对应的C# SDK调用方式如下:
var allPlans = await GraphClient.Me.Planner.AllPlans.GetAsync();
这个端点会返回当前用户有权访问的所有Planner计划,和Web UI「我的计划」展示的内容完全一致。
权限验证
你当前配置的权限范围(Tasks.Read、Tasks.Read.Shared等)已经满足访问allPlans端点的要求,无需额外添加权限。
扩展查询(可选)
如果需要获取计划关联的容器信息(比如所属团队、组),可以通过$expand参数扩展查询:
var allPlansWithContainer = await GraphClient.Me.Planner.AllPlans .GetAsync(requestConfiguration => { requestConfiguration.QueryParameters.Expand = new string[] { "container" }; });
这样可以获取到计划所属的团队ID、容器类型等详细关联信息。
内容的提问来源于stack exchange,提问作者23W
相关产品推荐
相关产品推荐

