---
title: Power PlatformでMicrosoft 365 Copilotの議事録を取得する仕組みとサンプルアプリの紹介
url: "https://www.geekfujiwara.com/tech/powerplatform/6984/"
author: ギークフジワラ
published: "2025-06-24T09:41:44+00:00"
updated: "2025-06-24T09:51:52+00:00"
categories: [Power Platform]
description: "Microsoft 365 Copilotの「Meeting Insights API」がパブリックプレビューとして公開され、実際に利用できるようになりました。これにより、Teams会議の議事録を自動で取得し、Power Platform …"
---

# Power PlatformでMicrosoft 365 Copilotの議事録を取得する仕組みとサンプルアプリの紹介

Microsoft 365 Copilotの「Meeting Insights API」が**パブリックプレビュー**として公開され、**実際に利用できるようになりました**。これにより、Teams会議の議事録を自動で取得し、Power Platform 上で活用することが可能になります。

:::raw
<!-- wp:sgb/message {"message":"サンプルソリューションはこちらからダウンロードできます。"} -->
<div class="wp-block-sgb-message"><div class="memo sng-shadow-0" style="border-radius:0px;background-color:#fff9e6;color:#ffb36b"><div class="memo_ttl dfont"><span class="sng-box-msg__icon" style="background:#ffb36b"><i class="fas fa-pencil-alt"></i></span><div class="sng-box-msg__title">サンプルソリューションはこちらからダウンロードできます。</div></div><div class="sng-box-msg__contents"><!-- wp:paragraph -->
<p><a href="https://github.com/geekfujiwara/CopilotMeetingInsightsApp">geekfujiwara/CopilotMeetingInsightsApp: Power PlatformでMicrosoft 365 Copilotの議事録を取得・活用するソリューション</a></p>
<!-- /wp:paragraph --></div></div></div>
<!-- /wp:sgb/message -->
:::

:::raw
<!-- wp:video -->
<figure class="wp-block-video"><video controls src="https://github.com/user-attachments/assets/82f6621a-b8d4-4aa1-ae5d-0afb7c89f6cc"></video></figure>
<!-- /wp:video -->
:::

Teams 会議の議事録を取得するAPIの他にも、以下のようなAPIがMicrosoft 365 Copilot APIとして提供されています。

| API | これを使用して、 | シナリオ例 |
| --- | --- | --- |
| [取得 API (プレビュー)](https://learn.microsoft.com/ja-jp/microsoft-365-copilot/extensibility/api-reference/retrieval-api-overview) | Microsoft 365 コンテンツから安全かつ準拠した方法で関連情報を取得します。 | データ抽出を行わずに、独自の AI モデルを Microsoft 365 コンテンツに接続します。 organizationの最新のドキュメント、ポリシー、ナレッジ ベースに基づいて対応する特殊なアシスタントを構築します。 これらのアプリケーションは、ドキュメント アクセス制御と秘密度ラベルを尊重しながら、部門間で従業員にコンテキストに関連する情報を提供できます。 |
| [対話エクスポート API](https://learn.microsoft.com/ja-jp/microsoftteams/export-teams-content#microsoft-365-copilot-interactions--microsoft-365-chat-preview) | コンプライアンス ソリューションを有効にして、Microsoft 365 アプリケーション全体で Copilot とのユーザー操作をキャプチャおよびアーカイブします。 | AI 相互作用の包括的な記録を維持し、AI の使用状況の監視を可能にし、組織のポリシーと規制要件に確実に準拠するシステムを開発します。 これらのソリューションは、AI 支援コンテンツ生成の文書化とレビューが必要な規制対象の業界にとって重要です。 |
| [Notifications API の変更 (プレビュー)](https://learn.microsoft.com/ja-jp/graph/aiinteraction-changenotifications-overview) | Microsoft 365 全体の Copilot 操作の変更通知をサブスクライブします。 | AI の相互作用をリアルタイムで監視およびログ記録するアプリケーションを構築し、プロアクティブなコンプライアンス チェック、異常検出、監査を可能にします。 |
| [Meeting Insights API (プレビュー)](https://learn.microsoft.com/ja-jp/microsoftteams/platform/graph-api/meeting-transcripts/meeting-insights) | Teams 会議の AI で生成された会議ノート、アクション アイテム、ディスカッション トピックを抽出します。 | Teams 会議からアクション アイテム、意思決定、および概要を自動的に抽出および整理するアプリケーションを作成します。 これらをプロジェクト管理ツール、CRM システム、またはカスタム ワークフローとリンクします。 これらのシステムは、会議の結果を自動的にキャプチャ、整理、アクティブ化することで、会議を費やした時間から価値へと変えることができます。 |
| チャット API (近日中にパブリック プレビューで利用可能) | カスタム アプリケーションでMicrosoft 365 Copilotを利用した会話エクスペリエンスを有効にします。 | Microsoft 365 Copilotをエンタープライズ アプリケーションに統合すると、質問に回答したり、タスクを実行したり、Microsoft 365 のデータとユーザー コンテキストに基づいてガイダンスを提供したりできます。 これらのインターフェイスは、カスタム ポータルからモバイル アプリまで、毎日使用するツールに AI 機能を直接取り込むことで、ユーザーの生産性を向上させることができます。 |

[Microsoft 365 Copilot API の概要 \| Microsoft Learn](https://learn.microsoft.com/ja-jp/microsoft-365-copilot/extensibility/copilot-apis-overview)

本記事では、このAPIに**どのように接続するかという原理**と、**Power AutomateとPower Appsを使ったサンプルアプリ**をご紹介します。

GitHubで公開しているソリューションもありますので、ぜひ実際に試してみてください！

> [!TIP]
> Microsoft 365 Copilot API の Meeting Insights API の原理を理解しつつ、私のGitHub に公開しているPower Platoform のソリューションを利用するにあたっての事前設定の手順をお伝えします。

## シナリオ例

このCopilot の作成した議事録の取得APIを利用することで、例えば以下のようなシナリオが実現できます。

| ユースケース | シナリオ | 統合方法 | インパクト |
| --- | --- | --- | --- |
| CRM更新のための会議要約の自動生成 | 営業チームがTeamsで定期的に顧客との会議を行っている。各通話後、CRMに会議の要約とフォローアップを記録する必要がある。 | 会議終了後、バックエンドサービスが会議終了イベントを監視し、Microsoft Graph APIを使用して会議後のインサイトを取得する。サービスは要約とアクション項目を抽出し、会社のCRMレコードの特定フィールドにマッピングする。オプションで、更新内容を確認するTeamsメッセージカードを含めることも可能。 | \- 営業担当者の手動入力の手間を削減。  <br>\- 顧客とのすべてのやり取りにおいて、重要な詳細の一貫した記録を確保。 |
| 会議後の知識をプロジェクト管理アプリに記録 | プロダクトおよびエンジニアリングチームが定期的に会議を行い、設計や機能に関する意思決定をしている。メンバーは議論内容や合意事項の記録を忘れがち。 | ボットまたはバックグラウンドジョブを使用して、プロダクトリードが主催する終了済み会議をGraph APIで取得。APIはインサイトを取得し、自然言語処理（NLP）で意思決定、タスク、リスク項目などに分類。これらの分類はAzure DevOps、Jira、Notionなどにタスクやノートとして変換され、GraphのユーザーIDを使って適切な担当者に割り当てられる。 | \- 情報の損失を防止。  <br>\- 会話とタスク管理のギャップを自動的に埋める。  <br>\- チームの整合性と責任感を促進。 |
| 戦略会議向けのエグゼクティブ向けブリーフィングの生成 | 経営陣は財務、業務、取締役会レビューなど、複数の高レベル会議に参加している。迅速かつ信頼性のある要約が必要。 | 指定された経営陣の会議終了後にGraph APIを呼び出してインサイトを取得し、重要な意思決定や課題を優先順位付けして、簡潔な日次ブリーフィングカードにまとめる。このカードはTeamsチャットに投稿するか、朝のメール要約として送信される。オプションで、会議間のキーワードクラスタリングにより繰り返し出現するテーマを強調することも可能。 | \- 経営陣の集中力と意思決定のスピードを向上。  <br>\- 手動でのメモ取りやフォローアップへの依存を削減。  <br>\- 部門横断的な認識を迅速に促進。 |

[Graph APIs to Fetch Meeting Insights - Teams \| Microsoft Learn](https://learn.microsoft.com/en-us/microsoftteams/platform/graph-api/meeting-transcripts/meeting-insights)

## Meeting Insights APIの原理を理解する

まずは、APIの動作原理を理解するために、Microsoft Graph Explorerを使って手動でアクセスしてみましょう。

### ステップ1: 大まかな流れの確認

以下のような流れで実行します。

:::raw
<!-- wp:sgb/timeline -->
<div class="wp-block-sgb-timeline"><div class="sgb-tl"><!-- wp:sgb/timeline-item {"itemTitle":"Teamsの会議から「Join Web URL（参加リンク）」をコピー"} -->
<div class="wp-block-sgb-timeline-item sgb-tl-item"><div class="sgb-tl-item__label--default"></div><div class="sgb-tl-item__title">Teamsの会議から「Join Web URL（参加リンク）」をコピー</div><div class="sgb-tl-item__main"></div><div class="sgb-tl-item__marker main-bdr main-bc"></div></div>
<!-- /wp:sgb/timeline-item -->

<!-- wp:sgb/timeline-item {"itemTitle":"Graph ExplorerでこのURLを使って、該当するオンラインミーティング情報を取得するクエリを実行"} -->
<div class="wp-block-sgb-timeline-item sgb-tl-item"><div class="sgb-tl-item__label--default"></div><div class="sgb-tl-item__title">Graph ExplorerでこのURLを使って、該当するオンラインミーティング情報を取得するクエリを実行</div><div class="sgb-tl-item__main"></div><div class="sgb-tl-item__marker main-bdr main-bc"></div></div>
<!-- /wp:sgb/timeline-item -->

<!-- wp:sgb/timeline-item {"itemTitle":"必要なアクセス許可を確認"} -->
<div class="wp-block-sgb-timeline-item sgb-tl-item"><div class="sgb-tl-item__label--default"></div><div class="sgb-tl-item__title">必要なアクセス許可を確認</div><div class="sgb-tl-item__main"></div><div class="sgb-tl-item__marker main-bdr main-bc"></div></div>
<!-- /wp:sgb/timeline-item -->

<!-- wp:sgb/timeline-item {"itemTitle":"Online Meeting IDを取得"} -->
<div class="wp-block-sgb-timeline-item sgb-tl-item"><div class="sgb-tl-item__label--default"></div><div class="sgb-tl-item__title">Online Meeting IDを取得</div><div class="sgb-tl-item__main"></div><div class="sgb-tl-item__marker main-bdr main-bc"></div></div>
<!-- /wp:sgb/timeline-item -->

<!-- wp:sgb/timeline-item {"itemTitle":"AI Insights IDを取得"} -->
<div class="wp-block-sgb-timeline-item sgb-tl-item"><div class="sgb-tl-item__label--default"></div><div class="sgb-tl-item__title">AI Insights IDを取得</div><div class="sgb-tl-item__main"></div><div class="sgb-tl-item__marker main-bdr main-bc"></div></div>
<!-- /wp:sgb/timeline-item -->

<!-- wp:sgb/timeline-item {"itemTitle":"議事録（JSON形式）を取得"} -->
<div class="wp-block-sgb-timeline-item sgb-tl-item"><div class="sgb-tl-item__label--default"></div><div class="sgb-tl-item__title">議事録（JSON形式）を取得</div><div class="sgb-tl-item__main"></div><div class="sgb-tl-item__marker main-bdr main-bc"></div></div>
<!-- /wp:sgb/timeline-item --></div></div>
<!-- /wp:sgb/timeline -->
:::

### ステップ2: 実際の作業

まずは Graph Explorer にアクセスするまえに、会議のリンクを取得しましょう。Teams にて、レコーディングと Copilot による会議メモが作成されている会議を右クリックして、会議リンクをコピーします。

![](https://www.geekfujiwara.com/wp-content/uploads/2025/05/image-106-1024x692.png)

次に Graph Explorer にアクセスします。

<https://developer.microsoft.com/en-us/graph/graph-explorer>

取得した `JoinWebUrl` を用いて、まずは `Online Meeting ID` を取得します。

:::raw
<!-- wp:group {"metadata":{"categories":["sgb/content-block"],"patternName":"sgb/4682","name":"CodeCopy"},"className":"parent","css":".parent {\n\tposition: relative;\t\n}","scopedCSS":"#id-62ea580b-0406-4cfe-9f42-58a7d1c3c0fb .parent {\n\tposition: relative;\t\n}","js":"let btn = block.querySelector(\u0022.code-btn\u0022);\n\nbtn.addEventListener(\u0022click\u0022, () =\u003e {\n  let txt = block.querySelector(\u0022code\u0022).innerText;\n  navigator.clipboard.writeText(txt);\n\n  let copied = block.querySelector(\u0022.copied\u0022);\n  copied.style.display = \u0022block\u0022;\n  setTimeout(function () {\n    copied.style.display = \u0022none\u0022;\n  }, 1500);\n});","blockId":"id-62ea580b-0406-4cfe-9f42-58a7d1c3c0fb"} -->
<div class="wp-block-group parent"><!-- wp:paragraph {"css":"i {\n\tcursor: pointer;\n\tposition: absolute;\n\ttop: 2.5em;\n\tright: 1em;\n\tz-index:98;\n}\n\n.fa-copy {\n\tcolor:#777;\n}\n\n.copied{\n\tdisplay:none;\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tz-index:99;\n\tbackground:#222;\n\tcolor:#fff;\n\tborder-radius: 5px;\n\tpadding:3px;\n}","scopedCSS":"#id-fab7264f-72ac-4b45-abc2-25f671f065af i {\n\tcursor: pointer;\n\tposition: absolute;\n\ttop: 2.5em;\n\tright: 1em;\n\tz-index:98;\n}\n\n#id-fab7264f-72ac-4b45-abc2-25f671f065af .fa-copy {\n\tcolor:#777;\n}\n\n#id-fab7264f-72ac-4b45-abc2-25f671f065af .copied{\n\tdisplay:none;\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tz-index:99;\n\tbackground:#222;\n\tcolor:#fff;\n\tborder-radius: 5px;\n\tpadding:3px;\n}","blockId":"id-fab7264f-72ac-4b45-abc2-25f671f065af"} -->
<p><i class="fas fa-copy code-btn"></i><span class="copied">コピーしました！</span></p>
<!-- /wp:paragraph -->

<!-- wp:sgb/codebox {"title":"html","source":"https://graph.microsoft.com/v1.0/me/onlineMeetings?$filter=JoinWebUrl eq '{JoinWebUrl}'","highlight":true,"className":"parent","css":"pre {\n    background: #3c3c3c;\n\tcolor:#ddd;\n\tfont-size: 0.9em;\n\tborder: none;\n}\n\ncode,\n.hljs-tag {\n\tcolor:#fff;\n}\n\n.pre_tag\u003espan {\n    background-color: #3c3c3c;\n}","scopedCSS":"#id-210d261f-144e-4171-a55d-dc3811b52a71 pre {\n    background: #3c3c3c;\n\tcolor:#ddd;\n\tfont-size: 0.9em;\n\tborder: none;\n}\n\n#id-210d261f-144e-4171-a55d-dc3811b52a71 code,\n#id-210d261f-144e-4171-a55d-dc3811b52a71 .hljs-tag {\n\tcolor:#fff;\n}\n\n#id-210d261f-144e-4171-a55d-dc3811b52a71 .pre_tag\u003espan {\n    background-color: #3c3c3c;\n}","blockId":"id-210d261f-144e-4171-a55d-dc3811b52a71"} -->
<div class="wp-block-sgb-codebox pre_tag parent"><span><i class="fa fa-code"></i>html</span><pre class="js-sng-highlight"><code>https://graph.microsoft.com/v1.0/me/onlineMeetings?$filter=JoinWebUrl eq '{JoinWebUrl}'</code></pre></div>
<!-- /wp:sgb/codebox --></div>
<!-- /wp:group -->
:::

![](https://www.geekfujiwara.com/wp-content/uploads/2025/05/image-121-1024x114.png)

> [!NOTE]
> こちらは内部で管理されているIDのため、このようにAPI経由で取得する必要があります。

次に、取得した `Online Meeting ID` を利用して`AI Insights ID` を取得します。

:::raw
<!-- wp:group {"metadata":{"categories":["sgb/content-block"],"patternName":"sgb/4682","name":"CodeCopy"},"className":"parent","css":".parent {\n\tposition: relative;\t\n}","scopedCSS":"#id-62ea580b-0406-4cfe-9f42-58a7d1c3c0fb .parent {\n\tposition: relative;\t\n}","js":"let btn = block.querySelector(\u0022.code-btn\u0022);\n\nbtn.addEventListener(\u0022click\u0022, () =\u003e {\n  let txt = block.querySelector(\u0022code\u0022).innerText;\n  navigator.clipboard.writeText(txt);\n\n  let copied = block.querySelector(\u0022.copied\u0022);\n  copied.style.display = \u0022block\u0022;\n  setTimeout(function () {\n    copied.style.display = \u0022none\u0022;\n  }, 1500);\n});","blockId":"id-62ea580b-0406-4cfe-9f42-58a7d1c3c0fb"} -->
<div class="wp-block-group parent"><!-- wp:paragraph {"css":"i {\n\tcursor: pointer;\n\tposition: absolute;\n\ttop: 2.5em;\n\tright: 1em;\n\tz-index:98;\n}\n\n.fa-copy {\n\tcolor:#777;\n}\n\n.copied{\n\tdisplay:none;\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tz-index:99;\n\tbackground:#222;\n\tcolor:#fff;\n\tborder-radius: 5px;\n\tpadding:3px;\n}","scopedCSS":"#id-fab7264f-72ac-4b45-abc2-25f671f065af i {\n\tcursor: pointer;\n\tposition: absolute;\n\ttop: 2.5em;\n\tright: 1em;\n\tz-index:98;\n}\n\n#id-fab7264f-72ac-4b45-abc2-25f671f065af .fa-copy {\n\tcolor:#777;\n}\n\n#id-fab7264f-72ac-4b45-abc2-25f671f065af .copied{\n\tdisplay:none;\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tz-index:99;\n\tbackground:#222;\n\tcolor:#fff;\n\tborder-radius: 5px;\n\tpadding:3px;\n}","blockId":"id-fab7264f-72ac-4b45-abc2-25f671f065af"} -->
<p><i class="fas fa-copy code-btn"></i><span class="copied">コピーしました！</span></p>
<!-- /wp:paragraph -->

<!-- wp:sgb/codebox {"title":"html","source":"https://graph.microsoft.com/copilot/me/onlineMeetings/{onlineMeetingId}/aiInsights","highlight":true,"className":"parent","css":"pre {\n    background: #3c3c3c;\n\tcolor:#ddd;\n\tfont-size: 0.9em;\n\tborder: none;\n}\n\ncode,\n.hljs-tag {\n\tcolor:#fff;\n}\n\n.pre_tag\u003espan {\n    background-color: #3c3c3c;\n}","scopedCSS":"#id-210d261f-144e-4171-a55d-dc3811b52a71 pre {\n    background: #3c3c3c;\n\tcolor:#ddd;\n\tfont-size: 0.9em;\n\tborder: none;\n}\n\n#id-210d261f-144e-4171-a55d-dc3811b52a71 code,\n#id-210d261f-144e-4171-a55d-dc3811b52a71 .hljs-tag {\n\tcolor:#fff;\n}\n\n#id-210d261f-144e-4171-a55d-dc3811b52a71 .pre_tag\u003espan {\n    background-color: #3c3c3c;\n}","blockId":"id-210d261f-144e-4171-a55d-dc3811b52a71"} -->
<div class="wp-block-sgb-codebox pre_tag parent"><span><i class="fa fa-code"></i>html</span><pre class="js-sng-highlight"><code>https:&#47;&#47;graph.microsoft.com/copilot/me/onlineMeetings/{onlineMeetingId}/aiInsights</code></pre></div>
<!-- /wp:sgb/codebox -->

<!-- wp:paragraph -->
<p>アクセス権に関する通知が出る場合があります。その場合は以下のようにGraph Explorer に委任して権限を付与してください。</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":6986,"sizeSlug":"large","linkDestination":"none","className":"is-style-sango-with-border"} -->
<figure class="wp-block-image size-large is-style-sango-with-border"><img src="https://www.geekfujiwara.com/wp-content/uploads/2025/05/image-107-1024x301.png" alt="" class="wp-image-6986"/></figure>
<!-- /wp:image --></div>
<!-- /wp:group -->
:::

すると、以下のように応答が返ってきます。

![](https://www.geekfujiwara.com/wp-content/uploads/2025/05/image-120-1024x448.png)

これで、議事録取得に必要な `AI Insights ID `を取得することができました。続けて、 Graph Explorer で以下のクエリを送信します。

:::raw
<!-- wp:group {"metadata":{"categories":["sgb/content-block"],"patternName":"sgb/4682","name":"CodeCopy"},"className":"parent","css":".parent {\n\tposition: relative;\t\n}","scopedCSS":"#id-62ea580b-0406-4cfe-9f42-58a7d1c3c0fb .parent {\n\tposition: relative;\t\n}","js":"let btn = block.querySelector(\u0022.code-btn\u0022);\n\nbtn.addEventListener(\u0022click\u0022, () =\u003e {\n  let txt = block.querySelector(\u0022code\u0022).innerText;\n  navigator.clipboard.writeText(txt);\n\n  let copied = block.querySelector(\u0022.copied\u0022);\n  copied.style.display = \u0022block\u0022;\n  setTimeout(function () {\n    copied.style.display = \u0022none\u0022;\n  }, 1500);\n});","blockId":"id-62ea580b-0406-4cfe-9f42-58a7d1c3c0fb"} -->
<div class="wp-block-group parent"><!-- wp:paragraph {"css":"i {\n\tcursor: pointer;\n\tposition: absolute;\n\ttop: 2.5em;\n\tright: 1em;\n\tz-index:98;\n}\n\n.fa-copy {\n\tcolor:#777;\n}\n\n.copied{\n\tdisplay:none;\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tz-index:99;\n\tbackground:#222;\n\tcolor:#fff;\n\tborder-radius: 5px;\n\tpadding:3px;\n}","scopedCSS":"#id-fab7264f-72ac-4b45-abc2-25f671f065af i {\n\tcursor: pointer;\n\tposition: absolute;\n\ttop: 2.5em;\n\tright: 1em;\n\tz-index:98;\n}\n\n#id-fab7264f-72ac-4b45-abc2-25f671f065af .fa-copy {\n\tcolor:#777;\n}\n\n#id-fab7264f-72ac-4b45-abc2-25f671f065af .copied{\n\tdisplay:none;\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tz-index:99;\n\tbackground:#222;\n\tcolor:#fff;\n\tborder-radius: 5px;\n\tpadding:3px;\n}","blockId":"id-fab7264f-72ac-4b45-abc2-25f671f065af"} -->
<p><i class="fas fa-copy code-btn"></i><span class="copied">コピーしました！</span></p>
<!-- /wp:paragraph -->

<!-- wp:sgb/codebox {"title":"html","source":"https://graph.microsoft.com/beta/copilot/users/xxxx-xxxx-xxxx-xxxx/onlineMeetings/xxxx-xxxx-xxxx-xxxx/aiInsights/{\u003ccode\u003eAI Insights ID\u003c/code\u003e}","highlight":true,"className":"parent","css":"pre {\n    background: #3c3c3c;\n\tcolor:#ddd;\n\tfont-size: 0.9em;\n\tborder: none;\n}\n\ncode,\n.hljs-tag {\n\tcolor:#fff;\n}\n\n.pre_tag\u003espan {\n    background-color: #3c3c3c;\n}","scopedCSS":"#id-210d261f-144e-4171-a55d-dc3811b52a71 pre {\n    background: #3c3c3c;\n\tcolor:#ddd;\n\tfont-size: 0.9em;\n\tborder: none;\n}\n\n#id-210d261f-144e-4171-a55d-dc3811b52a71 code,\n#id-210d261f-144e-4171-a55d-dc3811b52a71 .hljs-tag {\n\tcolor:#fff;\n}\n\n#id-210d261f-144e-4171-a55d-dc3811b52a71 .pre_tag\u003espan {\n    background-color: #3c3c3c;\n}","blockId":"id-210d261f-144e-4171-a55d-dc3811b52a71"} -->
<div class="wp-block-sgb-codebox pre_tag parent"><span><i class="fa fa-code"></i>html</span><pre class="js-sng-highlight"><code>https://graph.microsoft.com/beta/copilot/users/xxxx-xxxx-xxxx-xxxx/onlineMeetings/xxxx-xxxx-xxxx-xxxx/aiInsights/{<code>AI Insights ID</code>}</code></pre></div>
<!-- /wp:sgb/codebox --></div>
<!-- /wp:group -->
:::

すると以下のように応答が返ってきます。

:::raw
<!-- wp:sgb/accordion {"inputId":"5f84f5ce-9414-4ce1-8c69-cd2eaf221ecd","title":"AI Insights API からの応答結果"} -->
<div class="wp-block-sgb-accordion"><input id="toggle-checkbox-5f84f5ce-9414-4ce1-8c69-cd2eaf221ecd" class="sgb-acc__input" type="checkbox"/><label class="sgb-acc__title" for="toggle-checkbox-5f84f5ce-9414-4ce1-8c69-cd2eaf221ecd" style="color:#333;background-color:#FFF">AI Insights API からの応答結果</label><div class="sgb-acc__content sgb-acc__content--save"><!-- wp:sgb/codebox {"title":"Response","source":"{\n    \u0022@odata.context\u0022: \u0022https://graph.microsoft.com/beta/$metadata#copilot/users('f4d9e7ae-08de-411e-894d-89e41ce4b9de')/onlineMeetings('xxxxxxxxxxxxxxxxxxxxxxxxx')/aiInsights/$entity\u0022,\n    \u0022@microsoft.graph.tips\u0022: \u0022Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET copilot/users('\u0026lt;guid\u003e')/onlineMeetings('\u0026lt;key\u003e')/aiInsights('\u0026lt;key\u003e')?$select=actionItems,callId\u0022,\n    \u0022id\u0022: \u0022VjEjI1NQTxxxxxxxxx\u0022,\n    \u0022callId\u0022: \u0022794181cf-25be-4773-b61b-402e3f661506\u0022,\n    \u0022contentCorrelationId\u0022: \u002283cff116-af0d-4dbe-ae8c-88262335e382-10001\u0022,\n    \u0022createdDateTime\u0022: \u00222025-05-21T18:08:05.7326237Z\u0022,\n    \u0022endDateTime\u0022: \u00222025-05-21T18:12:49.23825Z\u0022,\n    \u0022meetingNotes\u0022: [\n        {\n            \u0022title\u0022: \u0022勉強会の概要\u0022,\n            \u0022text\u0022: \u0022Geekは、今回の勉強会が第8回目であり、キャリアセンターのテーマが現場卒業であることを説明しました。\u0022,\n            \u0022subpoints\u0022: [\n                {\n                    \u0022title\u0022: \u0022勉強会の目的\u0022,\n                    \u0022text\u0022: \u0022Geekは、今回の勉強会が第8回目であり、キャリアセンターのテーマが「現場卒業」であることを説明しました。これは、現場での経験を活かして次のステップに進むための知識やスキルを学ぶことを目的としています。\u0022\n                },\n                {\n                    \u0022title\u0022: \u0022過去の勉強会\u0022,\n                    \u0022text\u0022: \u0022Geekは、第1回から第7回までの勉強会の内容がTPPには含まれていないことを述べ、これまでの勉強会の内容をYouTubeで確認できることを案内しました。\u0022\n                }\n            ]\n        },\n        {\n            \u0022title\u0022: \u0022現場報告アプリの紹介\u0022,\n            \u0022text\u0022: \u0022Geekは、現場報告アプリの概要を説明し、写真を撮って現場の状況を報告するアプリケーションを作成することを目的としていると述べました。\u0022,\n            \u0022subpoints\u0022: [\n                {\n                    \u0022title\u0022: \u0022アプリの目的\u0022,\n                    \u0022text\u0022: \u0022Geekは、現場報告アプリの目的が、現場の状況を写真で報告することにあると説明しました。これにより、現場の状況を迅速かつ正確に共有することが可能になります。\u0022\n                },\n                {\n                    \u0022title\u0022: \u0022アプリの機能\u0022,\n                    \u0022text\u0022: \u0022Geekは、アプリの機能として、写真を撮影し、その場で現場の状況を報告できることを説明しました。また、カメラコントロールや緯度経度の情報を取得する機能も含まれています。\u0022\n                }\n            ]\n        },\n        {\n            \u0022title\u0022: \u0022アプリ作成のステップ\u0022,\n            \u0022text\u0022: \u0022Geekは、アプリ作成のためのステップを説明し、データの保存先を作成し、画面を作り、通知を作成することが重要であると述べました。\u0022,\n            \u0022subpoints\u0022: [\n                {\n                    \u0022title\u0022: \u0022データの保存\u0022,\n                    \u0022text\u0022: \u0022Geekは、アプリ作成の最初のステップとして、データの保存先を作成することが重要であると述べました。これにより、報告されたデータが適切に管理されます。\u0022\n                },\n                {\n                    \u0022title\u0022: \u0022画面の作成\u0022,\n                    \u0022text\u0022: \u0022Geekは、次のステップとして、ユーザーが使いやすい画面を作成することが重要であると説明しました。これにより、ユーザーが直感的に操作できるアプリケーションが完成します。\u0022\n                },\n                {\n                    \u0022title\u0022: \u0022通知の作成\u0022,\n                    \u0022text\u0022: \u0022Geekは、最後のステップとして、通知機能を作成することが重要であると述べました。これにより、ユーザーがリアルタイムで情報を受け取ることができます。\u0022\n                }\n            ]\n        },\n        {\n            \u0022title\u0022: \u0022利用者の種類\u0022,\n            \u0022text\u0022: \u0022Geekは、現場側の利用者と管理側の利用者の2種類がいることを説明し、現場側は短時間で登録を行いたいと考えていることを述べました。\u0022,\n            \u0022subpoints\u0022: []\n        },\n        {\n            \u0022title\u0022: \u0022アプリの利活用\u0022,\n            \u0022text\u0022: \u0022Geekは、アプリが利活用されるためには、利用者のニーズを意識して作成することが重要であると強調しました。\u0022,\n            \u0022subpoints\u0022: [\n                {\n                    \u0022title\u0022: \u0022利用者のニーズ\u0022,\n                    \u0022text\u0022: \u0022Geekは、アプリが利活用されるためには、利用者のニーズを意識して作成することが重要であると強調しました。これにより、アプリが実際に使用される可能性が高まります。\u0022\n                },\n                {\n                    \u0022title\u0022: \u0022アプリの利便性\u0022,\n                    \u0022text\u0022: \u0022Geekは、アプリの利便性を高めるために、利用者が直感的に操作できるデザインや機能を取り入れることが重要であると述べました。\u0022\n                }\n            ]\n        }\n    ],\n    \u0022actionItems\u0022: [\n        {\n            \u0022title\u0022: \u0022勉強会の内容確認\u0022,\n            \u0022text\u0022: \u0022勉強会の内容に関する質問やリクエストを cpg.com のユーリクエストまで送信してください。\u0022,\n            \u0022ownerDisplayName\u0022: \u0022参加者\u0022\n        },\n        {\n            \u0022title\u0022: \u0022現場報告アプリの開発\u0022,\n            \u0022text\u0022: \u0022現場報告アプリの開発において、写真の撮影と位置情報の取得機能を実装してください。\u0022,\n            \u0022ownerDisplayName\u0022: \u0022開発チーム\u0022\n        },\n        {\n            \u0022title\u0022: \u0022アプリの利用者確認\u0022,\n            \u0022text\u0022: \u0022現場側と管理側の利用者のニーズを確認し、それに基づいてアプリの機能を調整してください。\u0022,\n            \u0022ownerDisplayName\u0022: \u0022開発チーム\u0022\n        },\n        {\n            \u0022title\u0022: \u0022データ保存先の設定\u0022,\n            \u0022text\u0022: \u0022現場報告アプリのデータ保存先をリストまたは NTT に設定してください。\u0022,\n            \u0022ownerDisplayName\u0022: \u0022開発チーム\u0022\n        }\n    ]\n}"} -->
<div class="wp-block-sgb-codebox pre_tag"><span><i class="fa fa-code"></i>Response</span><pre><code>{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#copilot/users('f4d9e7ae-08de-411e-894d-89e41ce4b9de')/onlineMeetings('xxxxxxxxxxxxxxxxxxxxxxxxx')/aiInsights/$entity",
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET copilot/users('&lt;guid>')/onlineMeetings('&lt;key>')/aiInsights('&lt;key>')?$select=actionItems,callId",
    "id": "VjEjI1NQTxxxxxxxxx",
    "callId": "794181cf-25be-4773-b61b-402e3f661506",
    "contentCorrelationId": "83cff116-af0d-4dbe-ae8c-88262335e382-10001",
    "createdDateTime": "2025-05-21T18:08:05.7326237Z",
    "endDateTime": "2025-05-21T18:12:49.23825Z",
    "meetingNotes": &#91;
        {
            "title": "勉強会の概要",
            "text": "Geekは、今回の勉強会が第8回目であり、キャリアセンターのテーマが現場卒業であることを説明しました。",
            "subpoints": &#91;
                {
                    "title": "勉強会の目的",
                    "text": "Geekは、今回の勉強会が第8回目であり、キャリアセンターのテーマが「現場卒業」であることを説明しました。これは、現場での経験を活かして次のステップに進むための知識やスキルを学ぶことを目的としています。"
                },
                {
                    "title": "過去の勉強会",
                    "text": "Geekは、第1回から第7回までの勉強会の内容がTPPには含まれていないことを述べ、これまでの勉強会の内容をYouTubeで確認できることを案内しました。"
                }
            ]
        },
        {
            "title": "現場報告アプリの紹介",
            "text": "Geekは、現場報告アプリの概要を説明し、写真を撮って現場の状況を報告するアプリケーションを作成することを目的としていると述べました。",
            "subpoints": &#91;
                {
                    "title": "アプリの目的",
                    "text": "Geekは、現場報告アプリの目的が、現場の状況を写真で報告することにあると説明しました。これにより、現場の状況を迅速かつ正確に共有することが可能になります。"
                },
                {
                    "title": "アプリの機能",
                    "text": "Geekは、アプリの機能として、写真を撮影し、その場で現場の状況を報告できることを説明しました。また、カメラコントロールや緯度経度の情報を取得する機能も含まれています。"
                }
            ]
        },
        {
            "title": "アプリ作成のステップ",
            "text": "Geekは、アプリ作成のためのステップを説明し、データの保存先を作成し、画面を作り、通知を作成することが重要であると述べました。",
            "subpoints": &#91;
                {
                    "title": "データの保存",
                    "text": "Geekは、アプリ作成の最初のステップとして、データの保存先を作成することが重要であると述べました。これにより、報告されたデータが適切に管理されます。"
                },
                {
                    "title": "画面の作成",
                    "text": "Geekは、次のステップとして、ユーザーが使いやすい画面を作成することが重要であると説明しました。これにより、ユーザーが直感的に操作できるアプリケーションが完成します。"
                },
                {
                    "title": "通知の作成",
                    "text": "Geekは、最後のステップとして、通知機能を作成することが重要であると述べました。これにより、ユーザーがリアルタイムで情報を受け取ることができます。"
                }
            ]
        },
        {
            "title": "利用者の種類",
            "text": "Geekは、現場側の利用者と管理側の利用者の2種類がいることを説明し、現場側は短時間で登録を行いたいと考えていることを述べました。",
            "subpoints": &#91;]
        },
        {
            "title": "アプリの利活用",
            "text": "Geekは、アプリが利活用されるためには、利用者のニーズを意識して作成することが重要であると強調しました。",
            "subpoints": &#91;
                {
                    "title": "利用者のニーズ",
                    "text": "Geekは、アプリが利活用されるためには、利用者のニーズを意識して作成することが重要であると強調しました。これにより、アプリが実際に使用される可能性が高まります。"
                },
                {
                    "title": "アプリの利便性",
                    "text": "Geekは、アプリの利便性を高めるために、利用者が直感的に操作できるデザインや機能を取り入れることが重要であると述べました。"
                }
            ]
        }
    ],
    "actionItems": &#91;
        {
            "title": "勉強会の内容確認",
            "text": "勉強会の内容に関する質問やリクエストを cpg.com のユーリクエストまで送信してください。",
            "ownerDisplayName": "参加者"
        },
        {
            "title": "現場報告アプリの開発",
            "text": "現場報告アプリの開発において、写真の撮影と位置情報の取得機能を実装してください。",
            "ownerDisplayName": "開発チーム"
        },
        {
            "title": "アプリの利用者確認",
            "text": "現場側と管理側の利用者のニーズを確認し、それに基づいてアプリの機能を調整してください。",
            "ownerDisplayName": "開発チーム"
        },
        {
            "title": "データ保存先の設定",
            "text": "現場報告アプリのデータ保存先をリストまたは NTT に設定してください。",
            "ownerDisplayName": "開発チーム"
        }
    ]
}</code></pre></div>
<!-- /wp:sgb/codebox --></div></div>
<!-- /wp:sgb/accordion -->
:::

この一連の流れを理解することで、APIの仕組みと必要な権限が明確になります。

## Power Automate で自動化する

次に、Power Automate を使ってこの処理を自動化します。

### ステップ1：大まかな流れの確認

:::raw
<!-- wp:sgb/timeline -->
<div class="wp-block-sgb-timeline"><div class="sgb-tl"><!-- wp:sgb/timeline-item {"itemTitle":"\u003cstrong\u003ePowerShell スクリプトで権限設定\u003c/strong\u003e"} -->
<div class="wp-block-sgb-timeline-item sgb-tl-item"><div class="sgb-tl-item__label--default"></div><div class="sgb-tl-item__title"><strong>PowerShell スクリプトで権限設定</strong></div><div class="sgb-tl-item__main"><!-- wp:paragraph -->
<p>GitHubから&nbsp;<code>ManagePermissionGrant.ps1</code>&nbsp;を<a href="https://github.com/microsoft/PowerApps-Samples/blob/master/powershell/connectors/HTTPWithMicrosoftEntraId/ManagePermissionGrant.ps1">ダウンロード</a>。<br>PowerShell 7以上をインストールしてスクリプトを実行。<br>クラウド環境や対象ユーザー（全ユーザー or 特定ユーザー）を選択。</p>
<!-- /wp:paragraph --></div><div class="sgb-tl-item__marker main-bdr main-bc"></div></div>
<!-- /wp:sgb/timeline-item -->

<!-- wp:sgb/timeline-item {"itemTitle":"\u003cstrong\u003eGitHubのソリューションをインポートして利用\u003c/strong\u003e"} -->
<div class="wp-block-sgb-timeline-item sgb-tl-item"><div class="sgb-tl-item__label--default"></div><div class="sgb-tl-item__title"><strong>GitHubのソリューションをインポートして利用</strong></div><div class="sgb-tl-item__main"><!-- wp:paragraph -->
<p>私の GitHub のリポジトリで公開している <strong>Power Automate のクラウドフローとPower Apps キャンバスアプリ+ AI Builder を含むソリューション</strong>をダウンロード</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>インポートしてすぐに利用可能</p>
<!-- /wp:paragraph --></div><div class="sgb-tl-item__marker main-bdr main-bc"></div></div>
<!-- /wp:sgb/timeline-item --></div></div>
<!-- /wp:sgb/timeline -->
:::

### ステップ2：PowerShell でアクセス許可を付与

それではこれを Power Automate で自動的に取得できるようにしましょう。

Graph Explorer で行うように、 Power Automate のコネクターにも委任しアクセス権限を付与する必要があります。

![](https://www.geekfujiwara.com/wp-content/uploads/2025/05/image-122-1024x328.png)

ここでは Microsoft Graph を選択します。

![](https://www.geekfujiwara.com/wp-content/uploads/2025/05/image-124-1024x422.png)

続けて、委任したい権限を選択します。以下の権限がすべて必要です。

`Cntrl`キーを押しながら、すべて選択して次に進むようにしてください。

:::raw
<!-- wp:group {"metadata":{"categories":["sgb/content-block"],"patternName":"sgb/4682","name":"CodeCopy"},"className":"parent","css":".parent {\n\tposition: relative;\t\n}","scopedCSS":"#id-62ea580b-0406-4cfe-9f42-58a7d1c3c0fb .parent {\n\tposition: relative;\t\n}","js":"let btn = block.querySelector(\u0022.code-btn\u0022);\n\nbtn.addEventListener(\u0022click\u0022, () =\u003e {\n  let txt = block.querySelector(\u0022code\u0022).innerText;\n  navigator.clipboard.writeText(txt);\n\n  let copied = block.querySelector(\u0022.copied\u0022);\n  copied.style.display = \u0022block\u0022;\n  setTimeout(function () {\n    copied.style.display = \u0022none\u0022;\n  }, 1500);\n});","blockId":"id-62ea580b-0406-4cfe-9f42-58a7d1c3c0fb"} -->
<div class="wp-block-group parent"><!-- wp:paragraph {"css":"i {\n\tcursor: pointer;\n\tposition: absolute;\n\ttop: 2.5em;\n\tright: 1em;\n\tz-index:98;\n}\n\n.fa-copy {\n\tcolor:#777;\n}\n\n.copied{\n\tdisplay:none;\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tz-index:99;\n\tbackground:#222;\n\tcolor:#fff;\n\tborder-radius: 5px;\n\tpadding:3px;\n}","scopedCSS":"#id-fab7264f-72ac-4b45-abc2-25f671f065af i {\n\tcursor: pointer;\n\tposition: absolute;\n\ttop: 2.5em;\n\tright: 1em;\n\tz-index:98;\n}\n\n#id-fab7264f-72ac-4b45-abc2-25f671f065af .fa-copy {\n\tcolor:#777;\n}\n\n#id-fab7264f-72ac-4b45-abc2-25f671f065af .copied{\n\tdisplay:none;\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tz-index:99;\n\tbackground:#222;\n\tcolor:#fff;\n\tborder-radius: 5px;\n\tpadding:3px;\n}","blockId":"id-fab7264f-72ac-4b45-abc2-25f671f065af"} -->
<p><i class="fas fa-copy code-btn"></i><span class="copied">コピーしました！</span></p>
<!-- /wp:paragraph -->

<!-- wp:sgb/codebox {"title":"Microsoft Graph での委任権限一覧","source":"Application.ReadWrite.All, \nCalendars.ReadWrite, \nCalendars.ReadWrite.Shared, \nContacts.ReadWrite, \nDelegatedPermissionGrant.ReadWrite.All, \nEduAdministration.Read, \nEduAdministration.ReadWrite, \nEduRoster.Read, \nEduRoster.ReadWrite, \nFiles.ReadWrite.All,\nOnlineMeetingAiInsight.Read.All\nOnlineMeeting.Read\nOnlineMeeting.ReadWrite\nGroup.ReadWrite.All,\nIdentityUserFlow.ReadWrite.All,\nMail.ReadWrite, \nMail.ReadWrite.Shared, \nMail.Send, Mail.Send.Shared,\nMailboxSettings.ReadWrite, \nPeople.Read, People.Read.All,\nSites.Read.All,\nTasks.ReadWrite, \nUser.Read, \nUser.Read.All,\nUser.ReadWrite","highlight":true,"className":"parent","css":"pre {\n    background: #3c3c3c;\n\tcolor:#ddd;\n\tfont-size: 0.9em;\n\tborder: none;\n}\n\ncode,\n.hljs-tag {\n\tcolor:#fff;\n}\n\n.pre_tag\u003espan {\n    background-color: #3c3c3c;\n}","scopedCSS":"#id-210d261f-144e-4171-a55d-dc3811b52a71 pre {\n    background: #3c3c3c;\n\tcolor:#ddd;\n\tfont-size: 0.9em;\n\tborder: none;\n}\n\n#id-210d261f-144e-4171-a55d-dc3811b52a71 code,\n#id-210d261f-144e-4171-a55d-dc3811b52a71 .hljs-tag {\n\tcolor:#fff;\n}\n\n#id-210d261f-144e-4171-a55d-dc3811b52a71 .pre_tag\u003espan {\n    background-color: #3c3c3c;\n}","blockId":"id-210d261f-144e-4171-a55d-dc3811b52a71"} -->
<div class="wp-block-sgb-codebox pre_tag parent"><span><i class="fa fa-code"></i>Microsoft Graph での委任権限一覧</span><pre class="js-sng-highlight"><code>Application.ReadWrite.All, 
Calendars.ReadWrite, 
Calendars.ReadWrite.Shared, 
Contacts.ReadWrite, 
DelegatedPermissionGrant.ReadWrite.All, 
EduAdministration.Read, 
EduAdministration.ReadWrite, 
EduRoster.Read, 
EduRoster.ReadWrite, 
Files.ReadWrite.All,
OnlineMeetingAiInsight.Read.All
OnlineMeeting.Read
OnlineMeeting.ReadWrite
Group.ReadWrite.All,
IdentityUserFlow.ReadWrite.All,
Mail.ReadWrite, 
Mail.ReadWrite.Shared, 
Mail.Send, Mail.Send.Shared,
MailboxSettings.ReadWrite, 
People.Read, People.Read.All,
Sites.Read.All,
Tasks.ReadWrite, 
User.Read, 
User.Read.All,
User.ReadWrite</code></pre></div>
<!-- /wp:sgb/codebox --></div>
<!-- /wp:group -->
:::

アクセス権を追加すると以下のようなメッセージが表示されます。特定のユーザーだけにアクセス権を適用するのか、全ユーザーに適用するのかを選択することができます。

> [!TIP]
> この HTTP with Entra ID コネクターを、この権限で利用するユーザーの範囲を設定することができます。

![](https://www.geekfujiwara.com/wp-content/uploads/2025/06/image-5-1024x57.png)

続けて、許可を与えます。

![](https://www.geekfujiwara.com/wp-content/uploads/2025/06/image-6-1024x165.png)

この後の処理もウイザードの通り進めて権限を付与して終了します。

これで、Power Automate のコネクターの権限が強化され、 Copilot Meeting API にアクセスすることができるようになりました。

### ステップ3: GitHubで公開中のサンプルを活用しよう

この Meeting Insights API からの議事録を取得する仕組みは GitHubでサンプルとして公開しています。

これらを活用することで、Microsoft 365 Copilotの議事録取得をPower Platformで簡単に実現できます。ぜひ業務に取り入れてみてください！

[geekfujiwara/CopilotMeetingInsightsApp: Power PlatformでMicrosoft 365 Copilotの議事録を取得・活用するソリューション](https://github.com/geekfujiwara/CopilotMeetingInsightsApp)

## まとめ

Microsoft 365 Copilot のMeeting Insights API は、会議の内容を自動で取得・活用するための強力なツールです。Power Automate と Power Apps を組み合わせることで、議事録の取得から表示までを一気通貫で実現できます。

GitHub で公開されているサンプルを使えば、すぐに試すことができますので、ぜひこの機会に導入を検討してみてください！
