Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten przewodnik przeprowadzi Cię przez proces konfigurowania i testowania przykładu logiki serwera, który integruje usługi Power Pages z usługami Microsoft Graph i SharePoint Online.
Krok 1. Pobieranie przykładowego pakietu
- Przejdź do repozytorium https://github.com/microsoft/power-pages-samplesGitHub .
- Wybierz kolejno pozycje Kod > Pobierz plik ZIP.
- Po pobraniu wyodrębnij plik ZIP do folderu lokalnego, na przykład:
C:\PowerPages\ServerLogic - Przejdź do wyodrębnionej ścieżki:
samples/server-logic/sharepoint-integrationTen folder zawieraevent-registration.zippakiet rozwiązania, który zawiera zasoby witryny Power Pages, które zostaną zaimportowane w kolejnych krokach.
Możesz też użyć polecenia git clone, jeśli wolisz.
git clone https://github.com/microsoft/power-pages-samples.git
cd power-pages-samples/samples/server-logic/sharepoint-integration
Krok 2. Wymagania wstępne
Przed rozpoczęciem upewnij się, że masz następujące elementy:
- Dostęp do usługi Microsoft Entra ID (Azure AD) z uprawnieniami do rejestrowania aplikacji.
- Dostęp do witryny usługi SharePoint Online (na przykład https://contoso.sharepoint.com/sites/EventSite).
Krok 3. Tworzenie i konfigurowanie aplikacji Entra ID
Potrzebujesz rejestracji aplikacji, aby zezwolić kodowi logiki serwera na uwierzytelnianie w programie Microsoft Graph.
Tworzenie rejestracji aplikacji
- Przejdź do witryny Azure Portal i wybierz pozycję Rejestracje aplikacji.
- Wybierz + Nowa rejestracja.
- Podaj nazwę (na przykład PowerPages—Graph-Integration).
- Wybierz Konta tylko w tym katalogu organizacyjnym.
Uwaga / Notatka
Nie musisz podawać adresu URI przekierowania dla tego przykładu.
- Wybierz pozycję Zarejestruj.
Konfiguracja uprawnień API
- W nowej aplikacji przejdź do pozycji Uprawnienia interfejsu API>Dodaj uprawnienie.
- Wybierz Microsoft Graph>Uprawnienia aplikacji.
- Dodaj następujące uprawnienia:
- Sites.ReadWrite.All (dla operacji na plikach programu SharePoint)
- Mail.Send (opcjonalnie — wymagane tylko wtedy, gdy planujesz włączyć sekcję wiadomości e-mail)
- Wybierz Udziel zgody administratora dla swojego dzierżawcy.
Utwórz tajny kod klienta
- Przejdź do Certyfikaty i tajemnice>Tajniki klienta.
- Wybierz pozycję + Nowe wpisy tajne klienta.
- Wprowadź opis i wybierz okres wygaśnięcia (na przykład sześć miesięcy).
- Wybierz pozycję Dodaj i skopiuj wygenerowaną wartość natychmiast — jest to CLIENT_SECRET.
Zbieranie wymaganych wartości
Z poziomu aplikacji platformy Azure:
- Identyfikator klienta> CLIENT_ID
- Identyfikator dzierżawcy> TENANT_ID
- Client Secret (Tajny klienta)> CLIENT_SECRET
Krok 4. Identyfikowanie witryny i folderu programu SharePoint
Skrypt przekazuje wygenerowane bilety zdarzeń na witrynę programu SharePoint.
- Zidentyfikuj nazwę hosta programu SharePoint i ścieżkę witryny: na przykład: HOSTNAME =
contoso.sharepoint.comSITE_PATH =/sites/EventSite - Upewnij się, że istnieje biblioteka dokumentów o nazwie Dokumenty (ustawienie domyślne).
Krok 5. Wdrażanie pakietu
Utwórz nową witrynę, importując ostatnio pobraną witrynę z usługi GitHub. Aby dowiedzieć się, jak zaimportować witrynę, zobacz power-pages-solutions
Podczas aktualizacji strony zaktualizuj wartości zmiennych środowiskowych. Zaktualizuj następujące wartości przechwycone w poprzednich krokach:
- identyfikator klienta
- Identyfikator najemcy
- Klucz tajny klienta (zachowaj tę wartość w magazynie kluczy i użyj jej w zmiennej środowiskowej. Na potrzeby testowania można zachować go bezpośrednio w zmiennej środowiskowej.
- NAZWA HOSTA
- SITE_PATH
Wyróżnienie w skrypcie: sekcja konfiguracji
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");
Są one bezpiecznie ładowane z ustawień witryny Power Pages(zmiennych środowiskowych).
Krok 6. Testowanie integracji z programem SharePoint
Skrypt przetwarza przesyłanie formularzy rejestracji zdarzeń, uzyskuje token dostępu programu Microsoft Graph, generuje bilet HTML, przekazuje go do programu SharePoint i tworzy rekord w usłudze Dataverse.
Wyróżnienie skryptu: wywoływanie programu Microsoft Graph na potrzeby tokenu dostępu
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;
}
Wyróżnienie skryptu: wysyłanie zgłoszenia do 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 pomyślnym uruchomieniu:
- Nowy rekord pojawi się w Dataverse pod crd69_eventregistrations.
- Plik biletu HTML jest przekazywany do folderu Dokumenty SharePoint > Bilety.
- Pole crd69_ticketurl zawiera link do przekazanego pliku biletu.
(Opcjonalnie) Krok 7. Włączanie powiadomienia e-mail
Aby wysłać wiadomość e-mail z potwierdzeniem do uczestnika:
- Usuń komentarz z sekcji "Wyślij wiadomość e-mail z potwierdzeniem" w skrycie.
- Zastąp element {senderUserId} prawidłowym identyfikatorem użytkownika z włączoną skrzynką pocztową (na przykład kontem usługi).
- Upewnij się, że dodano uprawnienie Mail.Send i udzielono zgody administratora.
Informacje pokrewne
Omówienie logiki serwera
Tworzenie logiki serwera
obiekty serwera
Jak wchodzić w interakcje z tabelami Dataverse przy użyciu logiki serwera