EWS Java获取约会与会者会议响应

时间:2014-11-10 13:59:19

标签: java exchangewebservices

我已经看到了一些c#代码来完成这项工作,但不确定Java中的等价物是什么。那说......

我一直在遍历所有可用的会议室,然后收集他们的约会并尝试获取有关他们的统计数据。现在拥有一切,但实际的会议响应,我专门加载与会者,我需要做什么才能得到与会者的回复?目前所有回复都是“未知”。

FindItemsResults<Appointment> aps = service.findAppointments(folderid, new CalendarView(startDate1,endDate1));
for (Item items : aps.getItems())
{
    PropertySet ps = new PropertySet(ItemSchema.Subject);
    ps.add(AppointmentSchema.RequiredAttendees);
    ps.add(AppointmentSchema.OptionalAttendees);
    ps.add(AppointmentSchema.Resources);
    ps.add(AppointmentSchema.MyResponseType);
    items.load(PropertySet.FirstClassProperties);
    Appointment appt = (Appointment)items;

    System.out.println("Required Attendees========"+appt.getRequiredAttendees().getCount());                    
    System.out.println("Resource Count========"+appt.getResources().getCount());
    System.out.println("Optional Attendees========"+appt.getOptionalAttendees().getCount());
    int accepted=0;
    AttendeeCollection RA=appt.getRequiredAttendees();
    for (int i=0; i<appt.getRequiredAttendees().getCount(); i++){
        System.out.println(RA.getPropertyAtIndex(i).getResponseType().equals(MeetingResponseType.Accept));
        System.out.println(RA.getPropertyAtIndex(i).getName());

    } 
}

3 个答案:

答案 0 :(得分:0)

RA.getPropertyAtIndex(ⅰ).getResponseType()。的toString() 应该得到你想要的东西。

我注意到在Outlook中,在回复会议邀请时,您必须&#34;回复没有/有评论&#34;

答案 1 :(得分:0)

您只能通过查询组织者的日历获取与会者回复。所以

  1. 确保您拥有所需的权限
  2. 使用管理器日历的文件夹ID

    FolderId folderId = new FolderId(WellKnownFolderName.Calendar, new Mailbox("organizer@company.com"))
    
  3. 有关更多参考资料,请参阅 Tracking meeting responses by using the EWS Managed API 2.0

答案 2 :(得分:0)

您需要获取扩展属性:PidLidResponseStatus

在XML中,它描述为:

<m:GetItem>
  <m:ItemShape>
    <t:AdditionalProperties>
      <t:ExtendedFieldURI DistinguishedPropertySetId="Appointment" PropertyId="33304" PropertyType="Integer" />

请注意,在文档中它是一个整数,但是我发现它在某些服务器上返回一个字符串。