【问题标题】:Can I read calendar events from "shared mailbox" users using the Office 365 API?我可以使用 Office 365 API 从“共享邮箱”用户读取日历事件吗?
【发布时间】:2016-03-29 20:36:11
【问题描述】:

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

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

x-ms-diagnostics: 2000005;reason="token中的用户账号是 已禁用。";error_category="invalid_user"

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

【问题讨论】:

  • 发布您的代码可能会有所帮助。我目前正在通过 Powershell 使用 EWS (Microsoft.Exchange.WebServices.dll) 来访问共享邮箱中的邮件。我没有尝试访问日历项目。你能看看你的代码是否适用于邮件项目吗?

标签: office365 office365api office365-apps


【解决方案1】:

是的,虽然与管理其他用户帐户不同,但这是可能的。管理Shared InboxCalendar 的教程如下:

Open and use a shared mailbox/calendar

它包括一个简短的视频说明和分步指南。

如果这是针对小型企业,那么您可以按照本指南进行操作:

shared mailboxes in Office 365 for Small Business

【讨论】:

  • 谢谢马克,我的问题是通过 API 访问日历事件,而不是通过 Outlook 或 Outlook Web 应用程序通过 :)
  • 对不起,我的错误,最后错过了资本API。您可以使用多个 API 来访问日历调用以执行您尝试执行的操作。最新的是 Microsoft Graph graph.microsoft.io/en-us/docs/overview/overview。但是您要寻找的功能有点模糊。在处理邮箱和日历等共享资源时,您可能对 Groups API dev.office.com/blogs/groupsrestapi 更感兴趣
【解决方案2】:

您可以尝试使用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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-21
    • 1970-01-01
    • 2016-10-29
    相关资源
    最近更新 更多