2016-07-30 29 views
0

Ich möchte alle Kalenderereignisse von Outlook.com mithilfe der Java-API abrufen. Getestet habe ich diesen Code zu verbinden:Kalenderereignisse von Outlook.com mit Java-API abrufen

public void findChildFolders(String username, String password) throws Exception 
    { 
     ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP2); 
     ExchangeCredentials credentials = new WebCredentials(username, password); 

//  URI jira_url = URI.create("outlook.live.com"); 
     service.autodiscoverUrl(username, new RedirectionUrlCallback()); 
     service.setCredentials(credentials); 

     FindFoldersResults findResults = service.findFolders(WellKnownFolderName.Inbox, new FolderView(Integer.MAX_VALUE)); 

     for (Folder folder : findResults.getFolders()) 
     { 
      System.out.println("Count======" + folder.getChildFolderCount()); 
      System.out.println("Name=======" + folder.getDisplayName()); 
     } 
    } 

    static class RedirectionUrlCallback implements IAutodiscoverRedirectionUrl 
    { 
     @Override 
     public boolean autodiscoverRedirectionUrlValidationCallback(
      String redirectionUrl) 
     { 
      return redirectionUrl.toLowerCase().startsWith("https://"); 
     } 
    } 

Aber ich bekomme Fehler-Stack:

microsoft.exchange.webservices.data.autodiscover.exception.AutodiscoverLocalException: The Autodiscover service couldn't be located. 
    at microsoft.exchange.webservices.data.autodiscover.AutodiscoverService.internalGetLegacyUserSettings(AutodiscoverService.java:742) 

Was ist der richtige Weg, um diesen Code zu implementieren?

Antwort

0

Ein vollständiges funktionierendes Beispiel zum Erhalten eines Raumressourcenkalenders ist hier: Office365 API - Admin accessing another users/room's calendar events. Sie können den Code problemlos anpassen, um die Kalenderereignisse von demselben authentifizierten Benutzer oder einem anderen Benutzer/einer anderen E-Mail/Ressource zu erhalten, wenn Ihr authentifizierter Benutzer über Rechte verfügt.