Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här guiden beskriver hur du konfigurerar och testar det serverlogikexempel som integrerar Power Pages med Microsoft Graph och SharePoint online.
Steg 1: Ladda ned exempelpaketet
- Gå till GitHub-lagringsplatsen https://github.com/microsoft/power-pages-samples.
- Välj Kod > Ladda ned ZIP.
- När du har laddat ned extraherar du ZIP-filen till en lokal mapp, till exempel:
C:\PowerPages\ServerLogic - Navigera till den extraherade sökvägen:
samples/server-logic/sharepoint-integrationDen här mappen innehåller lösningspaketetevent-registration.zip, som innehåller de Power Pages-webbplatsresurser som du importerar i senare steg.
Du kan också använda git-klon om du vill.
git clone https://github.com/microsoft/power-pages-samples.git
cd power-pages-samples/samples/server-logic/sharepoint-integration
Steg 2: Förutsättningar
Innan du börjar kontrollerar du att du har:
- Åtkomst till Microsoft Entra ID (Azure AD) med behörighet att registrera appar.
- Åtkomst till en SharePoint Online-webbplats (till exempel https://contoso.sharepoint.com/sites/EventSite).
Steg 3: Skapa och konfigurera Entra ID-programmet
Du behöver en appregistrering för att tillåta att din serverlogikkod autentiserar mot Microsoft Graph.
Skapa en programregistrering
- Gå till Azure-portalen och välj Appregistreringar.
- Välj + Ny registrering.
- Ange ett namn (till exempel PowerPagesGraph-Integration).
- Välj Endast konton i den här organisationskatalogen.
Anmärkning
Du behöver inte ange någon omdirigerings-URI för det här exemplet.
- Välj Registrera.
Konfigurera API-behörigheter
- I den nya appen går du till API-behörigheter>Lägg till en behörighet.
- VäljBehörigheter för>.
- Lägg till följande behörigheter:
- Sites.ReadWrite.All (för SharePoint-filåtgärder)
- Mail.Send (valfritt – behövs bara om du planerar att aktivera e-postavsnittet)
- Välj Bevilja administratörsgodkännande för din hyresgäst.
Skapa en klienthemlighet
- Gå till Certifikat och hemligheter>Klienthemligheter.
- Välj + Ny klienthemlighet.
- Ange en beskrivning och välj en förfalloperiod (till exempel sex månader).
- Välj Lägg till och kopiera det genererade värdet direkt – det här är din CLIENT_SECRET.
Samla in nödvändiga värden
Från din Azure-app:
- Klient-ID> CLIENT_ID
- Klientorganisations-ID> TENANT_ID
- Klienthemlighet> CLIENT_SECRET
Steg 4: Identifiera din SharePoint-webbplats och -mapp
Skriptet laddar upp genererade händelsebiljetter till en SharePoint-webbplats.
- Identifiera ditt SharePoint-värdnamn och din webbplatssökväg: Till exempel: HOSTNAME =
contoso.sharepoint.comSITE_PATH =/sites/EventSite - Kontrollera att ett dokumentbibliotek med namnet Dokument finns (standard).
Steg 5: Distribuera paketet
Skapa en ny webbplats genom att importera den nyligen nedladdade webbplatsen från GitHub. Information om hur du importerar webbplatsen finns i power-pages-solutions
Under platsuppgradering uppdaterar du värdena för miljövariabler. Uppdatera följande värden som du hämtade i föregående steg:
- Kund-ID
- Klientorganisations-ID
- Klienthemlighet (Behåll det här värdet i ett nyckelvalv och använd det i miljövariabeln. För testning kan du behålla den direkt i miljövariabeln.)
- HOSTNAME
- SITE_PATH
Skriptmarkering: Konfigurationsavsnitt
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");
Dessa läses in på ett säkert sätt från Power Pages-webbplatsinställningar (miljövariabler).
Steg 6: Testa SharePoint-integreringen
Skriptet bearbetar inskickade händelseregistreringsformulär, hämtar en Microsoft Graph-åtkomsttoken, genererar en HTML-biljett, laddar upp den till SharePoint och skapar en post i Dataverse.
Skriptmarkering: Anropa Microsoft Graph för åtkomsttoken
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;
}
Skripthöjdpunkt: Ladda upp ärende till 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 lyckad körning:
- En ny post visas i Dataverse under crd69_eventregistrations.
- En HTML-biljettfil laddas upp till mappen Dokument från SharePoint > Biljetter.
- Fältet crd69_ticketurl innehåller länken till den uppladdade biljettfilen.
(Valfritt) Steg 7: Aktivera e-postavisering
Så här skickar du ett bekräftelsemeddelande till deltagaren:
- Ta bort kommentaren " Skicka bekräftelsemeddelande" i skriptet.
- Ersätt {senderUserId} med ett giltigt postlådeaktiverat användar-ID (till exempel ett tjänstkonto).
- Kontrollera att behörigheten Mail.Send har lagts till och att administratören har samtyckt.
Relaterad information
Översikt över serverlogik
Skapa serverlogik
Server-objekt
Interagera med Dataverse-tabeller med hjälp av serverlogik