Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este guia explica como configurar e testar o exemplo de lógica do servidor que integra o Power Pages ao Microsoft Graph e ao SharePoint online.
Etapa 1: Baixar o pacote de exemplo
- Vá para o repositório https://github.com/microsoft/power-pages-samplesGitHub.
- Selecione Código > Baixar ZIP.
- Depois de baixar, extraia o arquivo ZIP para uma pasta local, por exemplo:
C:\PowerPages\ServerLogic - Navegue até o caminho extraído:
samples/server-logic/sharepoint-integrationEssa pasta contém o pacote deevent-registration.zipsolução, que inclui os recursos do site do Power Pages que você importará em etapas posteriores.
Como alternativa, utilize git clone se for de sua preferência.
git clone https://github.com/microsoft/power-pages-samples.git
cd power-pages-samples/samples/server-logic/sharepoint-integration
Etapa 2: Pré-requisitos
Antes de começar, verifique se você tem:
- Acesso ao Microsoft Entra ID (Azure AD) com permissão para registrar aplicativos.
- Acesso a um site do SharePoint Online (por exemplo, https://contoso.sharepoint.com/sites/EventSite).
Etapa 3: Criar e configurar o aplicativo Entra ID
Você precisa de um registro de aplicativo para permitir que o código lógico do servidor se autentique no Microsoft Graph.
Criar o registro de aplicativo
- Acesse o Portal do Azure e selecione Registros de aplicativo.
- Selecione + Novo registro.
- Forneça um nome (por exemplo, PowerPages-Graph-Integration).
- Escolha Contas somente neste diretório organizacional.
Observação
Você não precisa fornecer um URI de redirecionamento para este exemplo.
- Selecione Registrar.
Configure as permissões da API
- No novo aplicativo, vá para Permissões> de APIAdicionar uma permissão.
- Selecioneas permissões de Aplicativo do >.
- Adicione as seguintes permissões:
- Sites.ReadWrite.All (para operações de arquivos do SharePoint)
- Mail.Send (opcional – necessário somente se você planeja habilitar a seção de email)
- Selecione Conceder consentimento do administrador para seu locatário.
Criar um segredo do cliente
- Vá para Certificados e segredos>Segredos do Cliente.
- Selecione + Novo segredo do cliente.
- Insira uma descrição e escolha um período de expiração (por exemplo, seis meses).
- Selecione Adicionar e copie o valor gerado imediatamente— este é o CLIENT_SECRET.
Coletar valores necessários
Em seu aplicativo do Azure:
- ID do cliente> CLIENT_ID
- ID do locatário> TENANT_ID
- Segredo do Cliente> CLIENT_SECRET
Etapa 4: Identificar seu site e pasta do SharePoint
O script carrega ingressos de evento gerados para um site do SharePoint.
- Identificar o nome do host e o caminho do site do SharePoint: Por exemplo: HOSTNAME =
contoso.sharepoint.comSITE_PATH =/sites/EventSite - Verifique se existe uma biblioteca de documentos chamada Documentos (padrão).
Etapa 5: Implantar o pacote
Crie um novo site importando o site baixado recentemente do GitHub. Para saber como importar o site, consulte power-pages-solutions
Durante a atualização do site, atualize os valores das variáveis de ambiente. Atualize os seguintes valores capturados nas etapas anteriores:
- ID do cliente
- ID do locatário
- Segredo do cliente (mantenha esse valor em um cofre de chaves e use-o na variável de ambiente. Para teste, você pode mantê-lo diretamente na variável de ambiente.)
- HOSTNAME
- SITE_PATH
Realce do script: Seção de configuração
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");
Elas são carregadas com segurança das configurações do site do Power Pages (variáveis de ambiente).
Etapa 6: Testar a integração do SharePoint
O script processa envios de formulário de registro de evento, adquire um token de acesso do Microsoft Graph, gera um tíquete HTML, carrega-o no SharePoint e cria um registro no Dataverse.
Realce do script: Chamando o Microsoft Graph para o token de acesso
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;
}
Realce do script: Upload de ticket no 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"
);
Após uma execução bem-sucedida:
- Um novo registro aparece em Dataverse sob crd69_eventregistrations.
- Um arquivo de tíquete HTML é carregado na pasta Tíquetes > de Documentos do SharePoint .
- O campo crd69_ticketurl contém o link para o arquivo de tíquete carregado.
(Opcional) Etapa 7: Habilitar a notificação por email
Para enviar um email de confirmação ao participante:
- Descompacte a seção "Enviar email de confirmação" no script.
- Substitua {senderUserId} por uma ID de usuário válida habilitada para caixa de correio (por exemplo, uma conta de serviço).
- Verifique se a permissão Mail.Send foi adicionada e consentida pelo administrador.
Informações relacionadas
Visão geral da lógica do servidor
Lógica do servidor Author
Objetos do servidor
Como interagir com tabelas do Dataverse usando a lógica do servidor