2016-06-21 69 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