Exercice : afficher les fichiers des utilisateurs
Dans cet exercice, vous allez étendre l’application pour afficher la liste des fichiers du dossier racine de l’utilisateur dans OneDrive Entreprise.
Obtenir la liste des fichiers
Commencez par ajouter l’appel Microsoft Graph à l’application.
Dans votre éditeur de code. ouvrez le fichier graph.js.
À la fin du fichier, ajoutez une nouvelle fonction async nommée
getFiles()
pour récupérer la liste des fichiers. Utilisez la fonction Sélection pour récupérer les propriétésid
,name
,folder
, etpackage
pour chaque fichier.// Get files in root of user's OneDrive async function getFiles() { ensureScope('files.read'); try { const response = await graphClient .api('/me/drive/root/children') .select('id,name,folder,package') .get(); return response.value; } catch (error) { console.error(error); } }
Ajouter un espace réservé HTML pour afficher les fichiers
Ajoutez ensuite le code HTML qui affiche la liste des fichiers.
Dans votre éditeur de code, ouvrez le fichier index.html.
Étendez le bloc
content
avec une règle horizontale, une étiquette et une liste non ordonnée, comme suit :<div id="content" style="display: none;"> <h4>Welcome <span id="userName"></span></h4> <!-- Add for file download --> <hr /> <label>Files in your OneDrive root folder:</label> <ul id="downloadLinks"></ul> </div>
Afficher des fichiers dans l’application
La dernière étape consiste à ajouter une petite quantité de code pour appeler la fonction que vous avez ajoutée précédemment et afficher la liste des fichiers.
Dans votre éditeur de code, ouvrez le fichier ui.js.
À la fin du fichier, ajoutez la fonction
displayFiles()
.async function displayFiles() { const files = await getFiles(); const ul = document.getElementById('downloadLinks'); while (ul.firstChild) { ul.removeChild(ul.firstChild); } for (let file of files) { if (!file.folder && !file.package) { let a = document.createElement('a'); a.href = '#'; a.appendChild(document.createTextNode(file.name)); let li = document.createElement('li'); li.appendChild(a); ul.appendChild(li); } } }
Notez que instruction
if
ignore tous les dossiers ou packages pour afficher uniquement les fichiers. Il n’est pas possible de filtrer ceux-ci dans l’API pour le moment. Notez également que les fichiers sont rendus comme des balises d’ancre (liens hypertexte). Dans l'exercice suivant, vous ajouterez une fonctionnalité permettant de télécharger chaque fichier lorsque ce lien est sélectionné.À la fin de la fonction
displayUI()
, juste devant l’accolade fermant, ajoutez un appel àdisplayFiles()
.// beginning of function omitted for brevity content.style = "display: block"; displayFiles(); }
Exécuter votre application
Vous avez à présent étendu votre application pour afficher certains fichiers de l’utilisateur à l’aide de Microsoft Graph. Assurez-vous qu'il y a des fichiers dans le dossier racine de l'instance OneDrive de l'utilisateur, puis exécutez l'application localement.
Affichez un aperçu de l’application web en exécutant la commande suivante dans le terminal :
npm start
Votre navigateur par défaut doit s’ouvrir et pointer vers
http://localhost:8080
.Sélectionnez Se connecter avec Microsoft pour vous connecter avec votre compte Microsoft 365.
Si vous exécutez l’application pour la première fois, vous devrez, à l’invite, autoriser l’accès de l’application à vos fichiers. Pour continuer, acceptez la demande.
La liste des fichiers doit s’afficher.
Maintenez votre serveur Node.js en exécution, car vous l’utiliserez au cours de la prochaine partie de l’exercice.