Uso de MSGraphClientV3 para conectarse a Microsoft Graph
Al compilar soluciones SharePoint Framework, puede conectarse fácilmente a Microsoft Graph mediante MSGraphClientV3.
Información general sobre MSGraphClient
MSGraphClientV3 es un nuevo cliente HTTP introducido en SharePoint Framework v1.15.0 que simplifica la conexión a Microsoft Graph dentro de las soluciones de SharePoint Framework. MSGraphClientV3 encapsula la biblioteca cliente JavaScript v3 de Microsoft Graph, lo que ofrece a los desarrolladores las mismas funcionalidades que cuando usan la biblioteca cliente en otras soluciones del lado cliente.
MSGraphClientV3 reemplaza a MSGraphClient que se introdujo en SharePoint Framework v1.6.0. MSGraphClient ha encapsulado la biblioteca cliente JavaScript v1 de Microsoft Graph.
Aunque podría usar la biblioteca cliente javaScript de Microsoft Graph en la solución directamente, MSGraphClientV3 controla la autenticación en Microsoft Graph automáticamente, lo que le permite centrarse en la creación de la solución.
Usar MSGraphClient en una solución
Nota:
MSGraphClientV3 solo está disponible en proyectos creados con SharePoint Framework v1.15.0 y versiones posteriores. Aunque MSGraphClientV3 se explica en este artículo mediante un elemento web del lado cliente, también puede usarlo en extensiones de SharePoint Framework.
Nota:
El inicio de sesión único para MSGraphClientV3 solo está disponible actualmente en SharePoint Online. Puede usar el cliente para los desarrollos locales, pero se les pedirá a los usuarios que vuelvan a iniciar sesión en el elemento web.
Para usar MSGraphClientV3 en la solución de SharePoint Framework, agregue la siguiente
import
cláusula en el archivo de elemento web principal:import { MSGraphClientV3 } from '@microsoft/sp-http';
MSGraphClientV3 se expone a través de MSGraphClientFactory disponible en el contexto del elemento web. Para obtener una referencia a MSGraphClient, agregue en el código:
export default class HelloWorldWebPart extends BaseClientSideWebPart<IHelloWorldWebPartProps> { public render(): void { // ... this.context.msGraphClientFactory .getClient('3') .then((client: MSGraphClientV3): void => { // use MSGraphClient here }); } // ... }
Una vez que tenga la referencia a la instancia de MSGraphClientV3 , empiece a comunicarse con Microsoft Graph mediante su sintaxis de la biblioteca cliente de JavaScript:
export default class HelloWorldWebPart extends BaseClientSideWebPart<IHelloWorldWebPartProps> { public render(): void { // ... this.context.msGraphClientFactory .getClient('3') .then((client: MSGraphClientV3): void => { // get information about the current user from the Microsoft Graph client .api('/me') .get((error, response: any, rawResponse?: any) => { // handle the response }); }); } // ... }
Usar los tipos de TypeScript de Microsoft Graph
Al trabajar con Microsoft Graph y TypeScript, puede usar los tipos de TypeScript de Microsoft Graph, que le ayudarán a identificar errores en el código con mayor rapidez. Los tipos de TypeScript de Microsoft Graph se proporcionan como un paquete separado.
Instale los tipos de TypeScript de Microsoft Graph:
npm install @microsoft/microsoft-graph-types --save-dev
Después de instalar el paquete en el proyecto, siga este procedimiento para importarlo en el archivo de elementos web:
import * as MicrosoftGraph from '@microsoft/microsoft-graph-types';
Ahora, puede escribir los objetos recuperados de Microsoft Graph, por ejemplo:
export default class HelloWorldWebPart extends BaseClientSideWebPart<IHelloWorldWebPartProps> { public render(): void { // ... this.context.msGraphClientFactory .getClient('3') .then((client: MSGraphClientV3): void => { // get information about the current user from the Microsoft Graph client .api('/me') .get((error: any, user: MicrosoftGraph.User, rawResponse?: any) => { // handle the response }); }); } // ... }
Ámbitos de permiso disponibles
De forma predeterminada, la entidad de servicio no tiene permisos explícitos concedidos para tener acceso a Microsoft Graph. Pero, si quiere solicitar un token de acceso para Microsoft Graph, puede obtenerlo con el ámbito de permiso de user_impersonation
, que se puede usar para leer información sobre los usuarios (es decir, User.Read.All
).
Los desarrolladores pueden solicitar ámbitos de permiso adicionales, que serán concedidos por los administradores de espacios empresariales. Para obtener más información, vea Conectarse a API protegidas por Azure AD en soluciones de SharePoint Framework.
Problemas conocidos
Roles de Azure AD con autenticación delegada
MSGraphClient actualmente usa un flujo de autenticación implícito al solicitar permisos delegados de Microsoft Graph. Como se indica en los tokens de acceso de la Plataforma de identidad de Microsoft, es posible que la notificación wids
no esté presente cuando se usa el flujo de autenticación implícito debido a problemas de longitud. La notificación wids
contiene la lista de roles de todo el espacio empresarial de Azure AD que se han asignado al usuario delegado.
Por lo tanto, es posible que se produzcan errores en las consultas a los puntos de conexión de Microsoft Graph que dependen de los roles de Azure AD también a permisos delegados debido a que la notificación wids
no está presente. En el momento en que se ha redactado esto, incluye los siguientes puntos de conexión: