MS Graph API 使用 "authorization_code" 授权访问所有日历
MS Graph API access to ALL calendars using "authorization_code" grant
我们有一个使用授权代码授予的 Microsoft Graph API 的实现。我们需要它能够访问租户的所有日历,因此我们将 Calendars.ReadWrite
添加到范围(Calendars.ReadWrite.all
不存在)。到目前为止,只能使用它访问一个用户的日历(无论使用哪个帐户授予对应用程序的访问权限)。这违反了 what the documentation states,或者至少我是如何解释它来代替明确的 all
许可的,并且由于文档没有像其他人那样说“登录用户”权限。
似乎 Calendars.ReadWrite
甚至不授予对共享日历的访问权限(即使在 OAuth 期间使用租户管理员)。尽管有一个单独的范围,但我希望这会排除该范围,就像 User.ReadWrite
排除 User.Read
一样。另外,我不想要求用户共享他们的日历。它应该可以正常工作。
我已经看到它与“客户端凭据”授权一起使用,但应用程序还需要“授权代码”授权,因为显然订阅功能 doesn't work as expected 与其他流程一起使用。我想避免必须要求 2 个不同的流程,老实说,这真的很愚蠢。这可能吗?
MS Graph API 可以做的应该与我们通过网络 UI 或 Outlook 可以做的一致。
如果日历未与您共享,除非您的帐户有权访问它,否则您应该看不到它,例如,它是您所属的群组的日历。
因此,通过使用“authorization_code”授权,您必须将此日历与您当前登录的帐户共享。并且您需要向 AAD 应用程序添加 Calendars.ReadWrite.Shared
委派权限。
您可以找到委托权限和申请权限的区别。
@Shiva 分享的 docs 列出了有关如何获取共享或委托的 Outlook 日历及其事件的完整步骤。
我们有一个使用授权代码授予的 Microsoft Graph API 的实现。我们需要它能够访问租户的所有日历,因此我们将 Calendars.ReadWrite
添加到范围(Calendars.ReadWrite.all
不存在)。到目前为止,只能使用它访问一个用户的日历(无论使用哪个帐户授予对应用程序的访问权限)。这违反了 what the documentation states,或者至少我是如何解释它来代替明确的 all
许可的,并且由于文档没有像其他人那样说“登录用户”权限。
似乎 Calendars.ReadWrite
甚至不授予对共享日历的访问权限(即使在 OAuth 期间使用租户管理员)。尽管有一个单独的范围,但我希望这会排除该范围,就像 User.ReadWrite
排除 User.Read
一样。另外,我不想要求用户共享他们的日历。它应该可以正常工作。
我已经看到它与“客户端凭据”授权一起使用,但应用程序还需要“授权代码”授权,因为显然订阅功能 doesn't work as expected 与其他流程一起使用。我想避免必须要求 2 个不同的流程,老实说,这真的很愚蠢。这可能吗?
MS Graph API 可以做的应该与我们通过网络 UI 或 Outlook 可以做的一致。
如果日历未与您共享,除非您的帐户有权访问它,否则您应该看不到它,例如,它是您所属的群组的日历。
因此,通过使用“authorization_code”授权,您必须将此日历与您当前登录的帐户共享。并且您需要向 AAD 应用程序添加 Calendars.ReadWrite.Shared
委派权限。
您可以找到委托权限和申请权限的区别。
@Shiva 分享的 docs 列出了有关如何获取共享或委托的 Outlook 日历及其事件的完整步骤。