Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa guida illustra come configurare e testare l'esempio di logica del server che integra Power Pages con Microsoft Graph e SharePoint online.
Passaggio 1: Scaricare il pacchetto di esempio
- Vai al repository GitHub https://github.com/microsoft/power-pages-samples.
- Selezionare Codice > Scarica ZIP.
- Dopo il download, estrarre il file ZIP in una cartella locale, ad esempio:
C:\PowerPages\ServerLogic - Passare al percorso estratto:
samples/server-logic/sharepoint-integrationQuesta cartella contiene il pacchetto dellaevent-registration.zipsoluzione, che include le risorse del sito di Power Pages che verranno importate nei passaggi successivi.
In alternativa, usare git clone se si preferisce.
git clone https://github.com/microsoft/power-pages-samples.git
cd power-pages-samples/samples/server-logic/sharepoint-integration
Passaggio 2: Prerequisiti
Prima di iniziare, assicurarsi di avere:
- Accesso a Microsoft Entra ID (Azure AD) con l'autorizzazione per registrare le app.
- Accesso a un sito di SharePoint Online (ad esempio, https://contoso.sharepoint.com/sites/EventSite).
Passaggio 3: Creare e configurare l'applicazione Entra ID
È necessaria una registrazione dell'app per consentire al codice della logica del server di eseguire l'autenticazione in Microsoft Graph.
Creare la registrazione dell'app
- Passare al portale di Azure e selezionare Registrazioni app.
- Seleziona + Nuova registrazione.
- Specificare un nome( ad esempio, PowerPages-Graph-Integration).
- Scegli Account solo in questa directory organizzativa.
Annotazioni
Non è necessario fornire un URI di reindirizzamento per questo esempio.
- Selezionare Registrazione.
Configurare le autorizzazioni dell'API
- Nella nuova app passare a Autorizzazioni> APIAggiungere un'autorizzazione.
- SelezionareAutorizzazioni dell'applicazione>.
- Aggiungere le autorizzazioni seguenti:
- Sites.ReadWrite.All (per le operazioni dei file di SharePoint)
- Mail.Send (facoltativo: necessario solo se si prevede di abilitare la sezione di posta elettronica)
- Selezionare Concedi consenso amministratore per il tenant.
Creare un segreto del client
- Passare a Certificati e segreti>Segreti client.
- Seleziona + Nuovo segreto client.
- Immettere una descrizione e scegliere un periodo di scadenza (ad esempio, sei mesi).
- Selezionare Aggiungi e copiare immediatamente il valore generato . Si tratta del CLIENT_SECRET.
Raccogliere i valori obbligatori
Dall'app Azure:
- ID> client CLIENT_ID
- ID tenant>TENANT_ID
- Segreto client>CLIENT_SECRET
Passaggio 4: Identificare il sito e la cartella di SharePoint
Lo script carica i ticket di evento generati in un sito di SharePoint.
- Identificare il nome host e il percorso del sito di SharePoint: ad esempio: HOSTNAME =
contoso.sharepoint.comSITE_PATH =/sites/EventSite - Verificare che esista una raccolta documenti denominata Documenti (impostazione predefinita).
Passaggio 5: Distribuire il pacchetto
Creare un nuovo sito importando il sito scaricato di recente da GitHub. Per informazioni su come importare il sito, vedere power-pages-solutions
Durante l'aggiornamento del sito, aggiornare i valori per le variabili di ambiente. Aggiornare i valori seguenti acquisiti nei passaggi precedenti:
- Client ID
- ID tenant
- Segreto client (mantenere questo valore in un archivio di chiavi e usarlo nella variabile di ambiente. Per i test, è possibile mantenerlo direttamente nella variabile di ambiente.)
- NOME HOST
- SITE_PATH
Evidenziazione dello script: sezione configurazione
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");
Questi vengono caricati in modo sicuro dalle impostazioni del sito di Power Pages (variabili di ambiente).
Passaggio 6: Testare l'integrazione di SharePoint
Lo script elabora gli invii di moduli di registrazione eventi, acquisisce un token di accesso di Microsoft Graph, genera un ticket HTML, lo carica in SharePoint e crea un record in Dataverse.
Evidenziazione dello script: chiamata a Microsoft Graph per il token di accesso
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;
}
Evidenziazione dello script: caricamento di un ticket in 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"
);
Dopo un'esecuzione riuscita:
- Un nuovo record viene visualizzato in Dataverse in crd69_eventregistrations.
- Un file di ticket HTML viene caricato nella cartella Documenti di > SharePoint.
- Il campo crd69_ticketurl contiene il collegamento al file del ticket caricato.
(Facoltativo) Passaggio 7: Abilitare la notifica tramite posta elettronica
Per inviare un messaggio di posta elettronica di conferma al partecipante:
- Rimuovere il commento dalla sezione "Invia messaggio di posta elettronica di conferma" nello script.
- Sostituire {senderUserId} con un ID utente valido abilitato alla cassetta postale (ad esempio, un account di servizio).
- Verificare che l'autorizzazione Mail.Send sia stata aggiunta e che l'amministratore abbia acconsentito.
Informazioni pertinenti
Panoramica della logica del server
Crea la logica del server
Oggetti server
Come interagire con le tabelle di Dataverse usando la logica del server