2017-08-10 195 views
0

我试图访问EWS托管API推送通知(订阅推送通知),通过OAuth如下:401未经授权而订阅与Exchange服务和OAuth

var authenticationTask = await authenticationContext.AcquireTokenAsync("https://outlook.office365.com", new ClientCredential(clientID, clientSecret)); 
string targetSmtp = "[email protected]"; 
ExchangeService exchangeService = new ExchangeService(ExchangeVersion.Exchange2013); 
exchangeService.Url = someURL; 
exchangeService.TraceEnabled = true; 
exchangeService.TraceFlags = TraceFlags.All; 
exchangeService.ImpersonatedUserId = new ImpersonatedUserId(ConnectingIdType.PrincipalName, "[email protected]"); 
exchangeService.HttpHeaders.Add("X-AnchorMailbox", targetSmtp); 
exchangeService.Credentials = new OAuthCredentials(authenticationTask.AccessToken); 
PushSubscription subscription = exchangeService.SubscribeToPushNotifications(
              new[] { someFolder }, 
              new Uri(postBackUrl), 
              15, 
              null, 
              EventType.NewMail, 
              EventType.Created, 
              EventType.Deleted, 
              EventType.Modified, 
              EventType.Moved, 
              EventType.Copied); 

我能够得到令牌我应用程序,但同时认购推送通知用户([email protected])我得到"The request failed. The remote server returned an error: (401) Unauthorized."错误

更新:尝试以下这里所说的完全一样的步骤:Azure AD app-only access tokens for exchange impersonation但仍然得到401

回答