c# - 获取计划返回 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
它时会引发相同的异常。
解决方案
您使用的是用户访问令牌还是应用程序令牌?因为根据文档,应用程序令牌不支持该 api (GET /groups/{group-id}/planner/plans) 。我不确定用户访问令牌,但我认为您必须是该组的成员才能接触计划。
推荐阅读
- apache-spark - spark sql读取hive表时的分区数是多少?
- python - 如何在熊猫中使用正则表达式拆分字符串地址列
- django - 在表单 selenium + python 中提交按钮
- html - 如何将css内容属性设置为表格行中的动态值
- python - python Dataframe中的数学运算(加法和幂)
- java - 应用程序:passwordToggleEnabled="true" 不起作用
- c# - 更新标签 + 1 每个 Web 浏览器使用 c# 在特定时间刷新
- android - 当editText处于横向全屏模式时如何避免复制/剪切选项
- javascript - 仅当条件已满时才添加下拉切换
- javascript - 动态CRM在线升级后/api/data/v8.2到/api/data/v9.0?