Com interactuar amb el Microsoft Graph i el SharePoint mitjançant la lògica del servidor

Aquesta guia us explica la configuració i la prova de l'exemple de lògica del servidor que integra el Power Pages amb el Microsoft Graph i el SharePoint en línia.

Pas 1: baixeu el paquet d'exemple

  1. Aneu al repositori https://github.com/microsoft/power-pages-samplesde GitHub .
  2. Seleccioneu Codi > de descàrrega ZIP.
  3. Després de descarregar-lo, extreu el fitxer ZIP a una carpeta local, per exemple: C:\PowerPages\ServerLogic
  4. Aneu al camí extret: samples/server-logic/sharepoint-integration Aquesta carpeta conté el paquet de solucions event-registration.zip , que inclou els recursos del lloc del Power Pages que importareu en passos posteriors.

Alternativament, utilitzeu git clone si ho preferiu.

git clone https://github.com/microsoft/power-pages-samples.git
cd power-pages-samples/samples/server-logic/sharepoint-integration

Pas 2: Requisits previs

Abans de començar, assegureu-vos de tenir:

Pas 3: Crear i configurar l'aplicació Entra ID

Necessiteu un registre d'aplicació per permetre que el codi lògic del servidor s'autentiqui al Microsoft Graph.

Crea el registre de l'aplicació

  1. Aneu al portal de l'Azure i seleccioneu Registres d'aplicacions.
  2. Seleccioneu + Nou registre.
  3. Proporcioneu un nom (per exemple, PowerPages-Graph-Integration).
  4. Trieu Comptes només en aquest directori de l'organització.

    Nota

    No cal que proporcioneu un URI de redirecció per a aquesta mostra.

  5. Seleccioneu Registra.

Configuració de permisos de l'API

  1. A l'aplicació nova, aneu a Permisos de> l'APIAfegeix un permís.
  2. SeleccioneuPermisos de l'aplicaciódel Microsoft Graph>.
  3. Afegiu els permisos següents:
    • Sites.ReadWrite.All (per a operacions de fitxers del SharePoint)
    • Mail.Send (opcional, només és necessari si teniu previst habilitar la secció de correu electrònic)
  4. Seleccioneu Concedeix el consentiment de l'administrador per al vostre inquilí.

Crear un secret de client

  1. Aneu a Certificats i secrets Secrets>del client.
  2. Seleccioneu + Secret del client nou.
  3. Introduïu una descripció i trieu un període de caducitat (per exemple, sis mesos).
  4. Seleccioneu Afegeix i copieu el valor generat immediatament: aquest és el vostre CLIENT_SECRET.

Recolliu els valors necessaris

Des de l'aplicació de l'Azure:

  • ID de client> CLIENT_ID
  • Identificador >d'inquilí TENANT_ID
  • Secret del> client CLIENT_SECRET

Pas 4: Identifiqueu el lloc i la carpeta del SharePoint

L'script carrega els tiquets d'esdeveniment generats a un lloc del SharePoint.

  1. Identifiqueu el nom d'amfitrió i el camí del lloc del SharePoint: Per exemple: HOSTNAME = contoso.sharepoint.com SITE_PATH = /sites/EventSite
  2. Assegureu-vos que existeixi una biblioteca de documents anomenada Documents (per defecte).

Pas 5: Desplegar el paquet

  1. Creeu un lloc nou important el lloc baixat recentment des de GitHub. Per obtenir informació sobre com importar el lloc, vegeu power-pages-solutions

  2. Durant l'actualització del lloc, actualitzeu els valors de les variables d'entorn. Actualitzeu els valors següents que heu capturat en els passos anteriors:

    • ID de client
    • Identificador d'inquilí
    • Secret del client (conserveu aquest valor en un dipòsit de claus i utilitzeu-lo a la variable d'entorn. Per a les proves, podeu mantenir-lo directament a la variable d'entorn.)
    • NOM DE L'AMFITRIÓ
    • SITE_PATH

Script destacat de l'script: Secció de configuració

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"); 

Es carreguen de manera segura des de la configuració del lloc del Power Pages (variables d'entorn).

Pas 6: Prova la integració del SharePoint

L'script processa els enviaments de formularis de registre d'esdeveniments, adquireix un testimoni d'accés al Microsoft Graph, genera un bitllet HTML, el carrega al SharePoint i crea un registre al Dataverse.

S'ha destacat l'script: Crida al Microsoft Graph per al testimoni d'accés

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;
}

S'està destacant l'script: Carregant el bitllet al 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"
);

Després d'una execució correcta:

  1. Apareix un registre nou al Dataverse a crd69_eventregistrations.
  2. Es carrega un fitxer de tiquet HTML a la carpeta Entrades de documents > del SharePoint.
  3. El camp crd69_ticketurl conté l'enllaç al fitxer de tiquets carregat.

(Opcional) Pas 7: activa la notificació per correu electrònic

Per enviar un correu electrònic de confirmació a l'assistent:

  1. Descomenta la secció "Envia un correu electrònic de confirmació" de l'script.
  2. Substituïu {senderUserId} per un identificador d'usuari vàlid habilitat per a la bústia de correu (per exemple, un compte de servei).
  3. Assegureu-vos que el permís de Mail.Send estigui afegit i que l'administrador hagi consentit.

Informació general de la lògica del servidor
Lògica del servidor d'autor
Objectes del servidor
Com interactuar amb taules del Dataverse mitjançant la lògica del servidor