我们必须编写一个同步解决方案,该解决方案必须在O365中为最多4000个用户创建和更新日历事件。不可能以每个用户身份进行身份验证,但我发现的所有文档和示例都是基于直接身份验证作为当前用户。
从另一个我知道伪装的Calendar REST API中,我可以创建一个app token作为管理员,然后将URI伪装成另一个用户来创建事件。
但似乎Outlook / O365没有此功能。我必须选择哪种方式来解决问题?
答案 0 :(得分:1)
您实际上可以获得一个应用程序级令牌,它可以让您访问所有内容。
它涉及向应用程序添加应用程序级权限,然后使用管理员帐户进行一次性oAuth登录,该帐户将为应用程序提供这些权限。
然后,您可以使用oAuth客户端凭据身份验证过程来检索令牌而无需进一步的用户交互(仅使用应用程序ID和密码)。
所有细节都在这里:https://developer.microsoft.com/en-us/graph/docs/concepts/auth_v2_service
当然,/me
之类的内容将不再有效,您必须访问特定用户。
注意:对于Outlook REST API,Office 365 REST API,Microsoft Graph之间的差异存在相当多的混淆,但后者似乎是最新的。
注册应用程序还有两种不同的方法,如果要使用该过程,请确保使用上述文档中描述的方法。如果您使用Azure应用程序注册,则该过程略有不同(在上面链接文档的末尾描述),但最终结果应该相同。