如何使用Microsoft Graph API检查其他用户可用性?

时间:2017-03-21 10:12:14

标签: azure-active-directory microsoft-graph office365api

我正在尝试在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进行授权,是否还有其他方法可以使用不同的端点或API来实现相同的目标?

我会感激任何提示

更新:Outlook Calendar API似乎有效。仍然感谢任何想法为什么Graph API没有?

1 个答案:

答案 0 :(得分:-1)

FindMeetingAPI需要工作或学校帐户。如果您使用个人电子邮件ID登录,则可能无法登录。此外,您需要将权限设置为Calendars.Read Calendars.Read.All Calendars.ReadWrite User.Read"