我想构建一个客户端,在其中我可以在给定的Exchange Calendar中显示事件。
我读到了ActiveSync和Exchange Web Services,显然Exchange Web Services是访问日历的方法,但是,我找不到任何关于如何获取数据的文档(例如,如何向Exchange服务器进行身份验证,如何检索数据(通过HTTP POST请求?),等等)。
我是否在正确的轨道上,或者我是否缺少用于访问Exchange日历的其他API?如果我不需要使用Apple's Event Kit,我会更喜欢,因为这将要求用户首先与iOS设备同步他的帐户。
发布于 2015-11-27 00:20:55
EWS是一条可行的道路。您可以读取任何用户的日历(假设您具有凭据或模拟权限),还可以在日历更改时订阅通知。可以通过.NET应用程序、Java和其他语言访问EWS。当然,最简单的方法是使用C#和EWS,但在Windows界之外还有很多替代方法。您可以启动here,但您可能希望搜索特定的技术。外面有很多信息。
发布于 2016-01-29 22:35:51
在JAVA EWS api中,我使用了以下代码:
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();
}
}我可以拿到所有的会议日程。
https://stackoverflow.com/questions/33921136
复制相似问题