Guide pratique pour interagir avec Microsoft Graph et SharePoint à l’aide de la logique serveur

Ce guide vous guide tout au long de la configuration et du test de l’exemple de logique serveur qui intègre Power Pages à Microsoft Graph et SharePoint online.

Étape 1 : Télécharger l’exemple de package

  1. Accédez au dépôt https://github.com/microsoft/power-pages-samplesGitHub .
  2. Sélectionnez Code > Télécharger le fichier ZIP.
  3. Après le téléchargement, extrayez le fichier ZIP dans un dossier local, par exemple : C:\PowerPages\ServerLogic
  4. Accédez au chemin extrait : samples/server-logic/sharepoint-integration Ce dossier contient le package de event-registration.zip solution, qui inclut les ressources du site Power Pages que vous allez importer dans les étapes ultérieures.

Vous pouvez également utiliser le clone Git si vous préférez.

git clone https://github.com/microsoft/power-pages-samples.git
cd power-pages-samples/samples/server-logic/sharepoint-integration

Étape 2 : Prérequis

Avant de commencer, vérifiez que vous disposez des points suivants :

Étape 3 : Créer et configurer l’application Entra ID

Vous avez besoin d’une inscription d’application pour permettre à votre code logique serveur de s’authentifier auprès de Microsoft Graph.

Créer l’inscription d’application

  1. Accédez au portail Azure, puis sélectionnez Inscriptions d’applications.
  2. Sélectionnez + Nouvelle inscription.
  3. Fournissez un nom (par exemple, PowerPages-Graph-Integration).
  4. Choisissez Comptes dans ce répertoire organisationnel uniquement.

    Note

    Vous n’avez pas besoin de fournir un URI de redirection pour cet exemple.

  5. Sélectionnez Inscrire.

Configurez les autorisations d’API

  1. Dans la nouvelle application, accédez aux autorisations> d’APIAjouter une autorisation.
  2. Sélectionnezautorisations d’application>.
  3. Ajoutez les autorisations suivantes :
    • Sites.ReadWrite.All (pour les opérations sur les fichiers SharePoint)
    • Mail.Send (facultatif , nécessaire uniquement si vous envisagez d’activer la section e-mail)
  4. Sélectionnez Accorder le consentement administrateur pour votre client.

Créer une clé secrète client

  1. Accédez à Certificats et secrets>Secrets clients.
  2. Sélectionnez + Nouveau secret client.
  3. Entrez une description et choisissez une période d’expiration (par exemple, six mois).
  4. Sélectionnez Ajouter et copiez immédiatement la valeur générée . Il s’agit de votre CLIENT_SECRET.

Collecter les valeurs requises

À partir de votre application Azure :

  • ID client> CLIENT_ID
  • ID de locataire> TENANT_ID
  • Secret client> CLIENT_SECRET

Étape 4 : Identifier votre site et dossier SharePoint

Le script charge les tickets d’événements générés sur un site SharePoint.

  1. Identifiez votre nom d’hôte SharePoint et le chemin d’accès du site : par exemple : HOSTNAME = contoso.sharepoint.com SITE_PATH = /sites/EventSite
  2. Vérifiez qu’une bibliothèque de documents appelée Documents existe (par défaut).

Étape 5 : Déployer le package

  1. Créez un site en important le site récemment téléchargé à partir de GitHub. Pour savoir comment importer le site, consultez power-pages-solutions

  2. Pendant la mise à niveau du site, mettez à jour les valeurs des variables d’environnement. Mettez à jour les valeurs suivantes que vous avez capturées lors des étapes précédentes :

    • ID du client
    • ID de locataire
    • Clé secrète client (conservez cette valeur dans un coffre de clés et utilisez-la dans la variable d’environnement. Pour les tests, vous pouvez le conserver directement dans la variable d’environnement.)
    • NOM D’HÔTE
    • SITE_PATH

Mise en surbrillance du script : section Configuration

const CLIENT_ID = Server.SiteSetting.Get("CLIENT_ID");
const CLIENT_SECRET = Server.SiteSetting.Get("CLIENT_SECRET");;
const TENANT_ID = Server.SiteSetting.Get("TENANT_ID");

const HOSTNAME = Server.SiteSetting.Get("HOSTNAME"); 
const SITE_PATH = Server.SiteSetting.Get("SITE_PATH"); 

Celles-ci sont chargées en toute sécurité à partir des paramètres du site Power Pages (variables d’environnement).

Étape 6 : Tester l’intégration de SharePoint

Le script traite les soumissions de formulaires d’inscription d’événements, acquiert un jeton d’accès Microsoft Graph, génère un ticket HTML, le charge dans SharePoint et crée un enregistrement dans Dataverse.

Mise en surbrillance du script : Appel à Microsoft Graph pour obtenir le jeton d’accès

async function getAccessToken() {
   const body = {
      "client_id": CLIENT_ID,
      "client_secret": CLIENT_SECRET,
      "scope": "https://graph.microsoft.com/.default",
      "grant_type": "client_credentials"
   };
   const tokenResp = await Server.Connector.HttpClient.PostAsync(
      `https://login.microsoftonline.com/${TENANT_ID}/oauth2/v2.0/token`,
      JSON.stringify(body),
      { "Content-Type": "application/x-www-form-urlencoded" },
      "application/x-www-form-urlencoded"
   );
   const tokenJson = JSON.parse(JSON.parse(tokenResp).Body);
   return tokenJson.access_token;
}

Mise en surbrillance du script : chargement d’un ticket vers SharePoint

const siteResp = await Server.Connector.HttpClient.GetAsync(
  `https://graph.microsoft.com/v1.0/sites/${HOSTNAME}:${SITE_PATH}`,
  { Authorization: `Bearer ${accessToken}` }
);
const siteId = JSON.parse(JSON.parse(siteResp).Body).id;

const driveResp = await Server.Connector.HttpClient.GetAsync(
  `https://graph.microsoft.com/v1.0/sites/${siteId}/drive`,
  { Authorization: `Bearer ${accessToken}` }
);
const driveId = JSON.parse(JSON.parse(driveResp).Body).id;

const uploadUrl = `https://graph.microsoft.com/v1.0/drives/${driveId}/root:/Tickets/${fileName}:/content`;

await Server.Connector.HttpClient.PutAsync(
  uploadUrl,
  htmlTicket,
  { Authorization: `Bearer ${accessToken}`, "Content-Type": "text/html" },
  "text/html"
);

Après une exécution réussie :

  1. Un nouvel enregistrement apparaît dans Dataverse sous crd69_eventregistrations.
  2. Un fichier de ticket HTML est chargé dans votre dossier SharePoint Documents > Tickets .
  3. Le champ crd69_ticketurl contient le lien vers le fichier de ticket chargé.

(Facultatif) Étape 7 : Activer la notification par e-mail

Pour envoyer un e-mail de confirmation au participant :

  1. Supprimez les commentaires de la section « Envoyer un e-mail de confirmation » dans le script.
  2. Remplacez {senderUserId} par un ID utilisateur valide prenant en charge la boîte aux lettres (par exemple, un compte de service).
  3. Vérifiez que l’autorisation Mail.Send est ajoutée et autorisée par l’administrateur.

Vue d’ensemble de la logique serveur
Écrire une logique de serveur
Objets de serveur
Comment interagir avec des tables Dataverse à l’aide de la logique serveur