获取其他用户的Outlook可用性信息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取其他用户的Outlook可用性信息相关的知识,希望对你有一定的参考价值。
我正在编写一个应用程序,创建人们Outlook日历的概述,即它将显示未来[n]周内每周计划外的时间。
基础工作正在发挥作用,但有一件事我遇到了麻烦。某些用户以某种方式共享其Outlook日历,以便其他用户只能查看可用性信息(约会的时间和描述),但不能查看任何详细信息。
我通过手动打开Outlook并打开共享日历来验证这一点;将鼠标悬停在约会上会显示一个包含开始和结束时间,描述和位置的弹出窗口,但是双击它会出现错误:“您无权显示日历,是否要让[人]分享? ”。
我的代码中的相关行是:
var outlook = new Application();
var mapiNamespace = outlook.GetNamespace("MAPI");
var recipient = mapiNamespace.CreateRecipient("Scott");
recipient.Resolve();
var calendarFolder = mapiNamespace.GetSharedDefaultFolder(recipient, OlDefaultFolders.olFolderCalendar);
var calendarItems = calendarFolder.Items;
我现在尝试用calendarItems做的所有事情都会引发异常。例如,获取Count
将引发TargetInvocationException(客户端进程失败,但我不太确定确切的英文翻译)。调用Sort("[Start]")
将引发一条带有消息Unknown属性的COMException:Start。两者都适用于完全共享的日历。
现在,对于概述,我需要的只是开始和结束时间,所以我真的不想让每个人都改变他们的共享设置,特别是在不需要的时候。
我的问题是:
- 最重要的是:有没有其他方法可以获得我忽略的可用性信息?
- 并且相关:Interop现在仍然是最好的方式,还是有其他选择?也许Office365网络服务?
您可以使用GetSharedDefaultFolder
方法,而不是使用Recipient.FreeBusy
并访问该文件夹中的项目。
以上是关于获取其他用户的Outlook可用性信息的主要内容,如果未能解决你的问题,请参考以下文章
基于Outlook Web的添加 - 如何在Outlook中在线获取时区设置?
从 2 个不同片段的 sqlite 中的 2 个表中获取信息
电脑屏幕经常弹出提示“与microsoft exchange outlookd的连接吧可用。outlook必须联机或连接才可完成操作