Sådan interagerer du med Microsoft Graph og SharePoint ved hjælp af serverlogik

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

  1. Gå til GitHub-lageret https://github.com/microsoft/power-pages-samples.
  2. Vælg Code Download ZIP>.
  3. Når du har downloadet, skal du udtrække ZIP-filen til en lokal mappe, f.eks.: C:\PowerPages\ServerLogic
  4. Gå til den udtrukne sti: samples/server-logic/sharepoint-integration Denne mappe indeholder løsningspakken event-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:

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

  1. Gå til Azure Portal, og vælg Appregistreringer.
  2. Vælg + Ny registrering.
  3. Angiv et navn (f.eks. PowerPages-Graph-Integration).
  4. Vælg kun Konti i denne organisationsmappe.

    Notat

    Du behøver ikke at angive en omdirigerings-URI for dette eksempel.

  5. Vælg Registrer.

Konfigurer API-tilladelser

  1. I den nye app skal du gå til API-tilladelser>Tilføj en tilladelse.
  2. VælgTilladelser til>.
  3. Tilføj følgende tilladelser:
    • Sites.ReadWrite.All (til SharePoint-filhandlinger)
    • Mail.Send (valgfri – kun nødvendig, hvis du planlægger at aktivere mailsektionen)
  4. Vælg Tildel administratorsamtykke for din lejer.

Opret en klienthemmelighed

  1. Gå til Certifikater & hemmeligheder>Klienthemmeligheder.
  2. Vælg + Ny klienthemmelighed.
  3. Angiv en beskrivelse, og vælg en udløbsperiode (f.eks. seks måneder).
  4. 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.

  1. Identificer sharePoint-værtsnavnet og -stien: For eksempel: HOSTNAME = contoso.sharepoint.com SITE_PATH = /sites/EventSite
  2. Kontrollér, at der findes et dokumentbibliotek med navnet Dokumenter (standard).

Trin 5: Installér pakken

  1. 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

  2. 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:

  1. Der vises en ny post i Dataverse under crd69_eventregistrations.
  2. En HTML-billetfil uploades til din SharePoint-dokument Tickets>-mappe.
  3. 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:

  1. Fjern kommentaren i afsnittet "Send bekræftelsesmail" i scriptet.
  2. Erstat {senderUserId} med et gyldigt bruger-id med postkasseaktiveret (f.eks. en tjenestekonto).
  3. Kontrollér, at tilladelsen Mail.Send er tilføjet, og at administratoren har givet samtykke.

Oversigt over serverlogik
Forfatterserverlogik
Serverobjekter
Sådan interagerer du med Dataverse-tabeller ved hjælp af serverlogik