通过o365 v2 api访问共享邮箱

时间:2016-06-21 17:57:11

标签: php outlook ms-office office365

所以我可以访问新的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

1 个答案:

答案 0 :(得分: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, "sharedmailbox@consoto.onmicrosoft.com");
        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的反馈。