Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo, ampliará la aplicación que creó en Compilación de aplicaciones Java 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.
Abra Graph.java y agregue la siguiente función a la
Graph
clase .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" }; }); }
Reemplace la función vacía
listUsers
en App.java por lo siguiente.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()); } }
Ejecute la aplicación, inicie sesión y elija la opción 4 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 .
Acceso a una colección
Este método devuelve una colección de usuarios. La mayoría de las API de Microsoft Graph que devuelven una colección no devuelven todos los resultados disponibles en una única respuesta. En su lugar, usan la paginación para devolver una parte de los resultados al tiempo que proporcionan un método para que los clientes soliciten la página siguiente.
Tamaños de página predeterminados
Las API que usan la paginación implementan un tamaño de página predeterminado. Para los usuarios, el valor predeterminado es 10. Los clientes pueden solicitar más (o menos) mediante el parámetro de consulta $top . En getUsers
, la adición $top
se realiza con la top
propiedad en la configuración de la solicitud.
Nota:
El valor establecido en top
es un límite superior, no un número explícito. La API devuelve un número de usuarios hasta el valor especificado.
Obtención de páginas posteriores
Si hay más resultados disponibles en el servidor, las respuestas de colección incluyen una @odata.nextLink
propiedad con una dirección URL de API para acceder a la página siguiente. La biblioteca cliente de Java proporciona el getOdataNextLink
método en objetos de respuesta de colección. Si este método devuelve valores no NULL, hay más resultados disponibles.
Ordenar colecciones
La función usa la orderBy
propiedad en la configuración de la solicitud para solicitar resultados ordenados por los nombres para mostrar de los usuarios. Esta propiedad agrega el parámetro de consulta $orderby a la llamada API.