java - Exchange 日历、创建约会和唯一 ID

标签 java exchange-server exchangewebservices ewsjavaapi

我正在使用 ews-java-api 并遇到很多问题

我创建约会并监听其他地方创建的约会。

我的问题是我创建约会

new Appointment(exchangeService).save(notificationMode)

我还将约会详细信息(包括 uniqueId,我们称之为 x)保存到我的数据库中

我看到约会显示在交换中没有问题,然后我看到一条通知,表明它已被自动接受(我可以关闭房间的自动接受,但仍然遇到下面相同的问题。

然后,我看到我的 Exchange 订阅者启动,因为它收到来自 Exchange 的通知事件,表明已创建新约会。我似乎每次都会收到4个事件,一个创建事件,两个修改事件和移动事件。

问题是每个事件都有一个 uniqueId y,而不是我所期望的 x。

这意味着我无法检查这是否是我已经创建的约会。

我从未像我预期的那样收到具有原始 uniqueId x 的事件。我知道唯一的 id 可以更改,这很糟糕,但似乎没有任何其他字段我可以使用。

有什么想法可以解决/解决这个问题吗?

最佳答案

当项目所在的 Activity 目录发生变化时,项目的给定 ID 也会发生变化。听起来您的自动接受正在移动该项目。我还没有测试过这种情况。

如果您执行简单的 .save() 操作,您将在下次推/拉时从交换中获得创建和修改事件。似乎没有办法阻止这种情况。它们的 ID 应该与您从保存中获得的 ID 相同。您只需要检查您是否已经拥有用于创建的项目。对于修改,我不能代表 Microsoft 解释为什么我们会进行修改,但它应该与创建完全相同。

然后,当项目更改目录时,您将收到修改和移动事件。这 2 件元素的 ID 与您在原始保存期间收到的 ID 不同。 ItemEvent 有一个 oldItemId 我相信您可以使用。也可以从这些 id 中解析出 GUID,这些 id 不会改变,但我认为没有必要这样做。最好的方法可能是使用 OldItemId 并处理移动事件。

关于java - Exchange 日历、创建约会和唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37010718/

相关文章:

java - 简单除法+余数法错误

ssl - 无法使用 TLS 将邮件发送到本地 SMTP 服务器

c# - 使用 Exchange Web 服务创建具有默认签名的新邮件

java - 内容类型 text/xml 错误

java - 无法通过nodeJs代码中制作的Java代码提取zip文件

java - 使用递归时最小数组值不正确

java - 未登录的注销日期和时间

java - 使用 Java 从 Microsoft 邮件 Exchange 服务器读取带有附件的邮件

powershell - 如何在 PowerShell 中删除重音符号?

c# - 交换网络服务 : BindToItems method returning error