Ohjeet Microsoft Graphin ja SharePointin kanssa palvelinlogiikan avulla

Tässä oppaassa esitellään palvelinlogiikkamallin määrittäminen ja testaaminen. Se integroi Power Pagesin Microsoft Graphiin ja SharePoint Onlineen.

Vaihe 1: Lataa mallipaketti

  1. Siirry GitHub-säilöön https://github.com/microsoft/power-pages-samples.
  2. Valitse Koodi > Lataa ZIP.
  3. Kun olet ladannut tiedoston, pura ZIP-tiedosto paikalliseen kansioon, esimerkiksi: C:\PowerPages\ServerLogic
  4. Siirry poimittuun polkuun: samples/server-logic/sharepoint-integration Tämä kansio sisältää event-registration.zip ratkaisupaketin, joka sisältää Power Pages -sivuston resurssit, jotka tuot myöhemissä vaiheissa.

Vaihtoehtoisesti voit käyttää Git-kloonausta, jos haluat.

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

Vaihe 2: Edellytykset

Ennen kuin aloitat, varmista, että sinulla on:

Vaihe 3: Entra ID -sovelluksen luominen ja määrittäminen

Tarvitset sovelluksen rekisteröinnin, jotta palvelimen logiikkakoodi voi todentautua Microsoft Graphissa.

Sovelluksen rekisteröinnin luominen

  1. Siirry Azure-portaaliin ja valitse Sovelluksen rekisteröinnit.
  2. Valitse + Uusi rekisteröinti.
  3. Anna nimi (esimerkiksi PowerPages–Graph-Integration).
  4. Valitse Vain tämän organisaation hakemiston tilit.

    Note

    Sinun ei tarvitse antaa uudelleenohjauksen URI-osoitetta tälle mallille.

  5. Valitse Rekisteröi.

Ohjelmointirajapinnan käyttöoikeuksien määrittäminen

  1. Siirry uudessa sovelluksessa kohtaan Ohjelmointirajapinnan käyttöoikeudet>Lisää käyttöoikeus.
  2. Valitse Microsoft Graph>Application -käyttöoikeudet.
  3. Lisää seuraavat käyttöoikeudet:
    • Sites.ReadWrite.All (SharePoint-tiedostotoiminnoille)
    • Mail.Send (valinnainen – tarvitaan vain, jos aiot ottaa sähköpostiosion käyttöön)
  4. Valitse Myönnä järjestelmänvalvojan suostumus vuokraajallesi.

Asiakassalaisuuden luominen

  1. Siirry kohtaan Varmenteet ja salasanat>Asiakassalaisuudet.
  2. Valitse + Uusi asiakasohjelman salasana.
  3. Kirjoita kuvaus ja valitse vanhentumisaika (esimerkiksi kuusi kuukautta).
  4. Valitse Lisää ja kopioi luotu arvo heti – tämä on CLIENT_SECRET.

Vaadittujen arvojen kerääminen

Azure-sovelluksestasi:

  • Asiakastunnus> CLIENT_ID
  • Vuokraajan tunnus> TENANT_ID
  • Asiakassalasana> CLIENT_SECRET

Vaihe 4: Tunnista SharePoint-sivusto ja -kansio

Komentosarja lataa luotuja tapahtumapyyntöjä SharePoint-sivustoon.

  1. Tunnista SharePoint-isäntänimi ja sivuston polku: Esimerkiksi: HOSTNAME = contoso.sharepoint.com SITE_PATH = /sites/EventSite
  2. Varmista, että Tiedostot-niminen tiedostokirjasto on olemassa (oletus).

Vaihe 5: Paketin käyttöönotto

  1. Luo uusi sivusto tuomalla äskettäin ladattu sivusto GitHubista. Lisätietoja sivuston tuomisesta on artikkelissa Power-pages-solutions

  2. Päivitä sivuston päivityksen aikana ympäristömuuttujien arvot. Päivitä seuraavat arvot, jotka tallensit edellisissä vaiheissa:

    • Asiakastunnus
    • Vuokraajan tunnus
    • Client Secret (Säilytä tämä arvo avainsäilössä ja käytä sitä ympäristömuuttujassa. Testausta varten voit pitää sen suoraan ympäristömuuttujassa.)
    • ISÄNTÄNIMI
    • SITE_PATH

Komentosarjan korostus: Määritysosio

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

Ne ladataan turvallisesti Power Pagesin sivuston asetuksista (ympäristömuuttujat).

Vaihe 6: SharePoint-integroinnin testaaminen

Komentosarja käsittelee tapahtuman rekisteröintilomakkeen lähetyksen, hankkii Microsoft Graph -käyttöoikeustietueen, luo HTML-palvelupyynnön, lataa sen SharePointiin ja luo tietueen Dataverseen.

Komentosarjan korostus: Microsoft Graphin kutsuminen käyttöoikeustietuetta varten

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

Komentosarjan korostus: lipun lataaminen SharePointiin

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

Onnistuneen suorituksen jälkeen:

  1. Uusi tietue näkyy Dataverse-kohdassacrd69_eventregistrations.
  2. HTML-lipputiedosto ladataan SharePointin Tiedostot-liput > -kansioon.
  3. crd69_ticketurl -kenttä sisältää linkin ladattuun lipputiedostoon.

(Valinnainen) Vaihe 7: Ota sähköposti-ilmoitus käyttöön

Vahvistusviestin lähettäminen osallistujalle:

  1. Poista komentosarjan Lähetä vahvistussähköposti -osasta.
  2. Korvaa {senderUserId}kelvollinen postilaatikkoa käyttävällä käyttäjätunnuksella (esimerkiksi palvelutili).
  3. Varmista, että Mail.Send-käyttöoikeus lisätään ja että järjestelmänvalvojalle annetaan suostumus.

Palvelinlogiikan yleiskatsaus
Laatijapalvelimen logiikka
Palvelinobjektit
Dataverse-taulukoiden käsitteleminen palvelinlogiikan avulla