如何访问具有有限权限的共享 Outlook 日历的 BusyStatus?
How do I access the BusyStatus of a shared outlook calendar with limited permissions?
我正在尝试从访问受限的共享日历中读取 AppointmentItem.BusyStatus。我可以看到整个 day/week 的忙碌状态,但无法访问约会的主题或地点等信息。
我的代码如下所示:
首先,我得到了存储共享日历的文件夹。
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);
}
}
此代码在日历上工作得很好,它使我可以完全控制阅读约会可能包含的任何详细信息。它不适用于访问受限的日历。调试我的代码后,我发现这个特定日历的 calendar.Items 列表是空的,它的 count 是 0。我假设这与我没有适当的授权来检索此信息有关,因为如果我得到约会项目,我可以阅读主题和位置。然而,这只是一个假设,老实说,我不太确定发生了什么。我需要一种完全不同的方法还是我只是遗漏了什么?如果有人能帮助我,我将不胜感激。
改用Recipient.FreeBusy
- 它不需要邮箱的访问权限。
我正在尝试从访问受限的共享日历中读取 AppointmentItem.BusyStatus。我可以看到整个 day/week 的忙碌状态,但无法访问约会的主题或地点等信息。
我的代码如下所示:
首先,我得到了存储共享日历的文件夹。
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);
}
}
此代码在日历上工作得很好,它使我可以完全控制阅读约会可能包含的任何详细信息。它不适用于访问受限的日历。调试我的代码后,我发现这个特定日历的 calendar.Items 列表是空的,它的 count 是 0。我假设这与我没有适当的授权来检索此信息有关,因为如果我得到约会项目,我可以阅读主题和位置。然而,这只是一个假设,老实说,我不太确定发生了什么。我需要一种完全不同的方法还是我只是遗漏了什么?如果有人能帮助我,我将不胜感激。
改用Recipient.FreeBusy
- 它不需要邮箱的访问权限。