Partager via


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

Dans cet article, vous allez étendre l’application que vous avez créée dans Générer des applications TypeScript 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 graphHelper.ts et ajoutez la fonction suivante.

    export async function getUsersAsync(): Promise<PageCollection> {
      // Ensure client isn't undefined
      if (!_appClient) {
        throw new Error('Graph has not been initialized for app-only auth');
      }
    
      return _appClient
        ?.api('/users')
        .select(['displayName', 'id', 'mail'])
        .top(25)
        .orderby('displayName')
        .get();
    }
    
  2. Remplacez la fonction vide listUsersAsync dans index.ts par ce qui suit.

    async function listUsersAsync() {
      try {
        const userPage = await graphHelper.getUsersAsync();
        const users: User[] = userPage.value;
    
        // Output each user's details
        for (const user of users) {
          console.log(`User: ${user.displayName ?? 'NO NAME'}`);
          console.log(`  ID: ${user.id}`);
          console.log(`  Email: ${user.mail ?? 'NO EMAIL'}`);
        }
    
        // If @odata.nextLink is not undefined, there are more users
        // available on the server
        const moreAvailable = userPage['@odata.nextLink'] != undefined;
        console.log(`\nMore users available? ${moreAvailable}`);
      } catch (err) {
        console.log(`Error getting users: ${err}`);
      }
    }
    
  3. Exécutez l’application, connectez-vous et choisissez l’option 2 pour répertorier les utilisateurs.

    [1] Display access token
    [2] List users
    [3] Make a Graph call
    [0] Exit
    
    Select an option [1...3 / 0]: 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 getUsersAsync fonction .

  • Il obtient une collection d’utilisateurs
  • Il utilise select pour demander des propriétés spécifiques
  • Il utilise top pour limiter le nombre d’utilisateurs retournés
  • Il utilise orderBy pour trier la réponse

Étape suivante