首页 文章

通过Microsoft Graph API访问共享/ Session 室日历的错误

提问于
浏览
2

我使用V2 endpoints 和Auth Code Grant注册了一个应用程序(在Microsoft应用程序注册门户中) . 这成功地允许我登录,并给我一个带有 Calendars.ReadWrite.Shared 范围的功能令牌 . 有了这个令牌,我可以检索自己的日历和已经与我明确共享的日历(因此添加到我的日历列表中) . 所有这一切都只适用于普通的 Calendars.ReadWrite 范围 .

但是,在请求访问任何其他共享日历(例如房间日历)时,我会收到错误 . 这是一个例子 . 如果我对 https://graph.microsoft.com/beta/users/my-own-email@business.com/calendars 进行GET调用,它会成功返回我的日历列表 . 如果我对 https://graph.microsoft.com/beta/users/meetingroom1.4@business.com/calendars 进行GET调用,我会收到404(未找到)错误 . 任何其他用户都会遇到同样的错误,而不仅仅是 Session 室 . 请注意,当我使用同一帐户登录Office 365时,我可以看到这些日历 .

如果我要求的事件不是日历,则会发生不同的错误 . 如果我对 https://graph.microsoft.com/beta/users/meetingroom1.4@business.com/events 进行GET调用,则会出现500(内部服务器)错误 .

我已经检查了我在这个问题上可以找到的所有其他线程,而这一个从11月How to access shared calendars from Office REST API?开始说_27707062结束了 . 它使用的是Office REST API而不是Graph,但在后端API调用相同的东西 . 这个问题仍然存在吗?或者,我是否缺少一些进一步的权限?我尝试在 Calendars.ReadWrite.Shared 之上添加了相当多的不同权限,但没有一个修复它 . 有正确的组合吗?

非常感谢您的帮助,如果有任何其他信息对诊断有用,请告诉我 .

1 回答

  • 0

    因此,如果其他人碰巧对此感兴趣,我想出了一种方法来访问房间资源日历而不使用 Calendars.ReadWrite.Shared 权限 . 这允许您仅使用 Calendars.ReadWrite 权限来访问房间资源,方法是将它们移动到您必须适用于任何帐户的应用程序中的电子邮件日历列表中 . 这对我的用例来说已经足够了,但可能不适合你的用例 .

    首先,查找或创建一个帐户,该帐户是您要使用的 Session 室资源日历的委托,并且具有完全访问权限 . 在该帐户上,单击您的 Profiles 图片下方的下拉列表中的“打开另一个邮箱” .

    Open another mailbox location

    在随后的弹出窗口中,输入您要使用的 Session 室资源日历的电子邮件地址 .

    然后,在打开的新页面上(应该是 Session 室资源日历的Office帐户):

    • 导航到日历页面

    • 点击'Share'

    • 与您计划进行身份验证的帐户共享默认日历 .

    然后登录该'authentication'帐户,检查其电子邮件以获取共享日历的通知,然后单击'accept' . 这样做是将日历移动到经过身份验证的帐户的日历列表中,这意味着只需调用 https://graph.microsoft.com/v1.0/me/calendars endpoints 即可访问日历 . 遗憾的是,你必须为你希望能够访问的每个日历重复它 .

相关问题