我想构建一个客户端,我可以在其中显示给定Exchange Calendar
中的事件。
我读到了ActiveSync
和Exchange Web Services
,显然Exchange Web Services
是访问日历的方式,但是,我找不到任何关于如何获取数据的文档(即如何使用Exchange服务器进行身份验证,如何检索数据(通过HTTP POST请求?),等等。
我是在正确的轨道上还是我错过了用于访问Exchange日历的其他API?我希望,如果我不必使用Apple's Event Kit
,那么这将要求用户首先将他的帐户与iOS设备同步。
答案 0 :(得分:0)
EWS是最佳选择。您可以阅读任何用户的日历(假设您具有凭据或模拟权限),并且还可以在日历更改时订阅通知。可以从.NET应用程序,Java和其他语言访问EWS。当然,最简单的方法是使用C#和EWS Managed API,但Windows世界之外还有很多其他选择。您可以启动here,但您可能希望搜索特定的技术。那里有很多信息。
答案 1 :(得分:0)
在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();
}
}
我可以获得所有会议日程。