如何使用Microsoft Ews 2.0获取用户会议日历事件响应消息

时间:2019-10-08 10:50:34

标签: java calendar exchangewebservices appointment

我在接收/拒绝其邮箱中的会议时收到用户发送的日历事件会议响应消息时遇到问题。通常,我为应用程序中的给定用户发送日历通知(创建新的约会对象)。在Java代码中,我可以获取约会对象,也可以是AttendeeCollection,也可以使用attendee.getResponseType()获取响应类型。但这就是全部。

我想在我的应用程序中显示用户在接受/拒绝邀请时给出的响应-他给出的其他文字。实际上,这是一封电子邮件,其类型为MeetingResponse。它不是EmailMesage类型。我可以使用以下代码从int收件箱文件夹中获取所有电子邮件:

Folder.bind(service, WellKnownFolderName.Inbox).findItems(new ItemView(100))

这给了我100封电子邮件的列表,我可以看到它们的类型,但是在执行请求之前,我该如何过滤那些我想要的会议响应的消息。我是否必须以某种方式将与会者或约会联系到此电子邮件,对吗?但是如何,该查询使用什么ID,或者还有另一种获取会议响应正文的方法?

我有点被这个问题困扰。最终目标是提供用户在我的应用程序中给出的消息。

我将不胜感激,加油

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,也许将来有人也会需要它:

final Appointment appointment = Appointment.bind(service, new ItemId(appointmentId));
final SearchFilter searchFilter = new SearchFilter.IsEqualTo(ItemSchema.ConversationId, appointment.getConversationId().toString());
final ItemView view = new ItemView(1);
view.setPropertySet(new PropertySet(BasePropertySet.IdOnly, ItemSchema.Subject, ItemSchema.ConversationId));
final FindItemsResults<Item> findResults = service.findItems(WellKnownFolderName.Inbox, searchFilter, view); 
if (findResults.getTotalCount() == 1) {
      final Item item = findResults.getItems().get(0);
      item.load();
      return item.getBody();
}