2017-08-10 194 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

回答