我在AzureAd上将应用程序配置为多租户,我选择要求Windows Azure Active Directory和Office 365 Exchange Online的所有权限。
我可以让用户授予权限,获取访问权限,刷新它们,OAuth适合我。我总是使用“common”关键字而不是租户ID,因为我的应用是多租户。
现在,我希望(CRUD)使用此令牌访问用户的邮件,通讯录和日历。这是我的问题:我完全迷失在所有可能的API端点中。我应该使用:graph.windows.net,outlook.office365.com,graph.microsoft.com? This page似乎暗示graph.microsoft.com是瑞士军刀,可以满足我的目的,但不知怎的,我找不到一个允许我找到我正在寻找的信息的文档。此外,它似乎正在开发中,可能对我想要的东西来说太不完整了。
如果我对outlook.office365.com提出疑问,我会收到401错误。
如果我将访问令牌放在this token analyzer中,虽然范围字段仅显示我在Azure Azure门户中为Windows Azure Active Directory而不是Office 365 Exchange Online设置的权限,但它看起来很健康。
我有点迷茫,欢迎任何帮助......
答案 0 :(得分:3)
您可以选择:
只是澄清一下 - Azure AD OAuth可以保护/保护多个Web API,包括O365 API,Azure AD Graph,Azure资源管理API,您自己的API和新的O365统一API。在第一个访问令牌请求中,指定您想要/需要调用的第一个资源。它不一定是AAD Graph - 即它不是默认的AFAIK。根据同意的内容,您可以使用(多资源)刷新令牌请求其他访问令牌。您在评论中链接到的Vittorio博客文章可以很好地解释这一点。
有关#2的更多信息,请参阅https://msdn.microsoft.com/en-us/office/office365/howto/office-365-unified-api-overview并在此处的示例列表中搜索“统一”:https://msdn.microsoft.com/en-us/office/office365/howto/starter-projects-and-code-samples
我们正在努力改进统一的API文档。如果您正在进行纯REST调用,那么我建议您使用API explorer(并尝试使用https://graph.microsoft.com/beta/me/events和https://graph.microsoft.com/beta/me/messages来获取日历事件和邮件消息)或{{ 3}}(它可以显示JS代码片段,并允许您轻松地测试自己的代码片段)。正如您在REST示例中所看到的,要在统一API中访问邮件和日历功能,您应该能够将服务根从Outlook交换到统一API,即 - API sandbox - > https://outlook.office365.com/v1.0。在JS样本上 - 我们将在这里添加更多功能和其他样本。
注意:outlook.office365.com中提供的个人联系人尚未在统一API中提供。
希望这有帮助