0

我想构建一个客户端,可以在给定的Exchange Calendar中显示事件。使用Exchange Web服务访问Exchange日历

我读到ActiveSyncExchange Web Services,显然Exchange Web Services是访问日历的方式,但是,我无法找到如何去获取数据(任何文件,即如何与Exchange服务器,如何检索验证数据(通过HTTP POST请求?)等等)。

我在正确的轨道上还是错过了用于访问Exchange日历的其他API?我宁愿,如果我不需要使用Apple's Event Kit,因为这需要用户先将他的帐户与iOS设备同步。

回答

0

EWS是要走的路。您可以阅读任何用户的日历(假定您拥有凭据或模拟权限),并且还可以在日历更改时订阅通知。 EWS可以从.NET应用程序,Java和其他语言访问。当然,最简单的方法是使用C#和EWS托管API,但Windows世界以外有很多替代方案。您可以开始here,但您可能需要搜索特定的技术。那里有很多信息。

0

在JAVA API EWS,我用下面的代码:

public static void getAllMeetings() throws Exception { 

    try { 

     SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");  
     Date startDate = formatter.parse("2016-01-01 00:00:00"); 

     SearchFilter filter = new SearchFilter.IsGreaterThanOrEqualTo(ItemSchema.LastModifiedTime,startDate); 

     FindItemsResults<Item> findResults = service.findItems(WellKnownFolderName.Calendar, filter, new ItemView(1000)); 
     System.out.println("|------------------> meetings count = " + findResults.getTotalCount()); 

     for (Item item : findResults.getItems()) 
     { 
      Appointment appt = (Appointment)item; 
      //appt.setStartTimeZone(); 
      System.out.println("TimeZone====="+appt.getTimeZone()); 
      System.out.println("SUBJECT====="+appt.getSubject()); 
      System.out.println("Location========"+appt.getLocation()); 
      System.out.println("Start Time========"+appt.getStart()); 
      System.out.println("End Time========"+appt.getEnd()); 
      System.out.println("Email Address========"+ appt.getOrganizer().getAddress()); 
      System.out.println("Last Modified Time========"+appt.getLastModifiedTime()); 
      System.out.println("Last Modified Time========"+appt.getLastModifiedName()); 
      System.out.println("*************************************************\n"); 
     } 
    } catch (Exception exp) { 
     exp.printStackTrace(); 
    } 
    } 

我可以得到所有会议日程。

相关问题