ふらりのメモ書き

Microsoft 365 , Power Platform らへん

【Power Automate】Microsoft Graph API でチャネルメッセージの返信を取得してみた話


昔の技術ノートを整理していたら、チャネルメッセージの返信を取得するMicrosoft Graph APIがひっそりとGA(わたしが最近見てなかっただけ)していたことに気づいたので使ってみました。

Microsoft Graph API : チャネルメッセージの応答を一覧表示する

learn.microsoft.com

オプションのクエリ パラメーターが $top のみサポートで、最大50件っぽいですね。実際50件なのか試してみます。

返信100件準備

とりあえず、検証用に親スレッドに対して100件返信してみました。
返信は応答 1、応答 2...、応答 100 の100件。
なお、このサンプルの作成はPower Automate のクラウドフローで作成しました。(手動じゃないよ)

HTTP要求で必要な値

このMicrosoft Graph API を使うには、{team-id}、{channel-id}、{message-id} の3点が必要です。

GET /teams/{team-id}/channels/{channel-id}/messages/{message-id}/replies  

親スレッドからリンクを取得

親スレッド(一番最初の投稿)の右上の三点リーダーをクリックし、リンクをコピー を選択します。

メモ帳などに張り付けて確認します。
親スレッドのリンクに必要な項目が記載されています。

項目 枠の色 備考
{team-id} 赤枠 guroupId= より後から、次の&の手前まで
{channel-id} 緑枠 message/ より後から、次の/の手前まで
{message-id} 青枠 {channel-id}の後ろの/より後から、次の?の手前まで

Microsoft Graph HTTP 要求を送信する アクションの利用

Microsoft Graph HTTP 要求を送信する アクションを利用して、Microsoft Teams のMicrosoft Graph API をつかってみます。

GET https://graph.microsoft.com/v1.0/teams/{team-id}/channels/{channel-id}/messages/{message-id}/replies

Microsoft Graph HTTP 要求を送信する アクション の赤枠を設定

設定後
※HTMLテーブルの作成 アクションは返信の本文のみを取得して確認するために入れていますので、実際の操作では不要です。

検証何件取得できるのか?

$top の最大許容値が50なので、50件だと思うのですが、試してみます。

オプションクエリなしで実行

応答 100 ~ 応答 81 の 20件取得できているようです。

実行前

実行後

オプションクエリあり、$top=50 で実行

応答 100 ~ 応答 51までの50件取得できています。

実行前

実行後

オプションクエリあり、$top=51 で実行

おそらくエラーになると思うのですが、$top=51で実行してみます。
やはり、エラーになりました。

実行前

実行後

さいごに

Microsoft Graph HTTP 要求を送信する アクションを使ってチャネルメッセージ(スレッド表示)の返信が取得できることがわかりました。
すべての応答が取得できるわけではないので注意が必要ですね。
また、Microsoft Graph HTTP 要求を送信する 系のアクションは随時権限の見直しがされていて、今できていてもいずれできなくなったり、別途アクションとして追加されたり(されなかったり)するので利用には注意が必要です。

なお、JSONの解析アクションと合わせて利用すると、動的コンテンツとしても扱えるので合わせての利用がおすすめです。