Microsoft graph api Microsoft Graph API FindRooms ErrorAccessDenied

Microsoft graph api Microsoft Graph API FindRooms ErrorAccessDenied,microsoft-graph-api,Microsoft Graph Api,我们正试图通过beta API获取组织中的房间列表 我正在使用,并且是在创建了一个there之后在这里被指导的 我们的应用程序已注册,并具有所需的权限。用户已正确登录并重定向。我可以成功获取/me端点 当我尝试像这样获取/me/findRooms端点时: $graph = new Graph(); $graph->setApiVersion('beta'); $graph->setAccessToken($_SESSION['access_token']); $rooms = $g

我们正试图通过beta API获取组织中的房间列表

我正在使用,并且是在创建了一个there之后在这里被指导的

我们的应用程序已注册,并具有所需的权限。用户已正确登录并重定向。我可以成功获取
/me
端点

当我尝试像这样获取
/me/findRooms
端点时:

$graph = new Graph();
$graph->setApiVersion('beta');
$graph->setAccessToken($_SESSION['access_token']);

$rooms = $graph->createRequest("get", "/me/findRooms")
                        ->setReturnType(Model\EmailAddress::class)
                        ->execute();
然后我得到以下错误:

客户端错误:获取 导致403禁止响应:{“错误”:{“代码”: “ErrorAccessDenied”,“message:”访问被拒绝。请检查凭据 然后再试一次。”,(截断…)

所以这似乎是一个权限错误

我们对我们的应用程序具有以下图形权限:

委托权限
User.ReadBasic.All
User.Read.All

应用程序权限
日历.读写
用户.读.全部


访问
/me/findRooms
需要哪些附加权限?

在您的身份验证流中,您需要指定User.Read.All而不是User.Read,因为此API要求读取目录中的所有用户以查找会议室可用性。

如果您仅在用户在场的情况下运行此操作,则需要执行此操作不需要指定应用程序权限。看起来您定义的委派权限足以在beta端点上查询房间,但还有一些其他身份验证问题。有关其他上下文:您正在使用吗?另外,如果是,您在“scp”集合中看到了什么?感谢@DmitryPimenov的答复是的,我正在使用Azure AD v2.0 endpoint以获取oauth令牌,当我解码令牌时,它在scp下包含以下内容:
“Calendars.ReadWrite User.Read”
谢谢。我在应用程序中有此权限,但没有将其与scopes.User.ReadBasic.All一起传递。如果没有User.Read.All可用,所有这些都可以工作