Vue d’ensemble de la classe GraphHttpClient (déconseillée)

Important

La classe GraphHttpClient a été déconseillée et ne doit plus être utilisée. Elle a été remplacée par MSGraphClient.

Vous pouvez utiliser Microsoft Graph pour créer de puissantes solutions d’accès aux données d’Office 365 et autres services Microsoft. Pour connecter les solutions SharePoint Framework (SPFx) à Microsoft Graph, vous devez enregistrer une application Azure Active Directory (AD Azure) et exécuter le flux d’autorisation. Pour simplifier cette tâche, vous pouvez utiliser la classe SPFx GraphHttpClient pour appeler Microsoft Graph directement, sans paramétrage supplémentaire.

Qu’est-ce que la classe GraphHttpClient ?

La classe GraphHttpClient est incluse dans SharePoint Framework. Elle fonctionne de façon similaire à la classe HttpClient que vous pouvez utiliser pour communiquer avec les API de tiers. La classe GraphHttpClient permet de s’assurer automatiquement que votre requête à Microsoft Graph possède un jeton d’accès de support valide et les en-têtes requis.

Lorsque vous émettez une requête GET ou POST, GraphHttpClient vérifie qu’elle possède un jeton d’accès valide. Si ce n’est pas le cas, elle en récupère un automatiquement à partir d’une API interne et le stocke pour une demande ultérieure.

L’exemple suivant montre une requête à Microsoft Graph qui utilise la classe GraphHttpClient.

// ...
import { GraphHttpClient, GraphHttpClientResponse } from '@microsoft/sp-http';

export default class MyApplicationCustomizer
  extends BaseApplicationCustomizer<IMyApplicationCustomizerProperties> {

  // ...

  @override
  public onRender(): void {
    this.context.graphHttpClient.get("v1.0/groups?$select=displayName", GraphHttpClient.configurations.v1)
      .then((response: GraphHttpClientResponse): Promise<any> => {
        return response.json();
      })
      .then((data: any): void => {
        // ...
      });
  }
}

Pour envoyer une requête à l’API Microsoft Graph :

  1. Importez les modules GraphHttpClient et GraphHttpClientResponse à partir du package @ microsoft/sp-http.

  2. Utilisez l’instance de GraphHttpClient, disponible sur la propriété this.context.graphHttpClient, pour envoyer une requête GET ou POST à Microsoft Graph.

  3. Comme paramètres, spécifiez l’API de Microsoft Graph que vous souhaitez appeler (commencez par la version de l’API sans slash « / » avant), suivi de la configuration GraphHttpClient.

  4. Si vous le souhaitez, vous pouvez spécifier des en-têtes de requête supplémentaires, qui seront fusionnés avec les en-têtes par défaut définis dans GraphHttpClient ('Accept': 'application/json', 'Authorization': 'Bearer [token]' et 'Content-Type': 'application/json; charset=utf-8').

Considérations relatives à la classe GraphHttpClient

La classe GraphHttpClient offre un moyen pratique de communiquer avec Microsoft Graph, car elle permet de supprimer le flux d’autorisation et la gestion des jetons d’accès. Étant donné que GraphHttpClient se trouve actuellement dans l’aperçu du développeur, il y a quelques considérations que vous devez prendre en compte avant de l’utiliser.

Utiliser Microsoft Graph pour l’accès uniquement

Utilisez la classe GraphHttpClient uniquement pour accéder à Microsoft Graph. L’URL spécifiée dans la requête doit commencer par la version de l’API Microsoft Graph (1.0 ou bêta), suivie de l’opération d’API. Toutes les autres URL renvoient une erreur.

Autorisations

GraphHttpClient utilise l’application Azure Active Directory Office 365 SharePoint Online pour extraire un jeton d’accès valide à Microsoft Graph au nom de l’utilisateur actuel. Le jeton d’accès extrait contient les deux autorisations suivantes :

  • Accéder en lecture et en écriture à tous les groupes (aperçu) (Group.ReadWrite.All)
  • Lire tous les rapports d'utilisation (Reports.Read.All)

Jetons extraits à l’aide d’une API interne

Pour obtenir un jeton d’accès valide, GraphHttpClient lance une requête web vers le point de terminaison /_api/SP.OAuth.Token/Acquire. Cette API est destinée à un usage interne. Vous ne devez pas communiquer directement avec elle dans vos solutions.

Voir aussi