代码之家  ›  专栏  ›  技术社区  ›  Turtle

如何访问权限有限的共享Outlook日历的总线状态?

  •  0
  • Turtle  · 技术社区  · 7 年前

    我正试图从访问受限的共享日历中读取appointmentitem.busystestatus。我可以看到一整天/一周的BusyStatus,但无法访问诸如约会主题或地点等信息。

    我的代码如下:

    首先,我得到存储共享日历的文件夹。

    oApp = new Outlook.Application();
    mapiNamespace = oApp.GetNamespace("MAPI");
    Outlook.Recipient oRep = mapiNamespace.CreateRecipient(oApp.Session.CurrentUser.Name);
    calendarsFolder = mapiNamespace.GetSharedDefaultFolder(oRep, Outlook.OlDefaultFolders.olFolderCalendar).Folders;  
    

    在下一步中,我将遍历所有日历及其约会项目。

    foreach(Outlook.Folder calendar in calendarsFolder){
       Console.WriteLine(calendar.Name);
       foreach(Outlook.AppointmentItem item in calendar.Items){
          Console.WriteLine(item.Start.ToString("dd.MM.yyyy"));
          Console.WriteLine(item.BusyStatus);
       }
    }
    

    这段代码在日历上运行得很好,它允许我完全控制阅读约会的任何细节。但是,它在访问受限的日历上不起作用。调试完代码后,我发现 日历项目 此特定日历的列表为空,其 伯爵0岁 . 我假设这与我没有检索此信息的适当授权有关,因为如果我得到约会项目,我可以阅读主题和位置。不过,这只是一个假设,老实说,我不太确定到底发生了什么。我是需要一个完全不同的方法,还是只是错过了什么?如果有人能帮我,我会非常感激的。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Dmitry Streblechenko    7 年前

    使用 Recipient.FreeBusy 相反,它不需要访问邮箱的权限。