Outlook 通过Microsoft Graph API访问共享/房间日历时出错
我正在制作一个需要使用非管理员帐户访问Office 365实例中的共享/房间资源日历的应用程序。我已使用V2端点和身份验证代码授权注册了一个应用程序(在Microsoft应用程序注册门户中)。这允许我成功登录,并为我提供了一个带有Outlook 通过Microsoft Graph API访问共享/房间日历时出错,outlook,office365,microsoft-graph-api,office365api,outlook-restapi,Outlook,Office365,Microsoft Graph Api,Office365api,Outlook Restapi,我正在制作一个需要使用非管理员帐户访问Office 365实例中的共享/房间资源日历的应用程序。我已使用V2端点和身份验证代码授权注册了一个应用程序(在Microsoft应用程序注册门户中)。这允许我成功登录,并为我提供了一个带有Calendars.ReadWrite.Shared作用域的功能令牌。使用此令牌,我可以检索我自己的日历,以及与我显式共享的日历(并因此添加到我的日历列表中)。所有这些都可以通过正常的日历实现。ReadWrite范围 但是,我在请求访问任何其他共享日历(如房间日历)时会
Calendars.ReadWrite.Shared
作用域的功能令牌。使用此令牌,我可以检索我自己的日历,以及与我显式共享的日历(并因此添加到我的日历列表中)。所有这些都可以通过正常的日历实现。ReadWrite
范围
但是,我在请求访问任何其他共享日历(如房间日历)时会出错。这里有一个例子。如果我给https://graph.microsoft.com/beta/users/my-own-email@business.com/calendars
它成功返回我的日历列表。如果我给https://graph.microsoft.com/beta/users/meetingroom1.4@business.com/calendars
我收到一个404(未找到)错误。同样的错误也会发生在任何其他用户身上,而不仅仅是会议室。请注意,当我使用相同的帐户登录Office 365 online时,我可以看到这些日历
如果我请求的是事件而不是日历,则会发生另一个错误。如果我给https://graph.microsoft.com/beta/users/meetingroom1.4@business.com/events
,我得到一个500(内部服务器)错误
我已经检查了我能找到的关于这个问题的所有其他线程,这个来自11月份的线程说在微软端有某种阻塞问题。它使用的是officerestapi,而不是Graph,但是在后端,API调用相同的东西。这个问题还存在吗?或者,我是否缺少一些进一步的权限?我尝试在日历.ReadWrite.Shared
上添加了很多不同的权限,但没有一个能解决这个问题。有正确的组合吗
非常感谢您的帮助,如果其他信息对诊断有用,请告诉我 因此,如果其他人对此感兴趣,我想出了一种方法,可以访问房间资源日历,而不必使用
calendars.ReadWrite.Shared
权限。这允许您仅使用日历。ReadWrite
权限访问文件室资源,方法是将它们移动到您正在验证的电子邮件的日历列表中。但是,它只适用于与您共享日历的特定帐户,因此在必须适用于任何帐户的应用程序中不可用。这对于我的用例来说已经足够好了,但是对于你的用例来说可能不行
首先,查找或创建一个帐户,该帐户是您要使用的房间资源日历的代理,并且对该日历具有完全访问权限。在该帐户上,单击配置文件映像下下拉列表中的“打开另一个邮箱”
在下面的弹出窗口中,输入要使用的房间资源日历的电子邮件地址
然后,在打开的新页面上(应为房间资源日历的Office帐户):
- 导航到日历页面
- 单击“共享”
- 与您计划进行身份验证的帐户共享默认日历
https://graph.microsoft.com/v1.0/me/calendars
endpoint。遗憾的是,你必须在你想要访问的每个日历上重复它