当前位置: 首页 > 知识库问答 >
问题:

如何使用EWS JAVA API获得访问另一个邮箱日历的权限

红朝
2023-03-14

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

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。

提前谢谢。

共有1个答案

程天佑
2023-03-14

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

 类似资料:
  • 好的,这是我目前的build.gradle: 这就是配置。格拉德尔: 问题是:为什么我可以从config.gradle.访问howManyTables任务,但不能访问定义的变量?我想创建具有预定义值的自定义config.gradle。然后在我的Android应用程序中使用它们作为变量。(他们,根据这些数据建立了我的逻辑。无论如何,我希望这个问题很清楚;)有什么想法吗?

  • 获取访问攻击是网络渗透测试的第二部分。 在本节中,我们将连接到网络,这将使我们能够发起更强大的攻击并获得更准确的信息。 如果网络不使用加密,我们可以连接到它并嗅出未加密的数据。 如果网络是有线的,我们可以使用电缆并连接到它,可能通过更改我们的MAC地址。唯一的问题是攻击目标使用加密,如WEP,WPA,WPA2。 如果我们确实遇到加密数据,我们需要知道解密它的密钥,这在本章将会学习和实践。 如果网络

  • 我试图找出如何限制应用程序可以访问哪个邮箱。 我遵循了这个指南并使用了仅应用程序身份验证:https://learn . Microsoft . com/en-us/exchange/client-developer/exchange-we b-services/how-to-authenticate-an-EWS-application-by-using-oauth 根据留档,我必须设置full

  • 我在robolectric(Version1.1)测试案例中获取主UI线程时遇到了麻烦。我正在测试的应用程序方法中有以下检查:

  • 我能够创建一个进程邮箱,并且能够通过https://ExchangeServer/owa/processmailbox@domain.com访问,然后我将提供我的凭据,并且能够登录。 但我无法通过EWS访问。它说SMTP地址没有与之关联的邮箱。 我可以用相同的代码访问我的收件箱。

  • 我正在尝试导入一个安全证书,以便按照此处的步骤向服务器发送请求。 http://www.grim.se/guide/jre-cert 我在Windows命令提示符下输入以下命令。 然后,系统会提示我输入密码,我将其输入为“changeit”。 然后这就发生了- 由于访问被拒绝,我假设我没有对JRE的写入权限。我怎么能得到这个?非常感谢。