Exercício – Acessar eventos do calendário de um usuário usando o Microsoft Graph
Vamos usar todos os conceitos discutidos até esse ponto e fazer alterações no aplicativo de exemplo para acessar os eventos de calendário.
Localize o arquivo index.html no editor de código. Adicione o seguinte código HTML na marca
<main>
logo antes de sua marca de</main>
fechamento.<button id="btnShowEvents" style="display: none;" onclick="displayEvents();">Show events</button> <div id="eventWrapper" style="display: none;"> <p>Your events retrieved from Microsoft Graph for the upcoming week:</p> <ul id="events"></ul> </div>
Localize o arquivo graph.js no editor. Adicione uma nova função para obter os eventos de calendário do usuário conectado para a próxima semana usando o ponto de extremidade Microsoft Graph API
/me/calendarView
. Você chamará essa função degetEvents()
.Adicione o seguinte código ao final do arquivo:
async function getEvents() { ensureScope('Calendars.read'); const dateNow = new Date(); const dateNextWeek = new Date(); dateNextWeek.setDate(dateNextWeek.getDate() + 7); const query = `startDateTime=${dateNow.toISOString()}&endDateTime=${dateNextWeek.toISOString()}`; return await graphClient .api('/me/calendarView').query(query) .select('subject,start,end') .orderby(`start/DateTime`) .get(); }
Localize o arquivo ui.js e adicione uma nova função para exibir os eventos de calendário recebidos do Microsoft Graph no elemento de lista. Você chamará essa função de
displayEvents()
.Adicione o seguinte código ao final do arquivo:
async function displayEvents() { var events = await getEvents(); if (!events || events.value.length < 1) { var content = document.getElementById('content'); var noItemsMessage = document.createElement('p'); noItemsMessage.innerHTML = `No events for the coming week!`; content.appendChild(noItemsMessage) } else { var wrapperShowEvents = document.getElementById('eventWrapper'); wrapperShowEvents.style = "display: block"; const eventsElement = document.getElementById('events'); eventsElement.innerHTML = ''; events.value.forEach(event => { var eventList = document.createElement('li'); eventList.innerText = `${event.subject} - From ${new Date(event.start.dateTime).toLocaleString()} to ${new Date(event.end.dateTime).toLocaleString()} `; eventsElement.appendChild(eventList); }); } var btnShowEvents = document.getElementById('btnShowEvents'); btnShowEvents.style = "display: none"; }
No mesmo arquivo ui.js, atualize a função
displayUI()
para exibir o botão Mostrar eventos somente na autorização bem-sucedida.Adicione o seguinte código ao final da função
displayUI()
:var btnShowEvents = document.getElementById('btnShowEvents'); btnShowEvents.style = "display: block";
Agora que você adicionou todas as outras funções e snippets de código aos eventos de um usuário conectado para a próxima semana, a próxima etapa é executar o aplicativo localmente.
Execute o aplicativo
Para executar e testar o aplicativo, você precisará adicionar alguns eventos de calendário ao seu calendário usando o Microsoft Outlook ou o Microsoft Teams. Os eventos devem ficar dentro de um período de uma semana.
Dica
Para esta etapa, verifique se você tem o Node.js instalado em seu computador.
É hora de ver seu aplicativo ser executado localmente.
Na janela do terminal, vá para a pasta do projeto em que o código-fonte está localizado.
Execute o script a seguir na linha de comando para iniciar seu aplicativo localmente abrindo
http://localhost:8080
no navegador.npm start
Se o aplicativo estiver configurado corretamente, você verá um botão de entrada.
Inicie sessão com uma conta no mesmo inquilino de programador do Microsoft 365 utilizado na unidade 2, onde registou a aplicação Microsoft Entra.
Depois de entrar com êxito, você será solicitado a dar consentimento.
Selecione Aceitar para dar consentimento para que o aplicativo realize operações para o usuário.
Depois que você consentir, o aplicativo tentará obter um token de acesso usando as informações da conta validada. A Biblioteca de Autenticação da Microsoft lida com esta etapa para você.
Depois que o token estiver de volta no aplicativo, uma solicitação GET será feita para o ponto de extremidade
/me
do Microsoft Graph. O token de acesso é passado no Cabeçalho de Autorização. A chamada para/me
recupera os dados com segurança do serviço.Depois que a resposta for Microsoft Graph, você verá a mensagem de boas-vindas com o nome do usuário conectado. Selecione o botão Mostrar eventos.
Outra caixa de diálogo de consentimento é exibida. Observe o escopo de permissão Ler seu calendáriocom o qual você está consentindo.
Selecione Aceitar para dar consentimento para que o aplicativo realize operações para o usuário.
Depois que você consentir, o aplicativo tentará obter um token de acesso usando as informações da conta validada. A Biblioteca de Autenticação da Microsoft lida com esta etapa para você.
Depois que o token estiver de volta no aplicativo, uma solicitação GET será feita para o ponto de extremidade
/me/calendarView
do Microsoft Graph. O token de acesso é passado no Cabeçalho de Autorização. A chamada para/me/calendarView
recupera os dados com segurança do serviço.Depois que a resposta for Microsoft Graph, você verá os eventos de calendário do usuário conectado listados para a próxima semana.
Você demonstrou com êxito como acessar e exibir eventos Microsoft 365 calendário para um usuário conectado usando o Microsoft Graph.