我正在尝试在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,授予这些权限:
当我尝试简单地列出用户的事件时,我得到完全相同的响应(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进行授权,是否还有其他方法可以使用不同的端点或API来实现相同的目标?
我会感激任何提示
更新:Outlook Calendar API似乎有效。仍然感谢任何想法为什么Graph API没有?
答案 0 :(得分:-1)
FindMeetingAPI
需要工作或学校帐户。如果您使用个人电子邮件ID登录,则可能无法登录。此外,您需要将权限设置为Calendars.Read Calendars.Read.All Calendars.ReadWrite User.Read"