Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este guia orienta você na configuração e teste do exemplo de lógica de servidor que integra o Power Pages com o Microsoft Graph e o SharePoint online.
Etapa 1: Baixe o pacote de exemplo
- Vá para o repositório https://github.com/microsoft/power-pages-samplesGitHub .
- Selecione Código > Download ZIP.
- Após o download, extraia o arquivo ZIP para uma pasta local, por exemplo:
C:\PowerPages\ServerLogic - Navegue até o caminho extraído:
samples/server-logic/sharepoint-integrationEsta 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, pode utilizar git clone, se preferir.
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, certifique-se de que:
- 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 seja autenticado no Microsoft Graph.
Criar o registo de aplicações
- Vá para o Portal do Azure e selecione Registros de aplicativos.
- Selecione + Novo registo.
- Forneça um nome (por exemplo, PowerPages-Graph-Integration).
- Escolha Contas apenas neste diretório organizacional.
Observação
Não é necessário fornecer um URI de redirecionamento para este exemplo.
- Selecione Register.
Configurar permissões de API
- No novo aplicativo, vá para Permissões> de APIAdicionar uma permissão.
- SelecionePermissões do Aplicativo>.
- Adicione as seguintes permissões:
- Sites.ReadWrite.All (para operações em ficheiros do SharePoint)
- Mail.Send (opcional – apenas necessário se você planeja ativar a seção de e-mail)
- Selecione Conceder consentimento de administrador para seu locatário.
Criar um segredo do cliente
- Vá para Certificados & segredos>Segredos do cliente.
- Selecione + Novo segredo do cliente.
- Introduza uma descrição e escolha um período de validade (por exemplo, seis meses).
- Selecione Adicionar e copie o valor gerado imediatamente — esta é a sua CLIENT_SECRET.
Coletar os valores necessários
A partir da sua aplicação do Azure:
- ID do Cliente> CLIENT_ID
- ID do Inquilino> TENANT_ID
- Segredo do Cliente> SEGREDO_DO_CLIENTE
Etapa 4: Identificar o site e a pasta do SharePoint
O script carrega tíquetes de eventos gerados para um site do SharePoint.
- Identifique seu nome de host do SharePoint e caminho do site: 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 para variáveis de ambiente. Atualize os seguintes valores capturados nas etapas anteriores:
- ID de Cliente
- ID do Inquilino
- Segredo do Cliente (Mantenha esse valor em um cofre de chaves e use-o na variável de ambiente. Para testes, você pode mantê-lo diretamente na variável de ambiente.)
- HOSTNAME
- SITE_PATH
Destaque do script: seção 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");
Eles são carregados com segurança a partir 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 eventos, adquire um token de acesso do Microsoft Graph, gera um tíquete HTML, carrega-o no SharePoint e cria um registro no Dataverse.
Destaque do script: Chamando o Microsoft Graph para 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;
}
Destaque do script: Enviando bilhete para o 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 no Dataverse em crd69_eventregistrations.
- Um ficheiro de pedido de suporte HTML é carregado para a sua pasta Documentos do SharePoint > Pedidos de suporte.
- O campo crd69_ticketurl contém o link para o arquivo de ticket carregado.
(Opcional) Etapa 7: Ativar a notificação por e-mail
Para enviar um e-mail de confirmação ao participante:
- Descomente a seção "Enviar e-mail de confirmação" no script.
- Substitua {senderUserId} por um ID de usuário habilitado para caixa de correio válido (por exemplo, uma conta de serviço).
- Verifique se a permissão Mail.Send foi adicionada e consentida pelo administrador.
Informações adicionais
Visão geral da lógica do servidor
Lógica do servidor de autor
Objetos de servidor
Como interagir com tabelas Dataverse usando a lógica do servidor