首页 > 解决方案 > 获取计划返回 401 - 未经授权

问题描述

我是 Microsoft Graph 的新手。我想创建一个控制台应用程序,它将根据组名称获取所有组 ID,然后使用该组 ID 和计划名称获取特定的计划 ID(我可能是也可能不是该组的成员)。

我编写了一个能够获取组 ID 的代码,但是当我尝试使用它来获取计划 ID 时:

var targetGroup = await _graphClient
    .Groups
    .Request()
    .Filter($"startsWith(displayName,'{groupName}')")
    .GetAsync();

var groupId = targetGroup.First().Id;

var plans = await _graphClient
    .Groups[groupId]
    .Planner
    .Plans
    .Request()
    .GetAsync();

最后一行引发异常:

401 - 未经授权:由于凭据无效,访问被拒绝。

我正在使用 O365 E3 试用版。我已阅读此处发布的所有解决方案并尝试了它们,但错误仍然存​​在。我已允许用户、任务、目录、文件和组的所有权限(委托和应用程序)。

可能是权限或跟踪版本的问题吗?

更新:

我也试过这个:

GraphHttpClient.MicrosoftGraphV1BaseUri + $"groups/{groupId}/planner/plans";

它可以正常工作,groupId但是当我添加/planner/plans它时会引发相同的异常。

标签: c#microsoft-graph-apimicrosoft-graph-sdks

解决方案


您使用的是用户访问令牌还是应用程序令牌?因为根据文档,应用程序令牌不支持该 api (GET /groups/{group-id}/planner/plans) 。我不确定用户访问令牌,但我认为您必须是该组的成员才能接触计划。


推荐阅读