Slik samhandler du med Microsoft Graph og SharePoint ved hjelp av serverlogikk

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

  1. Gå til GitHub-repositoriet https://github.com/microsoft/power-pages-samples.
  2. Velg Last ned kode > zip.
  3. Når du har lastet ned, kan du pakke ut ZIP-filen til en lokal mappe, for eksempel: C:\PowerPages\ServerLogic
  4. Gå til den utpakkede banen: samples/server-logic/sharepoint-integration Denne mappen inneholder løsningspakken event-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:

Trinn 3: Opprette og konfigurere Entra ID-programmet

Du trenger en appregistrering for å tillate at serverlogikkkoden godkjennes mot Microsoft Graph.

Opprett appregistreringen

  1. Gå til Azure Portal, og velg Appregistreringer.
  2. Velg + Ny registrering.
  3. Angi et navn (for eksempel PowerPages-Graph-Integration).
  4. Velg bare kontoer i denne organisasjonskatalogen.

    Note

    Du trenger ikke å oppgi en omadresserings-URI for dette eksemplet.

  5. Velg Registrer.

Konfigurere API-tillatelser

  1. Gå til API-tillatelser>legg til en tillatelse i den nye appen.
  2. VelgMicrosoft Graph-programtillatelser>.
  3. Legg til følgende tillatelser:
    • Sites.ReadWrite.All (for SharePoint-filoperasjoner)
    • Mail.Send (valgfritt – bare nødvendig hvis du planlegger å aktivere e-postinndelingen)
  4. Velg Gi administratortillatelse for leietakeren din.

Opprette en klienthemmelighet

  1. Gå til Sertifikater & hemmeligheter>Klient hemmeligheter.
  2. Velg + Ny klienthemmelighet.
  3. Skriv inn en beskrivelse, og velg en utløpsperiode (for eksempel seks måneder).
  4. 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.

  1. Identifiser SharePoint-vertsnavnet og områdebanen: Eksempel: HOSTNAME = contoso.sharepoint.com SITE_PATH = /sites/EventSite
  2. Kontroller at det finnes et dokumentbibliotek kalt Dokumenter (standard).

Trinn 5: Distribuere pakken

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

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

  1. En ny oppføring vises i Dataverse under crd69_eventregistrations.
  2. En HTML-billettfil lastes opp til Mappen Forelegg for SharePoint-dokumenter>.
  3. Feltet crd69_ticketurl inneholder koblingen til den opplastede billettfilen.

(Valgfritt) Trinn 7: Aktivere e-postvarsling

Slik sender du en bekreftelses-e-post til deltakeren:

  1. Komprimer «Send bekreftelses-e-post»- delen i skriptet.
  2. Erstatt {senderUserId} med en gyldig bruker-ID med postboksaktivert (for eksempel en tjenestekonto).
  3. Sørg for at E-post.Send-tillatelse legges til og administratorsamtykkes.

Oversikt over serverlogikk
Redigeringsserverlogikk
Serverobjekter
Slik samhandler du med dataverse tabeller ved hjelp av serverlogikk