Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Tässä oppaassa esitellään palvelinlogiikkamallin määrittäminen ja testaaminen. Se integroi Power Pagesin Microsoft Graphiin ja SharePoint Onlineen.
Vaihe 1: Lataa mallipaketti
- Siirry GitHub-säilöön https://github.com/microsoft/power-pages-samples.
- Valitse Koodi > Lataa ZIP.
- Kun olet ladannut tiedoston, pura ZIP-tiedosto paikalliseen kansioon, esimerkiksi:
C:\PowerPages\ServerLogic - Siirry poimittuun polkuun:
samples/server-logic/sharepoint-integrationTämä kansio sisältääevent-registration.zipratkaisupaketin, 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:
- Pääsy Microsoft Entra ID:hen (Azure AD) käyttöoikeuksilla sovellusten rekisteröimiseen.
- Pääsy SharePoint Online -sivustoon (esimerkiksi https://contoso.sharepoint.com/sites/EventSite).
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
- Siirry Azure-portaaliin ja valitse Sovelluksen rekisteröinnit.
- Valitse + Uusi rekisteröinti.
- Anna nimi (esimerkiksi PowerPages–Graph-Integration).
- Valitse Vain tämän organisaation hakemiston tilit.
Note
Sinun ei tarvitse antaa uudelleenohjauksen URI-osoitetta tälle mallille.
- Valitse Rekisteröi.
Ohjelmointirajapinnan käyttöoikeuksien määrittäminen
- Siirry uudessa sovelluksessa kohtaan Ohjelmointirajapinnan käyttöoikeudet>Lisää käyttöoikeus.
- Valitse Microsoft Graph>Application -käyttöoikeudet.
- Lisää seuraavat käyttöoikeudet:
- Sites.ReadWrite.All (SharePoint-tiedostotoiminnoille)
- Mail.Send (valinnainen – tarvitaan vain, jos aiot ottaa sähköpostiosion käyttöön)
- Valitse Myönnä järjestelmänvalvojan suostumus vuokraajallesi.
Asiakassalaisuuden luominen
- Siirry kohtaan Varmenteet ja salasanat>Asiakassalaisuudet.
- Valitse + Uusi asiakasohjelman salasana.
- Kirjoita kuvaus ja valitse vanhentumisaika (esimerkiksi kuusi kuukautta).
- 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.
- Tunnista SharePoint-isäntänimi ja sivuston polku: Esimerkiksi: HOSTNAME =
contoso.sharepoint.comSITE_PATH =/sites/EventSite - Varmista, että Tiedostot-niminen tiedostokirjasto on olemassa (oletus).
Vaihe 5: Paketin käyttöönotto
Luo uusi sivusto tuomalla äskettäin ladattu sivusto GitHubista. Lisätietoja sivuston tuomisesta on artikkelissa Power-pages-solutions
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:
- Uusi tietue näkyy Dataverse-kohdassacrd69_eventregistrations.
- HTML-lipputiedosto ladataan SharePointin Tiedostot-liput > -kansioon.
- crd69_ticketurl -kenttä sisältää linkin ladattuun lipputiedostoon.
(Valinnainen) Vaihe 7: Ota sähköposti-ilmoitus käyttöön
Vahvistusviestin lähettäminen osallistujalle:
- Poista komentosarjan Lähetä vahvistussähköposti -osasta.
- Korvaa {senderUserId}kelvollinen postilaatikkoa käyttävällä käyttäjätunnuksella (esimerkiksi palvelutili).
- Varmista, että Mail.Send-käyttöoikeus lisätään ja että järjestelmänvalvojalle annetaan suostumus.
Liittyvät tiedot
Palvelinlogiikan yleiskatsaus
Laatijapalvelimen logiikka
Palvelinobjektit
Dataverse-taulukoiden käsitteleminen palvelinlogiikan avulla