演習 - mgt-get コンポーネントを使用して Microsoft Graph クエリを最適化する
この演習では、Microsoft Graph Toolkit の Get コンポーネントを使用する方法について説明します。 これにより、サインインしているユーザーの OneNote のノートブックを表示できます。
始める前に
この演習の前提条件として、このモジュールの前の演習「ユニット 3: 演習 - コンポーネントによって読み込まれたデータをキャッシュする」を完了していることを確認してください。
Get コンポーネントを実行する
次の手順に従って、Get コンポーネントを実行し、アプリにユーザーのノートブックを表示します。
index.html ファイルを開きます。 Login コンポーネント
<mgt-login></mgt-login>
の直後に<body>
タグ内に Get コンポーネント追加します。<!DOCTYPE html> <html> <head> <script src="https://unpkg.com/@microsoft/mgt@3/dist/bundle/mgt-loader.js"></script> </head> <body> <mgt-msal2-provider client-id="YOUR-CLIENT-ID-HERE"></mgt-msal2-provider> <mgt-login></mgt-login> <mgt-get></mgt-get> </body> </html>
次のように、
resource
属性とscopes
属性を Get コンポーネントに追加します。<mgt-get resource="me/onenote/notebooks" scopes="Notes.Read, Notes.Read.All"> </mgt-get>
OneNote ノートブックの一覧を取得してアプリに表示するには、次のタスクを実行します。
-
<mgt-get></mgt-get>
タグの間に<template></template>
を追加します。 -
<template></template>
タグの間に<div></div>
を追加します。 -
data-for
属性を<div>
に追加して、ノートブックの一覧の各ノートブックをループします。 属性を に設定しますdata-for
note in value
。
<mgt-get resource="me/onenote/notebooks" scopes="Notes.Read, Notes.Read.All"> <template> <div class="note" data-for="note in value"> </div> </template> </mgt-get>
-
これで、アプリにノートブックのデータの一覧が表示されます。 関連付けられた URL を含むノートブック名の一覧を表示するには、
<div></div>
タグ内に次の行を追加します。<a href="{{ note.links.oneNoteWebUrl.href}}"> {{ note.displayName }} </a>
ノートブックを最後に変更したユーザーのプロフィールとノートブックの最終更新日時を表示するには、次のコード スニペットをノート タグの
<div></div>
タグ内に追加 します。<a></a>
タグの後にこれを追加します。<h4> Last modified by: <mgt-person person-query="{{note.lastModifiedBy.user.displayName}}" view="oneline" person-card="hover"></mgt-person> </h4> <h5>Last modified date: {{note.lastModifiedDateTime}}</h5>
Get コンポーネントの見た目をプロフェッショナルに変更するには、performance-mgt フォルダーに index.css ファイルを作成します。
次の CSS スニペットを index.css に追加します。
.note { box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); padding: 10px; margin: 8px 4px; font-family: Segoe UI, Frutiger, Frutiger Linotype, Dejavu Sans, Helvetica Neue, Arial, sans-serif; } .note a { font-size: 14px; margin-top: 8px; } .note h4 { font-size: 9px; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; color: gray; margin-top: 4px; margin-bottom: 0px; } .note h5 { font-size: 7px; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; color: royalblue; margin-top: 4px; margin-bottom: 0px; } .note mgt-person { --person-line1-font-size: 10px; --avatar-size-s: 12px; display: inline-block; vertical-align: middle; }
<head></head>
タグの間で index.html ファイルに次の行を追加します。<link rel='stylesheet' href='index.css'>
すべての変更が完了すると、index.html ファイルは次のようになります。
<!DOCTYPE html> <html> <head> <script src="https://unpkg.com/@microsoft/mgt@3/dist/bundle/mgt-loader.js"></script> <link rel='stylesheet' href='index.css'> </head> <body> <mgt-msal2-provider client-id="YOUR-CLIENT-ID-HERE"></mgt-msal2-provider> <mgt-login></mgt-login> <mgt-get resource="/me/onenote/notebooks" scopes="Notes.Read, Notes.Read.All"> <template> <div class="note" data-for="note in value"> <a href="{{note.links.oneNoteWebUrl.href}}">{{ note.displayName }} </a> <h4> Last modified by: <mgt-person person-query="{{note.lastModifiedBy.user.displayName}}" view="oneline" person-card="hover"> </mgt-person> </h4> <h5>Last modified date: {{note.lastModifiedDateTime}}</h5> </div> </template> </mgt-get> </body> </html>
ブラウザーでアプリをテストする
今回 Microsoft 365 開発者テナントを初めて使用する場合、Microsoft 365 開発者テナントのアカウントの OneNote にノートブックがない可能性があります。 アプリのテストを開始する前に、
https://www.office.com/launch/onenote
にアクセスし、Microsoft 365 開発者テナント アカウントでサインインします。 OneNote のノートブックを作成します。Visual Studio Code の場合、Visual Studio Code で次のキーの組み合わせを選択し、Live Server で検索します。
- Windows: CTRL+SHIFT+P
- macOS: COMMAND+SHIFT+P
Live Server を実行してアプリテストします。
ブラウザーを開き、
http://localhost:3000
に移動します。Microsoft 365 開発者アカウントでサインインします。 必要なアクセス許可に同意し、[同意する] を選択します。
ファイルの一覧がアプリに表示され、ファイルを共有したユーザーと最終更新日に関する情報が表示されます。