Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Denne veiledningen veileder deg gjennom konfigurasjon og testing av serverlogikkeksempelet som integrerer Power Pages med Microsoft Graph og SharePoint Online.
Trinn 1: Last ned eksempelpakken
- Gå til GitHub-repositoriet https://github.com/microsoft/power-pages-samples.
- Velg Last ned kode > zip.
- Når du har lastet ned, kan du pakke ut ZIP-filen til en lokal mappe, for eksempel:
C:\PowerPages\ServerLogic - Gå til den utpakkede banen:
samples/server-logic/sharepoint-integrationDenne mappen inneholder løsningspakkenevent-registration.zip, som inkluderer power pages-områderessursene du importerer i senere trinn.
Alternativt kan du bruke git klone hvis du foretrekker det.
git clone https://github.com/microsoft/power-pages-samples.git
cd power-pages-samples/samples/server-logic/sharepoint-integration
Trinn 2: Forutsetninger
Før du starter, må du kontrollere at du har følgende:
- Tilgang til Microsoft Entra ID (Azure AD) med tillatelse til å registrere apper.
- Tilgang til et SharePoint Online-nettsted (for eksempel https://contoso.sharepoint.com/sites/EventSite).
Trinn 3: Opprette og konfigurere Entra ID-programmet
Du trenger en appregistrering for å tillate at serverlogikkkoden godkjennes mot Microsoft Graph.
Opprett appregistreringen
- Gå til Azure Portal, og velg Appregistreringer.
- Velg + Ny registrering.
- Angi et navn (for eksempel PowerPages-Graph-Integration).
- Velg bare kontoer i denne organisasjonskatalogen.
Note
Du trenger ikke å oppgi en omadresserings-URI for dette eksemplet.
- Velg Registrer.
Konfigurere API-tillatelser
- Gå til API-tillatelser>legg til en tillatelse i den nye appen.
- VelgMicrosoft Graph-programtillatelser>.
- Legg til følgende tillatelser:
- Sites.ReadWrite.All (for SharePoint-filoperasjoner)
- Mail.Send (valgfritt – bare nødvendig hvis du planlegger å aktivere e-postinndelingen)
- Velg Gi administratortillatelse for leietakeren din.
Opprette en klienthemmelighet
- Gå til Sertifikater & hemmeligheter>Klient hemmeligheter.
- Velg + Ny klienthemmelighet.
- Skriv inn en beskrivelse, og velg en utløpsperiode (for eksempel seks måneder).
- Velg Legg til, og kopier den genererte verdien umiddelbart – dette er din CLIENT_SECRET.
Samle inn nødvendige verdier
Fra Azure-appen:
- Klient-ID> CLIENT_ID
- Leier-ID> TENANT_ID
- Klienthemmelighet> CLIENT_SECRET
Trinn 4: Identifisere SharePoint-området og -mappen
Skriptet laster opp genererte arrangementsbilletter til et SharePoint-nettsted.
- Identifiser SharePoint-vertsnavnet og områdebanen: Eksempel: HOSTNAME =
contoso.sharepoint.comSITE_PATH =/sites/EventSite - Kontroller at det finnes et dokumentbibliotek kalt Dokumenter (standard).
Trinn 5: Distribuere pakken
Opprett et nytt nettsted ved å importere det nylig nedlastede nettstedet fra GitHub. Hvis du vil lære hvordan du importerer nettstedet, kan du se power-pages-solutions
Oppdater verdiene for miljøvariabler under oppgraderingen av nettstedet. Oppdater følgende verdier som du registrerte i tidligere trinn:
- Klient-ID
- Leier-ID
- Client Secret (Behold denne verdien i et nøkkelhvelv og bruk den i miljøvariabelen. For testing kan du holde den direkte i miljøvariabelen.)
- HOSTNAME
- SITE_PATH
Skriptutheving: Konfigurasjonsinndeling
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 lastes sikkert inn fra innstillinger for Power Pages-nettstedet (miljøvariabler).
Trinn 6: Teste SharePoint-integreringen
Skriptet behandler hendelsesregistreringsskjemainnsendinger, henter et Microsoft Graph-tilgangstoken, genererer en HTML-billett, laster den opp til SharePoint og oppretter en post i Dataverse.
Skriptsammendrag: Anroper Microsoft Graph for å hente tilgangstoken
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;
}
Skriptutheving: Laste opp billett 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"
);
Etter en vellykket kjøring:
- En ny oppføring vises i Dataverse under crd69_eventregistrations.
- En HTML-billettfil lastes opp til Mappen Forelegg for SharePoint-dokumenter>.
- Feltet crd69_ticketurl inneholder koblingen til den opplastede billettfilen.
(Valgfritt) Trinn 7: Aktivere e-postvarsling
Slik sender du en bekreftelses-e-post til deltakeren:
- Komprimer «Send bekreftelses-e-post»- delen i skriptet.
- Erstatt {senderUserId} med en gyldig bruker-ID med postboksaktivert (for eksempel en tjenestekonto).
- Sørg for at E-post.Send-tillatelse legges til og administratorsamtykkes.
Relatert informasjon
Oversikt over serverlogikk
Redigeringsserverlogikk
Serverobjekter
Slik samhandler du med dataverse tabeller ved hjelp av serverlogikk