Partager via


Répertorier les utilisateurs dans les applications Java à l’aide de Microsoft Graph

Dans cet article, vous allez étendre l’application que vous avez créée dans Générer des applications Java avec Microsoft Graph et l’authentification d’application uniquement avec les API utilisateur Microsoft Graph. Vous utilisez Microsoft Graph pour répertorier les utilisateurs dans votre organization.

  1. Ouvrez Graph.java et ajoutez la fonction suivante à la Graph classe .

    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. Remplacez la fonction vide listUsers dans App.java par ce qui suit.

    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. Exécutez l’application, connectez-vous et choisissez l’option 4 pour répertorier les utilisateurs.

    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
    

Explication du code

Considérez le code dans la getUsers fonction .

Accès à une collection

Cette méthode retourne une collection d’utilisateurs. La plupart des API de Microsoft Graph qui retournent une collection ne retournent pas tous les résultats disponibles dans une seule réponse. Au lieu de cela, ils utilisent la pagination pour retourner une partie des résultats tout en fournissant une méthode permettant aux clients de demander la page suivante.

Tailles de page par défaut

Les API qui utilisent la pagination implémentent une taille de page par défaut. Pour les utilisateurs, la valeur par défaut est 10. Les clients peuvent demander plus (ou moins) à l’aide du paramètre de requête $top . Dans getUsers, l’ajout $top s’effectue avec la top propriété dans la configuration de la requête.

Remarque

La valeur définie dans top est une limite supérieure, et non un nombre explicite. L’API retourne un nombre d’utilisateurs jusqu’à la valeur spécifiée.

Obtention des pages suivantes

Si d’autres résultats sont disponibles sur le serveur, les réponses de regroupement incluent une @odata.nextLink propriété avec une URL d’API pour accéder à la page suivante. La bibliothèque cliente Java fournit la méthode sur les getOdataNextLink objets de réponse de collection. Si cette méthode retourne une valeur non null, d’autres résultats sont disponibles.

Tri des collections

La fonction utilise la orderBy propriété sur la configuration de la demande pour demander des résultats triés par les noms complets des utilisateurs. Cette propriété ajoute le paramètre de requête $orderby à l’appel d’API.

Étape suivante