【问题标题】:How to get rights to access another mailbox calendar using EWS JAVA API如何使用 EWS JAVA API 获取访问另一个邮箱日历的权限
【发布时间】:2015-02-23 09:38:51
【问题描述】:

我可以使用下面的代码在我的组织中获得可用的会议室,我需要预约特定房间,所以我使用了下面的代码。`

public static void main(String[] args) throws Exception {
    // TODO Auto-generated method stub
    static ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2);
    ExchangeCredentials credentials = new WebCredentials("xxx@yy.com", "zzzz");
    service.setCredentials(credentials);
    try {
        System.out.println("Check");
        service.autodiscoverUrl("xxx@yy.com",new RedirectionUrlCallback());



    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


    NameResolutionCollection nameResolutions = service.resolveName("MeetingRoom1",ResolveNameSearchLocation.DirectoryOnly, true);
    System.out.println("nameResolutions==="+nameResolutions.getCount());

    for(NameResolution nameResolution : nameResolutions)
    {
        System.out.println("NAME==="+nameResolution.getContact().getDisplayName());


    }
    Date startDate = new Date();
    Calendar cal = Calendar.getInstance();
    cal.setTime(startDate);
    cal.add(Calendar.DATE, 30); // add 10 days

    Date endDate = cal.getTime();
       Mailbox meetingMailbox = new Mailbox("meetingroom-1@yy.com");
       FolderId CalendarId = new FolderId(WellKnownFolderName.Calendar, meetingMailbox);
       CalendarView cView = new CalendarView(startDate, endDate);
       FindItemsResults<Appointment> appointments = service.findAppointments(CalendarId, cView);
       for (Appointment a : appointments)
       {
           System.out.println("Subject: " + a.getSubject().toString() + " ");
           System.out.println("Start: " + a.getStart().toString() + " ");
           System.out.println("End: " + a.getEnd().toString());
           System.out.println();
       }
}`

如果我执行此代码,我可以获取我的组织中名称为 MeetingRoom1 的所有可用会议室的列表,然后我尝试访问特定的 meetingroom-1@yy.com 以获取该会议室的约会,但抛出一些异常,如下所示。

Exception in thread "main" microsoft.exchange.webservices.data.ServiceResponseException: The specified folder could not be found in the store.
at microsoft.exchange.webservices.data.ServiceResponse.internalThrowIfNecessary(ServiceResponse.java:262)
at microsoft.exchange.webservices.data.ServiceResponse.throwIfNecessary(ServiceResponse.java:251)
at microsoft.exchange.webservices.data.MultiResponseServiceRequest.execute(MultiResponseServiceRequest.java:146)
at microsoft.exchange.webservices.data.ExchangeService.findItems(ExchangeService.java:807)
at microsoft.exchange.webservices.data.ExchangeService.findAppointments(ExchangeService.java:1089)
at com.hcl.GetRoomClass.main(GetRoomClass.java:58)

我想这可能是因为我没有访问会议室日历的访问权限。如何进一步进行预约。请帮助我。我在 EWS-JAVA API 中需要它。

提前致谢。

【问题讨论】:

    标签: java calendar exchangewebservices ewsjavaapi


    【解决方案1】:

    运行您的代码的帐户需要委派访问会议室日历的权限才能使该代码正常工作。这是您的管理员需要在服务器上为您配置的内容。

    【讨论】:

    • 除了获得管理员权限还有其他方法吗?因为,它是公司办公室,我将无法获得管理员权限。你能建议我其他方法吗
    • 您不需要管理员权限。您的帐户需要委托访问日历。如果您只需要查找房间何时空闲而不需要实际阅读约会本身,则另一种选择是检查他们的空闲/忙碌信息:msdn.microsoft.com/EN-US/library/office/…。这通常不需要任何特殊权限。
    猜你喜欢
    • 2014-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2012-11-23
    • 2018-02-02
    • 1970-01-01
    相关资源
    最近更新 更多