Compartir a través de


Enumeración de usuarios en aplicaciones PHP mediante Microsoft Graph

En este artículo, ampliará la aplicación que creó en Compilación de aplicaciones PHP con Microsoft Graph y autenticación de solo aplicación con las API de usuario de Microsoft Graph. Use Microsoft Graph para enumerar los usuarios de su organización.

  1. Agregue el código siguiente a la clase GraphHelper.

    public static function getUsers(): Models\UserCollectionResponse {
        $configuration = new UsersRequestBuilderGetRequestConfiguration();
        $configuration->queryParameters = new UsersRequestBuilderGetQueryParameters();
        // Only request specific properties
        $configuration->queryParameters->select = ['displayName','id','mail'];
        // Sort by display name
        $configuration->queryParameters->orderby = ['displayName'];
        // Get at most 25 results
        $configuration->queryParameters->top = 25;
    
        return GraphHelper::$appClient->users()->get($configuration)->wait();
    }
    
  2. Reemplace la función vacía listUsers en main.php por lo siguiente.

    function listUsers(): void {
        try {
            $users = GraphHelper::getUsers();
    
            // Output each user's details
            foreach ($users->getValue() as $user) {
                print('User: '.$user->getDisplayName().PHP_EOL);
                print('  ID: '.$user->getId().PHP_EOL);
                $email = $user->getMail();
                $email = isset($email) ? $email : 'NO EMAIL';
                print('  Email: '.$email.PHP_EOL);
            }
    
            $nextLink = $users->getOdataNextLink();
            $moreAvailable = isset($nextLink) && $nextLink != '' ? 'True' : 'False';
            print(PHP_EOL.'More users available? '.$moreAvailable.PHP_EOL.PHP_EOL);
        } catch (Exception $e) {
            print(PHP_EOL.'Error getting users: '.$e->getMessage().PHP_EOL.PHP_EOL);
        }
    }
    
  3. Ejecute la aplicación, inicie sesión y elija la opción 2 para enumerar a los usuarios.

    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
    

Código explicado

Tenga en cuenta el código de la getUsers función .

  • Obtiene una colección de usuarios.
  • queryParameters->select Usa para solicitar propiedades específicas
  • queryParameters->top Usa para limitar el número de usuarios devueltos
  • queryParameters->orderby Usa para ordenar la respuesta

Paso siguiente