Pastaba.
Prieigai prie šio puslapio reikalingas įgaliojimas. Galite bandyti prisijungti arba pakeisti katalogus.
Prieigai prie šio puslapio reikalingas įgaliojimas. Galite bandyti pakeisti katalogus.
Šiame vadove paaiškinama, kaip nustatyti ir išbandyti serverio logikos pavyzdį, kuris integruoja "Power Pages" su "Microsoft Graph" ir "SharePoint Online".
1 veiksmas: atsisiųskite paketo pavyzdį
- Eikite į "GitHub" saugyklą https://github.com/microsoft/power-pages-samples.
- Pasirinkite Kodo > atsisiuntimas ZIP.
- Atsisiuntę išskleiskite ZIP failą į vietinį aplanką, pavyzdžiui:
C:\PowerPages\ServerLogic - Eikite į ištrauktą kelią:
samples/server-logic/sharepoint-integrationŠiame aplankeevent-registration.zipyra sprendimo paketas, kuriame yra "Power Pages" svetainės ištekliai, kuriuos importuosite atlikdami vėlesnius veiksmus.
Arba, jei norite, naudokite git clone.
git clone https://github.com/microsoft/power-pages-samples.git
cd power-pages-samples/samples/server-logic/sharepoint-integration
2 žingsnis: Būtinosios sąlygos
Prieš pradėdami įsitikinkite, kad turite:
- Prieiga prie "Microsoft Entra ID" ("Azure AD") su teise registruoti programas.
- Prieiga prie "SharePoint Online" svetainės (pvz., https://contoso.sharepoint.com/sites/EventSite).
3 veiksmas: sukurkite ir sukonfigūruokite "Entra ID" programą
Jums reikia programos registracijos, kad serverio loginis kodas galėtų autentifikuotis naudojant Microsoft Graph.
Sukurkite programėlės registraciją
- Eikite į "Azure" portalą ir pasirinkite Programų registracijos.
- Pasirinkite + Nauja registracija.
- Pateikite pavadinimą (pvz., PowerPages-Graph-Integration).
- Pasirinkite Tik šio organizacijos katalogo paskyros.
Pastaba.
Jums nereikia pateikti šio pavyzdžio peradresavimo URI.
- Pasirinkite Registruoti.
Konfigūruoti API teises
- Naujoje programoje eikite į API leidimai>Leidimo pridėjimas.
- Pasirinkite "Microsoft Graph>"programos teises.
- Įtraukite šias teises:
- Sites.ReadWrite.All (SharePoint failų operacijoms)
- Mail.Send (neprivaloma – reikalinga tik tuo atveju, jei planuojate įjungti el. pašto skyrių)
- Pasirinkite Suteikti nuomotojo administratoriaus sutikimą .
Kliento paslapties kūrimas
- Eikite į Sertifikatai ir paslaptys>Kliento paslaptys.
- Pasirinkite + Nauja kliento paslaptis.
- Įveskite aprašą ir pasirinkite galiojimo laikotarpį (pvz., šeši mėnesiai).
- Pasirinkite Įtraukti ir nedelsdami nukopijuokite sugeneruotą reikšmę – tai jūsų CLIENT_SECRET.
Surinkite reikiamas vertes
Iš "Azure" programos:
- Kliento ID> CLIENT_ID
- Nuomotojo ID> TENANT_ID
- Kliento paslaptis> CLIENT_SECRET
4 veiksmas: "SharePoint" svetainės ir aplanko identifikavimas
Scenarijus nusiunčia sugeneruotus įvykių bilietus į "SharePoint" svetainę.
- Nustatykite "SharePoint" pagrindinio kompiuterio pavadinimą ir svetainės kelią: pvz.: HOSTNAME =
contoso.sharepoint.comSITE_PATH =/sites/EventSite - Įsitikinkite, kad yra dokumentų biblioteka, pavadinta Dokumentai (numatytasis).
5 veiksmas: paketo diegimas
Sukurkite naują svetainę importuodami neseniai atsisiųstą svetainę iš "GitHub". Norėdami sužinoti, kaip importuoti svetainę, žr. power-pages-solutions
Atnaujindami svetainę atnaujinkite aplinkos kintamųjų reikšmes. Atnaujinkite šias reikšmes, kurias užfiksavote atlikdami ankstesnius veiksmus:
- Kliento ID
- Nuomotojo ID
- Kliento paslaptis (Laikykite šią reikšmę raktų saugykloje ir naudokite ją aplinkos kintamajame. Norėdami testuoti, galite jį laikyti tiesiogiai aplinkos kintamajame.)
- PAGRINDINIO KOMPIUTERIO PAVADINIMAS
- SITE_PATH
Scenarijaus paryškinimas: konfigūracijos skyrius
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");
Jie saugiai įkeliami iš "Power Pages" svetainės parametrų (aplinkos kintamųjų).
6 veiksmas: išbandykite "SharePoint" integravimą
Scenarijus apdoroja įvykių registracijos formų pateikimus, gauna "Microsoft Graph" prieigos atpažinimo ženklą, sugeneruoja HTML bilietą, įkelia jį į "SharePoint" ir sukuria įrašą "Dataverse".
Scenarijaus paryškinimas: Microsoft Graph iškviečiamas prieigos atpažinimo ženklas
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;
}
Scenarijaus paryškinimas: bilieto nusiuntimas į "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"
);
Po sėkmingo bėgimo:
- Naujas įrašas rodomas "Dataverse " dalyje crd69_eventregistrations.
- HTML bilieto failas įkeliamas į " SharePoint" dokumentų > bilietų aplanką.
- Lauke crd69_ticketurl yra nuoroda į įkeltą bilieto failą.
(Pasirinktinai) 7 veiksmas: įgalinkite pranešimą el. paštu
Norėdami išsiųsti dalyviui patvirtinimo el. laišką:
- Panaikinkite scenarijaus skilties "Siųsti patvirtinimo el. laišką" komentarą.
- Pakeiskite {senderUserId} galiojančiu pašto dėžutės vartotojo ID (pvz., tarnybos abonementu).
- Įsitikinkite, kad Mail.Send leidimas yra pridėtas ir administratorius sutiko.
Susijusi informacija
Serverio logikos apžvalga
Autoriaus serverio logika
Serverio objektai
Kaip sąveikauti su "Dataverse" lentelėmis naudojant serverio logiką