Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Denne vejledning fører dig gennem konfiguration og test af eksemplet på serverlogik, der integrerer Power Pages med Microsoft Graph og SharePoint online.
Trin 1: Download eksempelpakken
- Gå til GitHub-lageret https://github.com/microsoft/power-pages-samples.
- Vælg Code Download ZIP>.
- Når du har downloadet, skal du udtrække ZIP-filen til en lokal mappe, f.eks.:
C:\PowerPages\ServerLogic - Gå til den udtrukne sti:
samples/server-logic/sharepoint-integrationDenne mappe indeholder løsningspakkenevent-registration.zip, som indeholder de Power Pages-webstedsressourcer, du importerer i senere trin.
Du kan også bruge Git-klonen, hvis du foretrækker det.
git clone https://github.com/microsoft/power-pages-samples.git
cd power-pages-samples/samples/server-logic/sharepoint-integration
Trin 2: Forudsætninger
Før du starter, skal du sørge for at have:
- Adgang til Microsoft Entra ID (Azure AD) med tilladelse til at registrere apps.
- Adgang til et SharePoint Online-websted (f.eks. https://contoso.sharepoint.com/sites/EventSite).
Trin 3: Opret og konfigurer entra-id-programmet
Du skal bruge en appregistrering for at tillade, at din serverlogikkode godkendes i forhold til Microsoft Graph.
Oprette appregistreringen
- Gå til Azure Portal, og vælg Appregistreringer.
- Vælg + Ny registrering.
- Angiv et navn (f.eks. PowerPages-Graph-Integration).
- Vælg kun Konti i denne organisationsmappe.
Notat
Du behøver ikke at angive en omdirigerings-URI for dette eksempel.
- Vælg Registrer.
Konfigurer API-tilladelser
- I den nye app skal du gå til API-tilladelser>Tilføj en tilladelse.
- VælgTilladelser til>.
- Tilføj følgende tilladelser:
- Sites.ReadWrite.All (til SharePoint-filhandlinger)
- Mail.Send (valgfri – kun nødvendig, hvis du planlægger at aktivere mailsektionen)
- Vælg Tildel administratorsamtykke for din lejer.
Opret en klienthemmelighed
- Gå til Certifikater & hemmeligheder>Klienthemmeligheder.
- Vælg + Ny klienthemmelighed.
- Angiv en beskrivelse, og vælg en udløbsperiode (f.eks. seks måneder).
- Vælg Tilføj, og kopiér den genererede værdi med det samme – dette er din CLIENT_SECRET.
Indsaml påkrævede værdier
Fra din Azure-app:
- Klient-id> CLIENT_ID
- Lejer-id> TENANT_ID
- Klienthemmelighed> CLIENT_SECRET
Trin 4: Identificer dit SharePoint-websted og din SharePoint-mappe
Scriptet uploader genererede hændelsesanmodninger til et SharePoint-websted.
- Identificer sharePoint-værtsnavnet og -stien: For eksempel: HOSTNAME =
contoso.sharepoint.comSITE_PATH =/sites/EventSite - Kontrollér, at der findes et dokumentbibliotek med navnet Dokumenter (standard).
Trin 5: Installér pakken
Opret et nyt websted ved at importere det senest downloadede websted fra GitHub. Hvis du vil vide mere om, hvordan du importerer webstedet, skal du se power-pages-solutions
Under opgraderingen af webstedet skal du opdatere værdierne for miljøvariabler. Opdater følgende værdier, som du hentede i forrige trin:
- Klient-id
- Lejer-id
- Client Secret (Bevar denne værdi i en key vault, og brug den i miljøvariablen. Til test kan du beholde den direkte i miljøvariablen.)
- VÆRTSNAVN
- SITE_PATH
Scriptfremhævning: Konfigurationsafsnit
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");
Disse indlæses sikkert fra indstillingerne for Power Pages-webstedet (miljøvariabler).
Trin 6: Test SharePoint-integrationen
Scriptet behandler indsendelser af hændelsesregistreringsformularer, henter et Microsoft Graph-adgangstoken, genererer en HTML-billet, uploader den til SharePoint og opretter en post i Dataverse.
Scriptfremhævning: Kalder Microsoft Graph for at få adgangstoken
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;
}
Scriptfremhævning: Upload af billet til 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"
);
Efter en vellykket kørsel:
- Der vises en ny post i Dataverse under crd69_eventregistrations.
- En HTML-billetfil uploades til din SharePoint-dokument Tickets>-mappe.
- Feltet crd69_ticketurl indeholder linket til den overførte billetfil.
(Valgfrit) Trin 7: Aktivér mailmeddelelse
Sådan sender du en bekræftelsesmail til deltageren:
- Fjern kommentaren i afsnittet "Send bekræftelsesmail" i scriptet.
- Erstat {senderUserId} med et gyldigt bruger-id med postkasseaktiveret (f.eks. en tjenestekonto).
- Kontrollér, at tilladelsen Mail.Send er tilføjet, og at administratoren har givet samtykke.
Relaterede oplysninger
Oversigt over serverlogik
Forfatterserverlogik
Serverobjekter
Sådan interagerer du med Dataverse-tabeller ved hjælp af serverlogik