Office 365 API 或 Azure AD Graph API - 获取别人的日历

Office 365 API or Azure AD Graph API - Get Someone Elses Calendar

我正在尝试获取 Office 365 日历,但不是针对 "me",而是针对某个联系人。即在我工作的公司(有全球地址列表)中,我想访问 Dave 的日历,就像在 Outlook 中一样。

我已经阅读了文档 here, Whosebug (e.g. here and here), plus Office 365 samples and Graph API samples(我相信 Graph API 是全局地址列表所必需的),但找不到实现它的方法。

我有 3 个问题:

  1. 这可能吗?
  2. 如果可以,请问如何?
  3. 如果无法使用全局地址列表,是否可以使用通过 Office 365 创建的联系人 - 如果可以,怎么做?

非常感谢任何帮助。

如果我正确理解你的情况,目前是不可能的。如果您以自己的身份登录,则只能访问您的邮箱。您无法访问其他人,即使他们已将访问权限委派给您。这是我们正在寻求改进的东西,但现在你不能这样做。

您可以创建一个使用客户端凭据身份验证流程的应用程序,管理员可以向所有用户授予访问权限,但我认为这不是您想要的方案。

首先,是的,这是可能的,但您需要使用 App-Only 令牌访问 Exchange APIs 以获取此数据。重要的是要记住,API 的访问令牌决定了您访问 API 的权限。假设您不是管理员,如果您获得用户令牌并尝试查询其他人的日历,您将收到“403 - 禁止访问”,因为您只有读取自己日历的权限。

另一方面,您可以请求您的应用程序具有应用程序权限(相对于委派权限),这将使您在没有登录用户上下文的情况下获得高级访问权限来查询 Exchange API .您可以查看有关这些权限的文档 here at Table 4.

请注意,对于任何请求这些级别权限的应用程序,都需要管理员同意才能获得访问权限。来自与上面相同的页面:

Note The tables describing service app permissions do not include a Requires admin consent column, as permissions for service apps always require admin consent. For more information about service apps, see Building service and daemon apps in Office 365.

请查看该引用中的 link,因为它可能真正帮助您开始开发服务应用程序。

希望对您有所帮助!