Microsoft Teams のチャットメッセージ取得における Power Automate コネクタの設計に関する考察

# Power Automate で Microsoft Graph API を利用する利点

ユーザーは Microsoft Graph API の利用を煩わしく感じているかもしれませんが、この方法にはいくつかの重要な利点があります。

* **強化されたセキュリティ:** Graph API によって提供される堅牢な認証および認可メカニズム。  
* **より高い柔軟性:** ターゲットを絞ったデータ取得のための正確なクエリとフィルタリング機能。  
* **プラットフォームの一貫性:** Microsoft の統合 API 戦略との整合性による容易な統合。  
* **豊富なデータへのアクセス:** メッセージの内容だけでなく、送信者の詳細、タイムスタンプ、添付ファイル、リアクションなどのメタデータを含む広範な情報へのアクセス。  
* **拡張性:** Microsoft Teams の新機能が利用可能になると、Graph API も継続的に進化し、それらの機能へのアクセスを提供します。例えば、標準の Power Automate Teams コネクタアクションでは利用できない、緊急度の高いメッセージの送信などが Graph API を利用することで実現可能です。

## トレードオフと考慮事項

Microsoft Graph API を利用することの利点がある一方で、ユーザーが感じるように、いくつかのトレードオフと考慮事項も存在します。

* **複雑さの認識:** HTTP 要求の使用や Graph API の構文の理解は、一部のユーザーにとって、ドロップダウンメニューや簡単な構成を持つ事前構築されたコネクタアクションを使用するよりも複雑に感じられる可能性があります。  
* **学習コスト:** ユーザーは、Graph API の概念、認証方法（Azure AD アプリケーションの登録とアクセス許可など）、および Teams メッセージエンドポイントの特定の構文について学習する必要があるかもしれません。  
* **開発労力の増加:** 「Microsoft Graph HTTP 要求の送信」アクション 1 を使用してチャットメッセージの取得を実装するには、これらの詳細を抽象化する直接的なアクションと比較して、Power Automate フロー内でより多くの手動ステップと構成が必要になります。

## コミュニティのフィードバックと将来の機能強化の可能性

- Power Automate コミュニティ内では、Teams チャットメッセージの取得に関連するより直接的なアクションに対する要望が表明されています
- 特定のメッセージ ID によるメッセージの取得や、メッセージへの返信の取得など、より粒度の細かいメッセージ操作を Power Automate コネクタ内で実現したいというニーズが存在します
- 現状では、Graph API を利用した回避策が議論されることが多いようです
- Microsoft が将来のアップデートで、これらの一般的なユーザーシナリオに対応するために、より具体的な Teams コネクタアクションを追加する可能性も考えられます。


**表 1: 関連する Power Automate Microsoft Teams コネクタのアクション**

| アクション名 | 説明 |
| :---- | :---- |
| チームにメンバーを追加 | Microsoft Teams にメンバーを追加します |
| チームを作成 | 新しい Microsoft Teams を作成します |
| チームを取得 | Microsoft Teams の詳細を取得します |
| チャネルを作成 | 指定されたチーム内に新しいチャネルを作成します |
| メッセージを取得 | この操作は、特定のチーム内のチャネルからメッセージを取得するために使用されます |
| チャットを作成 | 1 対 1 またはグループチャットを作成します |
| チャットを一覧表示 | 参加している最近のチャットを一覧表示します |
| メッセージの詳細を取得 | チャットまたはチャネル内のメッセージの詳細を取得します |
| Microsoft Graph HTTP 要求を送信する | Microsoft Teams エンドポイントに対して Microsoft Graph REST API 要求を構築して呼び出します |

**表 2: Teams メッセージへのアクセスに関する主要な Microsoft Graph API エンドポイント**

| エンドポイント | 説明 | 必要なアクセス許可 (最小特権) |
| :---- | :---- | :---- |
| GET /chats/{chat-id}/messages | 特定のチャットからメッセージを取得します | Chat.Read |
| GET /users/{user-id}/chats/getAllMessages | 指定されたユーザーが参加しているすべてのチャットからすべてのメッセージを取得します | Chat.Read |
| GET /teams/{team-id}/channels/{channel-id}/messages | チーム内の特定のチャネルからメッセージを取得します | ChannelMessage.Read.All |

#### **Works cited**

1. Microsoft Teams \- Connectors, accessed April 7, 2025, [https://learn.microsoft.com/en-us/connectors/teams/](https://learn.microsoft.com/en-us/connectors/teams/)  
2. Microsoft Graph overview, accessed April 7, 2025, [https://learn.microsoft.com/en-us/graph/overview](https://learn.microsoft.com/en-us/graph/overview)  
3. Use the Microsoft Graph API to work with Microsoft Teams, accessed April 7, 2025, [https://learn.microsoft.com/en-us/graph/api/resources/teams-api-overview?view=graph-rest-1.0](https://learn.microsoft.com/en-us/graph/api/resources/teams-api-overview?view=graph-rest-1.0)  
4. Working with Microsoft Teams messaging APIs in Microsoft Graph, accessed April 7, 2025, [https://learn.microsoft.com/en-us/graph/teams-messaging-overview](https://learn.microsoft.com/en-us/graph/teams-messaging-overview)  
5. Introduction to Microsoft Teams for admins, accessed April 7, 2025, [https://learn.microsoft.com/en-us/microsoftteams/teams-overview](https://learn.microsoft.com/en-us/microsoftteams/teams-overview)  
6. Microsoft Graph API Integration with Teams \- nBold, accessed April 7, 2025, [https://nboldapp.com/microsoft-graph-api-integration-with-teams/](https://nboldapp.com/microsoft-graph-api-integration-with-teams/)  
7. Get chatMessage in a channel or chat \- Microsoft Graph v1.0, accessed April 7, 2025, [https://learn.microsoft.com/en-us/graph/api/chatmessage-get?view=graph-rest-1.0](https://learn.microsoft.com/en-us/graph/api/chatmessage-get?view=graph-rest-1.0)  
8. Can we use Microsoft Graph API to extract messages from a Meeting chat, accessed April 7, 2025, [https://learn.microsoft.com/en-us/answers/questions/1464947/can-we-use-microsoft-graph-api-to-extract-messages](https://learn.microsoft.com/en-us/answers/questions/1464947/can-we-use-microsoft-graph-api-to-extract-messages)  
9. List messages in a chat \- Microsoft Graph v1.0, accessed April 7, 2025, [https://learn.microsoft.com/en-us/graph/api/chat-list-messages?view=graph-rest-1.0](https://learn.microsoft.com/en-us/graph/api/chat-list-messages?view=graph-rest-1.0)  
10. chats: getAllMessages \- Microsoft Graph v1.0, accessed April 7, 2025, [https://learn.microsoft.com/en-us/graph/api/chats-getallmessages?view=graph-rest-1.0](https://learn.microsoft.com/en-us/graph/api/chats-getallmessages?view=graph-rest-1.0)  
11. Get chat \- Microsoft Graph v1.0, accessed April 7, 2025, [https://learn.microsoft.com/en-us/graph/api/chat-get?view=graph-rest-1.0](https://learn.microsoft.com/en-us/graph/api/chat-get?view=graph-rest-1.0)  
12. How to send chat message using graph api using access token generated using application credentials \- Learn Microsoft, accessed April 7, 2025, [https://learn.microsoft.com/en-us/answers/questions/1525988/how-to-send-chat-message-using-graph-api-using-acc](https://learn.microsoft.com/en-us/answers/questions/1525988/how-to-send-chat-message-using-graph-api-using-acc)  
13. Overview of security and compliance \- Microsoft Teams, accessed April 7, 2025, [https://learn.microsoft.com/en-us/microsoftteams/security-compliance-overview](https://learn.microsoft.com/en-us/microsoftteams/security-compliance-overview)  
14. Microsoft Teams: Advantages of the new architecture, accessed April 7, 2025, [https://techcommunity.microsoft.com/blog/microsoftteamsblog/microsoft-teams-advantages-of-the-new-architecture/3775704](https://techcommunity.microsoft.com/blog/microsoftteamsblog/microsoft-teams-advantages-of-the-new-architecture/3775704)  
15. Using the new 'Send a Microsoft Graph HTTP request' action in Power Automate to send urgent messages in Microsoft Teams chats/channels \- michelcarlo, accessed April 7, 2025, [https://michelcarlo.com/2024/05/01/using-the-new-send-a-microsoft-graph-http-request-action-in-power-automate-to-send-urgent-messages-in-microsoft-teams/](https://michelcarlo.com/2024/05/01/using-the-new-send-a-microsoft-graph-http-request-action-in-power-automate-to-send-urgent-messages-in-microsoft-teams/)  
16. Send a private message via Teams · Community \- Power Automate Ideas, accessed April 7, 2025, [https://ideas.powerautomate.com/d365community/idea/9dedc395-db5e-485c-aa53-359ffc9da1d9](https://ideas.powerautomate.com/d365community/idea/9dedc395-db5e-485c-aa53-359ffc9da1d9)  
17. Teams get message and replies by id · Community \- Power Automate Ideas, accessed April 7, 2025, [https://ideas.powerautomate.com/d365community/idea/d0b198ce-fb2b-48a0-980c-3296cdd584d9](https://ideas.powerautomate.com/d365community/idea/d0b198ce-fb2b-48a0-980c-3296cdd584d9)  
18. Power Automate Teams Message Limitiation, accessed April 7, 2025, [https://community.powerplatform.com/forums/thread/details/?threadid=a61d9908-9a09-f011-bae3-7c1e52696149](https://community.powerplatform.com/forums/thread/details/?threadid=a61d9908-9a09-f011-bae3-7c1e52696149)  
19. Send a chatmessage from an app to a user using GraphApi \- Stack Overflow, accessed April 7, 2025, [https://stackoverflow.com/questions/78621639/send-a-chatmessage-from-an-app-to-a-user-using-graphapi](https://stackoverflow.com/questions/78621639/send-a-chatmessage-from-an-app-to-a-user-using-graphapi)


https://sasami-axis.hatenablog.com/entry/2024/09/22/221026

https://koruneko.hatenablog.com/entry/2023/09/25/021653

https://qiita.com/yamad365/items/7e22c1a2bfe2bde2615c