Listar utilizadores em aplicações Python com o Microsoft Graph

Neste artigo, vai expandir a aplicação que criou em Criar aplicações Python com o Microsoft Graph e a autenticação apenas de aplicações com as APIs de utilizador do Microsoft Graph. Utiliza o Microsoft Graph para listar utilizadores na sua organização.

  1. Adicione a seguinte função ao graph.py.

    async def get_users(self):
        query_params = UsersRequestBuilder.UsersRequestBuilderGetQueryParameters(
            # Only request specific properties
            select = ['displayName', 'id', 'mail'],
            # Get at most 25 results
            top = 25,
            # Sort by display name
            orderby= ['displayName']
        )
        request_config = UsersRequestBuilder.UsersRequestBuilderGetRequestConfiguration(
            query_parameters=query_params
        )
    
        users = await self.app_client.users.get(request_configuration=request_config)
        return users
    
  2. Substitua a função empty list_users no main.py pelo seguinte.

    async def list_users(graph: Graph):
        users_page = await graph.get_users()
    
        # Output each users's details
        if users_page and users_page.value:
            for user in users_page.value:
                print('User:', user.display_name)
                print('  ID:', user.id)
                print('  Email:', user.mail)
    
            # If @odata.nextLink is present
            more_available = users_page.odata_next_link is not None
            print('\nMore users available?', more_available, '\n')
    
  3. Execute a aplicação e escolha a opção 2 para listar os utilizadores.

    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: None
    User: Brian Johnson (TAILSPIN)
      ID: a8989e40-be57-4c2e-bf0b-7cdc471e9cc4
      Email: BrianJ@contoso.com
    
    ...
    
    More users available? True
    

Código explicado

Considere o código na get_users função .

  • Obtém uma coleção de utilizadores
  • $select Utiliza para pedir propriedades específicas
  • $top Utiliza para limitar o número de utilizadores devolvidos
  • $orderBy Utiliza para ordenar a resposta

Próxima etapa