【问题标题】:Access Exchange Calendar with Exchange Web Services使用 Exchange Web 服务访问 Exchange 日历
【发布时间】:2016-01-29 22:35:51
【问题描述】:

我想构建一个客户端,我可以在其中显示给定 Exchange Calendar 中的事件。

我读到了 ActiveSyncExchange Web Services,显然 Exchange Web Services 是访问日历的方法,但是,我找不到任何关于如何获取数据的文档(即如何通过 Exchange 进行身份验证)服务器,如何检索数据(通过 HTTP POST 请求?)等等)。

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

【问题讨论】:

    标签: ios objective-c calendar exchange-server exchangewebservices


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      在 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();
           }
          }
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-07
        • 1970-01-01
        • 2011-12-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-02
        相关资源
        最近更新 更多