我正在尝试在O365日历中实现特定用户(实际上是一个房间)的检查可用性 . 我正在使用微软推荐的Graph API .
我的第一种方法是在https://graph.microsoft.com/v1.0/me/findMeetingTimes上使用POST,并根据Graph API Explorer中给出的模板准备消息体 . 在API资源管理器上,一切似乎都运行良好,但当我尝试使用我的应用程序令牌运行完全相同的请求时,我收到403:
{
"error": {
"code": "ErrorAccessDenied",
"message": "Access is denied. Check credentials and try again.",
"innerError": {
"request-id": "b130177d-e138-4cc7-8e72-5d3529a9dc24",
"date": "2017-03-21T08:47:10"
}
}
}
我检查了应用程序在AAD中的委派权限,它们似乎没问题 . 对于Microsoft Graph,这些被授予:
-
Calendars.ReadWrite.Shared
-
Calendars.Read.Shared
-
Calendars.ReadWrite
-
Calendars.Read
当我尝试简单地列出用户的事件时,我得到完全相同的响应(403):https://graph.microsoft.com/v1.0/users/ / events在Graph API Explorer 500中返回 .
我发现了以下错误描述:https://github.com/microsoftgraph/microsoft-graph-docs/issues/559(可能是this one too)它与上述问题有关吗?
我有什么可能做错的任何线索?
假设我仍然想使用oAuth进行授权,是否有其他方法可以使用不同的 endpoints 或API实现相同的目的?
我会感激任何提示
更新:Outlook Calendar API似乎工作 . 仍然感谢任何想法为什么Graph API没有?
1 回答
FindMeetingAPI
需要工作或学校帐户 . 如果您使用个人电子邮件ID登录,则可能无法登录 . 此外,您需要将权限设置为Calendars.Read Calendars.Read.All Calendars.ReadWrite User.Read"