2016-06-21 51 views
3

因此,我獲得了新的o365 v2 api,並且迄今爲止工作得非常好。然而,我無法訪問任何共享收件箱。通過o365 v2 api訪問共享郵箱

更糟糕的是,似乎沒有要返回的錯誤信息:

@odata.context = https://outlook.office.com/api/v2.0/$metadata#Me/Messages(Subject,ReceivedDateTime,SentDateTime,Sender,From,ToRecipients,CcRecipients,BccRecipients,ReplyTo,ConversationId,IsRead,InternetMessageId 

[value] = 

有沒有人試過嗎?

爲了澄清,這不是交流,而是outlook.com

回答

0

看來你是使用委託令牌從爲共用箱的郵件的特定用戶請求的消息。

Office 365 REST API僅支持應用程序級令牌以從組織獲取消息。代表令牌只能獲取代表用戶的消息。

您也可以考慮使用EWS檢索共享框的消息作爲解決方法。

這是給你參考的例子:

 string userName = ""; 
     string password = ""; 

     ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1); 
     service.Credentials = new NetworkCredential(userName, password); 

     service.TraceEnabled = true; 
     service.TraceFlags = TraceFlags.All; 

     service.AutodiscoverUrl(userName, RedirectionUrlValidationCallback); 


     FolderId SharedMailbox = new FolderId(WellKnownFolderName.Inbox, "[email protected]"); 
     ItemView itemView = new ItemView(10); 
     var results = service.FindItems(SharedMailbox, itemView); 
     foreach (var item in results) 
     { 
      Console.WriteLine(item.Subject); 
     } 

如果你想在Office 365的REST API來支持此功能,您還可以從here提交反饋。

+0

謝謝。我正確的要求一個應用程序級別令牌,我需要將'prompt = admin_consent'屬性添加到初始請求中嗎? 如此處所示:https://blogs.msdn.microsoft.com/exchangedev/2014/03/25/using-oauth2-to-access-calendar-contact-and-mail-api-in-office-365- exchange-online/ – StormBeast

+0

否。應用級令牌使用「客戶機憑證流」,它使用「** clientId **」和「**客戶機密**」進行身份驗證,而不是使用「授權代碼授權流」要求用戶登錄。請參閱[https://msdn.microsoft.com/en-sg/library/azure/dn645545.aspx](https://msdn.microsoft.com/en-sg/library/azure/dn645545.aspx)兩個基本的認證流程。 –

+0

感謝你,看起來像這可能是解決方案。如果是這樣,我會回答並相應地解決問題。 – StormBeast

相關問題