我可以使用Office 365 API从“共享邮箱”用户中读取日历事件吗?

时间:2016-03-29 20:36:11

标签: office365 office365api office365-apps

我已经设置了一些代码,可以从完整的Office 365用户帐户中成功读取日历事件

当我尝试使用相同的代码从共享邮箱中读取日历事件时(使用该共享邮箱的电子邮件地址和密码进行身份验证后),我收到以下错误...

  

x-ms-diagnostics:2000005; reason =“令牌中的用户帐户是   禁用。 “; error_category =” invalid_user“

是否可以使用Office 365 API从“共享邮箱”帐户读取日历事件?或者我只能从完整的用户帐户中读取日历事件吗?

2 个答案:

答案 0 :(得分:0)

是的,尽管与管理其他用户帐户不同,但它是可能的。管理Shared InboxCalendar的教程可以在下面找到:

  

Open and use a shared mailbox/calendar

它包括简短的视频说明,然后是分步指南。

如果这是针对小型企业的,那么您可以改为使用本指南:

  

shared mailboxes in Office 365 for Small Business

答案 1 :(得分:0)

您可以尝试使用App-Only Permissions (Client Credentials Grant Flow),这些应用程序在Office 365组织中可以访问的数据方面非常强大。然后,您可以使用O365 API来访问共享邮箱资源。例如:尝试使用GET https://outlook.office.com/api/ {version} / me / calendars获取实际的日历文件夹,然后使用您要查询的ID来获取特定的日历信息。

另一种选择是使用EWS Managed API来访问共享邮箱信息,您可以指定要访问的邮箱。如果您的共享邮箱名为Shared@domain.com,则下面的代码供您参考:

    FolderId SharedMailbox = new FolderId(WellKnownFolderName.Inbox,"Shared@domain.com")
    ItemView itemView = new ItemView(1000);
    service.FindItems(SharedMailbox,itemView);