通过Office 365 REST API访问所有用户的邮箱

时间:2015-02-25 12:37:32

标签: api rest office365

我正在尝试使用Office 365 Rest API。

  • 我已在Azure AD中注册了应用程序。
  • 具有以下权限集:Exchange:访问所有用户的邮箱,完全控制用户的日历,完全控制用户的联系人,完全控制用户的邮箱
  • 我已使用具有全局管理员权限的admin grant生成了访问令牌。
  • 发送了以下请求“https://outlook.office365.com/api/users/me/messages”,结果正确,为我提供了当前管理员邮箱中的所有邮件
  • 发送以下请求“https://outlook.office365.com/api/users/ {其他用户的电子邮件} / messages”。这导致了以下错误

    错误':{u'message':u'Access被拒绝。检查凭据并再试一次。','u'code':u'ErrorAccessDenied'}}“

如果上述步骤有误,请告诉我?

如果他们错了,有没有办法从其他用户的邮箱中获取电子邮件,因为我有管理员凭据?

感谢。

1 个答案:

答案 0 :(得分:1)

您需要使用此blog中所述的服务帐户,针对您的方案,应用程序将能够拨打电话与该租户中的任何邮箱进行交互。您请求使用其他用户邮箱失败的原因是,仅当应用和用户有权访问其他用户的邮箱时才会批准该请求。在您的情况下,管理员具有对其他用户的邮箱的权限。但是,假设您使用OAuth代码流来获取OAuth令牌,该应用只具有经过身份验证的用户邮箱的权限。

此外,REST API不需要“访问所有用户的邮箱”权限,因为它们用于使用Exchange Web服务(EWS)SOAP API。