Office365 API:仅限app的OAuth2 AccessTokens需要

时间:2016-12-16 12:05:16

标签: c# azure outlook office365 office365api

我正在使用以下网址创建对Outlook推送通知的订阅请求:

https://outlook.office365.com/api/v2.0/me/subscriptions

我已使用基于证书的Azure AD身份验证来使用以下代码获取令牌:

AuthenticationContext authContext = new AuthenticationContext("https://login.microsoftonline.com/mytenant/oauth2/v2.0/token");
AuthenticationResult authResult = await authContext.AcquireTokenAsync("https://outlook.office365.com/", certificate);

调用订阅API时,我收到一个Forbidden错误并带有以下响应:

x-ms-diagnostics: 2000008;reason="OAuth2 AccessTokens for app-only require that the target mailbox is explicitly specified with the api call";error_category="invalid_grant"

请你帮我解决我出错的地方或如何调试/解决这个错误。

提前致谢

1 个答案:

答案 0 :(得分:0)

由于您使用的是App-only令牌,因此API需要您在URI中明确指定目标邮箱。 例如:https://outlook.office365.com/api/v2.0/Users(foo@bar.com)/subscriptions

me仅在目标邮箱与经过身份验证的用户相同时才有用。但是,如果仅限app,则没有经过身份验证的用户,您是否必须明确。