Microsoft Graph は、REST API を利用し Microsoft 365 の様々なサービスからデータを取得したり、その他のアプリと連携しデータを処理することが可能なサービスです。一般的には開発に用いられ、業務の自動化や効率化が期待できるもので、どちらかというと開発者向けの機能です。
今回はこの Microsoft Graph を開発者以外の一般ユーザーでも有効活用できないかと色々試してみたのでご紹介いたします。

なお、Microsoft 公式の解説動画もありますのでご覧ください。


Graph エクスプローラーでクエリを実行してみる

Graph API のイメージを掴むには、Graph エクスプローラーがお勧めです。
Graph エクスプローラーは、Webブラウザー上で実際に Graph API を実行し、結果も閲覧することができるツールです。サンプルも用意されているので、難しい操作をせずにAPIの操作が可能です。

今回は権限が少ない一般ユーザーの操作を想定しておりますので、自分のアカウントでアクセスできる範囲から情報を「GET(取得)」する操作を行います。

① まずは以下のリンクから Graph エクスプローラーにアクセスしましょう。
  https://developer.microsoft.com/ja-jp/graph/graph-explorer

② 自身の Microsoft 365 アカウントで Graph エクスプローラーにサインインします。

※ Graph エクスプローラーを利用する際は「権限の要求」に同意する必要があります。ご利用のテナントで許可されていない場合もありますので、想定通りに動作しない時は管理者の方へご相談ください。

③ 画面左の「GET 自分の写真」をクリックしてみます。

④ 画面下の「応答のプレビュー」に自身が設定しているプロフィール画像が表示されます。「GET 自分の写真」をクリックした際に Microsoft 365 に GETリクエストが送信され、プロフィールの写真が取得されたためです。

実際は画面上部に表示されているクエリにより me/photo/$value の値を取得しています。


Graph API の実行例

目的のクエリが Graph エクスプローラーのサンプルにない場合は、もちろん自分で作成することも可能です。
例えば、自分の予定表のイベント情報を取得してみましょう。

① イベント情報の取得は以下の構文が基本となります。
  リクエストの種類:GET
  クエリ:https://graph.microsoft.com/v1.0/me/calendar

② まずはこのクエリを Graph エクスプローラーで実行してみると……
既定では、以下キャプチャの通りアクセスが拒否(Forbidden)されます。

③ メッセージの通り「アクセス許可の修正 (プレビュー)」より同意操作を行います。

今回必要な「Calendars」の4つにチェックを入れて「同意」します。

④ 無事にクエリが実行でき、イベント情報も取得できました。

⑤ この状態では出力件数が既定の10件、そして不要な値も含まれているため、以下のオプションを組み合わせます。

  • 出力される件数を20件にする
    $top=20
  • 件名、詳細、参加者、開始日時、終了日時 を出力する
    $select=subject,bodyPreview,attendees,start,end

クエリはこのようになります。
https://graph.microsoft.com/v1.0/me/events?$top=20&$select=subject,bodyPreview,attendees,start,end

⑥ これを再度 Graph エクスプローラーで実行してみると、出力件数が増え、かつ指定したパラメーターが出力されます。

⑦ ここまでの内容を応用することで、Power Platform やその他サービスで Graph API を利用することができます。とても奥深いジャンルですので、次の機会に応用編として深堀したいと思います。

関連情報

本記事を作成するにあたり参考にしたドキュメントは以下の通りです。

データ取得制限について:Throttling coming to Outlook API and Microsoft Graph | Microsoft Docs
カレンダーのイベントを取得する:イベントを取得する – Microsoft Graph v1.0 | Microsoft Docs
応答をカスタマイズする:クエリ パラメーターを使用して応答をカスタマイズする – Microsoft Graph | Microsoft Docs