Freigeben über


Auflisten von Benutzern in Java-Apps mit Microsoft Graph

In diesem Artikel erweitern Sie die Anwendung, die Sie unter Erstellen von Java-Apps mit Microsoft Graph und reine App-Authentifizierung mit Microsoft Graph-Benutzer-APIs erstellt haben. Sie verwenden Microsoft Graph, um Benutzer in Ihrer organization aufzulisten.

  1. Öffnen Sie Graph.java , und fügen Sie der -Klasse die Graph folgende Funktion hinzu.

    public static UserCollectionResponse getUsers() throws Exception {
        // Ensure client isn't null
        if (_appClient == null) {
            throw new Exception("Graph has not been initialized for app-only auth");
        }
    
        return _appClient.users().get(requestConfig -> {
            requestConfig.queryParameters.select = new String[] { "displayName", "id", "mail" };
            requestConfig.queryParameters.top = 25;
            requestConfig.queryParameters.orderby = new String[] { "displayName" };
        });
    }
    
  2. Ersetzen Sie die leere listUsers Funktion in App.java durch Folgendes.

    private static void listUsers() {
        try {
            final UserCollectionResponse users = Graph.getUsers();
    
            // Output each user's details
            for (User user: users.getValue()) {
                System.out.println("User: " + user.getDisplayName());
                System.out.println("  ID: " + user.getId());
                System.out.println("  Email: " + user.getMail());
            }
    
            final Boolean moreUsersAvailable = users.getOdataNextLink() != null;
            System.out.println("\nMore users available? " + moreUsersAvailable);
        } catch (Exception e) {
            System.out.println("Error getting users");
            System.out.println(e.getMessage());
        }
    }
    
  3. Führen Sie die App aus, melden Sie sich an, und wählen Sie Option 4 aus, um Benutzer aufzulisten.

    Please choose one of the following options:
    0. Exit
    1. Display access token
    2. List users
    3. Make a Graph call
    2
    User: Adele Vance
      ID: 05fb57bf-2653-4396-846d-2f210a91d9cf
      Email: AdeleV@contoso.com
    User: Alex Wilber
      ID: a36fe267-a437-4d24-b39e-7344774d606c
      Email: AlexW@contoso.com
    User: Allan Deyoung
      ID: 54cebbaa-2c56-47ec-b878-c8ff309746b0
      Email: AllanD@contoso.com
    User: Bianca Pisani
      ID: 9a7dcbd0-72f0-48a9-a9fa-03cd46641d49
      Email: NO EMAIL
    User: Brian Johnson (TAILSPIN)
      ID: a8989e40-be57-4c2e-bf0b-7cdc471e9cc4
      Email: BrianJ@contoso.com
    
    ...
    
    More users available? True
    

Code erläutert

Betrachten Sie den Code in der getUsers Funktion.

Zugreifen auf eine Sammlung

Diese Methode gibt eine Auflistung von Benutzern zurück. Die meisten APIs in Microsoft Graph, die eine Sammlung zurückgeben, geben nicht alle verfügbaren Ergebnisse in einer einzigen Antwort zurück. Stattdessen verwenden sie Paging , um einen Teil der Ergebnisse zurückzugeben, während eine Methode für Clients bereitgestellt wird, um die nächste Seite anzufordern.

Standardseitengrößen

APIs, die Paging verwenden, implementieren eine Standardseitengröße. Für Benutzer ist der Standardwert 10. Clients können mithilfe des abfrageparameters $top mehr (oder weniger) anfordern. In getUserserfolgt das Hinzufügen $top mit der top -Eigenschaft in der Anforderungskonfiguration.

Hinweis

Der in top festgelegte Wert ist eine obere Grenze, keine explizite Zahl. Die API gibt eine Anzahl von Benutzern bis zum angegebenen Wert zurück.

Abrufen nachfolgender Seiten

Wenn auf dem Server weitere Ergebnisse verfügbar sind, enthalten Sammlungsantworten eine @odata.nextLink Eigenschaft mit einer API-URL für den Zugriff auf die nächste Seite. Die Java-Clientbibliothek stellt die getOdataNextLink -Methode für Sammlungsantwortobjekte bereit. Wenn diese Methode ungleich NULL zurückgibt, stehen weitere Ergebnisse zur Verfügung.

Sortieren von Sammlungen

Die Funktion verwendet die orderBy -Eigenschaft für die Anforderungskonfiguration, um Ergebnisse anzufordern, die nach den Anzeigenamen der Benutzer sortiert sind. Diese Eigenschaft fügt dem API-Aufruf den Abfrageparameter $orderby hinzu.

Nächster Schritt