Esercitazione: accedere agli eventi del calendario di un utente tramite Microsoft Graph
Verranno ora usati tutti i concetti illustrati fino a questo punto e verranno apportate modifiche all'app di esempio per accedere agli eventi del calendario.
Nell'editor di codice individuare il file index.html. Aggiungere il codice HTML seguente nel tag
<main>
, subito prima del tag</main>
di chiusura.<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>
Nell'editor individuare il file graph.js. Aggiungere una nuova funzione per ottenere gli eventi del calendario dell'utente connesso per la settimana successiva usando l'endpoint dell'API Microsoft Graph
/me/calendarView
. Questa funzione verrà chiamatagetEvents()
.Aggiungere il codice seguente alla fine del file:
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(); }
Individuare il file ui.js e aggiungere una nuova funzione per visualizzare gli eventi del calendario ricevuti da Microsoft Graph nell'elemento elenco. Questa funzione verrà chiamata
displayEvents()
.Aggiungere il codice seguente alla fine del file:
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"; }
Nello stesso file ui.js, aggiornare la funzione
displayUI()
per visualizzare il pulsante Mostra eventisolo se l'autorizzazione ha esito positivo.Aggiungere il codice seguente alla fine della funzione
displayUI()
:var btnShowEvents = document.getElementById('btnShowEvents'); btnShowEvents.style = "display: block";
Ora che sono state aggiunte tutte le altre funzioni e frammenti di codice agli eventi di un utente connesso per la prossima settimana, il passaggio successivo consiste nell'eseguire l'app localmente.
Esecuzione dell'app
Per eseguire e testare l'applicazione, è necessario aggiungere alcuni eventi di calendario al calendario usando Microsoft Outlook o Microsoft Teams. Gli eventi devono rientrare in un periodo di una settimana.
Consiglio
Per questo passaggio, assicurarsi che Node.js sia installato nel computer.
È il momento di vedere l'applicazione eseguita localmente.
Nella finestra del terminale, passare alla cartella del progetto in cui si trova il codice sorgente.
Eseguire lo script seguente nella riga di comando per avviare l'app localmente aprendo
http://localhost:8080
nel browser.npm start
Se l'app è configurata correttamente, viene visualizzato un pulsante di accesso.
Accedere usando un account nello stesso tenant per sviluppatori di Microsoft 365 usato nell'unità 2, in cui è stata registrata l'applicazione Microsoft Entra.
Dopo aver eseguito l'accesso, viene richiesto di fornire il consenso.
Selezionare Accetta per consentire all'applicazione di eseguire operazioni per l'utente.
Dopo il consenso, l'applicazione tenta di ottenere un token di accesso usando le informazioni dell'account convalidate. Microsoft Authentication Library gestisce questo passaggio automaticamente.
Quando il token torna nell'applicazione, viene effettuata una richiesta GET all'endpoint Microsoft Graph
/me
. Il token di accesso viene passato nell'Intestazione di autorizzazione. La chiamata a/me
quindi recupera i dati in modo sicuro dal servizio.Dopo la ricezione della risposta da Microsoft Graph, verrà visualizzato il messaggio di benvenuto con il nome dell'utente connesso. Selezionare il pulsante Mostra eventi.
Viene visualizzata un'altra finestra di dialogo. Si noti l'ambito di autorizzazione Read your calendar a cui si sta fornendo il consenso.
Selezionare Accetta per consentire all'applicazione di eseguire operazioni per l'utente.
Dopo il consenso, l'applicazione tenta di ottenere un token di accesso usando le informazioni dell'account convalidate. Microsoft Authentication Library gestisce questo passaggio automaticamente.
Quando il token torna nell'applicazione, viene effettuata una richiesta GET all'endpoint Microsoft Graph
/me/calendarView
. Il token di accesso viene passato nell'Intestazione di autorizzazione. La chiamata a/me/calendarView
quindi recupera i dati in modo sicuro dal servizio.Dopo la ricezione della risposta da Microsoft Graph, verranno visualizzati gli eventi di calendario dell'utente connesso.
È stato illustrato come accedere e visualizzare gli eventi di calendario di Microsoft 365 per un utente connesso usando Microsoft Graph.