0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

一般ユーザーが Microsoft Teams の会話履歴を取得できない理由とその限界

Posted at

はじめに

Microsoft Teams を業務で使っていると、「チャット履歴を取得して分析したい」「記録として残したい」と思うことがあります。
私自身も Power Automate や Graph API を使って、Teams の会話履歴を取得しようと試みましたが、一般ユーザーでは実現が難しいことが分かりました。

この記事では、実際に試して分かった制限や、なぜ一般ユーザーでは難しいのかをまとめます。

難しい理由

その1.Graph API を使うには Azure AD アプリ登録が必要

Microsoft Graph API を使えば、Teams のチャネルメッセージやチャット履歴を取得できます。
しかし、API を使うには以下の情報が必要です。

  • tenant_id(テナント ID)
  • client_id(アプリのクライアント ID)
  • client_secret(アプリのシークレット)

これらは Azure AD にアプリ登録しないと取得できません
そして、アプリ登録には 管理者権限が必要です。

つまり、一般ユーザーが自分のアカウントだけで Graph API を使うことはできません。

その2.Power Automate の Teams コネクタの制限

Power Automate には「Teams のメッセージを取得する」コネクタがあります。
これを使えば、チャネルのメッセージを取得できますが、以下の制限があります。

  • 最大20件までしか取得できない
  • @odata.nextLink によるページングがサポートされていない
  • コードビューを編集しても、URL を直接指定することはできない

つまり、大量の履歴を自動で取得することはできません

一般ユーザーができること・できないこと

方法 できるか 備考
Graph API(直接) × 管理者によるアプリ登録が必要
Power Automateコネクタ 最大20件、ページング不可
Power Automate + HTTP × トークン取得にclient_secretなどが必要

そのため、もし本格的に Teams の履歴を取得したい場合は、
管理者に以下のような依頼をする必要があります。

  • Azure AD にアプリ登録してもらう
  • 必要な API 権限(例:ChannelMessage.Read.All)を付与してもらう
  • クライアント ID やシークレットを共有してもらう

まとめ

  • 一般ユーザーが Teams の会話履歴を取得するのは、現状ではかなり難しい
  • Power Automate のコネクタでは制限があり、実用的な取得は困難
  • 本格的にやるには、管理者との連携が不可欠

おわりに

「Teams の履歴を取得したい」というニーズは多いはずですが、Microsoft の仕様上、一般ユーザーだけでは限界があります
この記事が、同じように悩んでいる方の参考になれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?