Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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
- Accédez au dépôt https://github.com/microsoft/power-pages-samplesGitHub .
- Sélectionnez Code > Télécharger le fichier ZIP.
- Après le téléchargement, extrayez le fichier ZIP dans un dossier local, par exemple :
C:\PowerPages\ServerLogic - Accédez au chemin extrait :
samples/server-logic/sharepoint-integrationCe dossier contient le package deevent-registration.zipsolution, 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 :
- Accès à Microsoft Entra ID (Azure AD) avec l’autorisation d’inscrire des applications.
- Accès à un site SharePoint Online (par exemple, https://contoso.sharepoint.com/sites/EventSite).
É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
- Accédez au portail Azure, puis sélectionnez Inscriptions d’applications.
- Sélectionnez + Nouvelle inscription.
- Fournissez un nom (par exemple, PowerPages-Graph-Integration).
- Choisissez Comptes dans ce répertoire organisationnel uniquement.
Note
Vous n’avez pas besoin de fournir un URI de redirection pour cet exemple.
- Sélectionnez Inscrire.
Configurez les autorisations d’API
- Dans la nouvelle application, accédez aux autorisations> d’APIAjouter une autorisation.
- Sélectionnezautorisations d’application>.
- 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)
- Sélectionnez Accorder le consentement administrateur pour votre client.
Créer une clé secrète client
- Accédez à Certificats et secrets>Secrets clients.
- Sélectionnez + Nouveau secret client.
- Entrez une description et choisissez une période d’expiration (par exemple, six mois).
- 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.
- Identifiez votre nom d’hôte SharePoint et le chemin d’accès du site : par exemple : HOSTNAME =
contoso.sharepoint.comSITE_PATH =/sites/EventSite - Vérifiez qu’une bibliothèque de documents appelée Documents existe (par défaut).
Étape 5 : Déployer le package
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
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 :
- Un nouvel enregistrement apparaît dans Dataverse sous crd69_eventregistrations.
- Un fichier de ticket HTML est chargé dans votre dossier SharePoint Documents > Tickets .
- 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 :
- Supprimez les commentaires de la section « Envoyer un e-mail de confirmation » dans le script.
- Remplacez {senderUserId} par un ID utilisateur valide prenant en charge la boîte aux lettres (par exemple, un compte de service).
- Vérifiez que l’autorisation Mail.Send est ajoutée et autorisée par l’administrateur.
Informations connexes
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