件名が長くなりました。今回は掲題の件について検証・実装したフローを解説します。今回は概要編です。
フローは解説編を投稿する際に公開する予定です。
注意
今回の一連の投稿(概要編・解説編)には「プレビュー版のアクション」と「ベータ版のAPI」を使用しています。これらの仕様は今後変わる可能性があります。そのため、SI案件などで使用する場合はリスクを把握したうえで使用を検討してください。
フローについての説明
フローの概要
このフローは、Teams上のスレッドを指定をしてフローを実行することで、そのスレッドのすべての投稿(= 親の投稿とそれに対するすべての返信)をCSVに保存するフローです。
フローの使用イメージ
CSVに保存したいスレッドで「・・・」>「その他の操作」> 「スレッドをOneDriveにCSV保存」をクリックします。
フローが開始した旨のメッセージが表示されます。
botから届くチャットは2つのリンクが記載されたチャットです。
- エクスポート元のスレッドに遷移するリンク
- OneDriveに保存されたCSVの直接リンク
「スレッドを開く」をクリックすると、エクスポート元のスレッドに画面が移動し、親の投稿が強調表示されます。
「CSVを開く」をクリックすると、Excel Online でCSVが開きます。
CSVは、フローを実行したユーザーのOneDriveに保存されます。フローによってOneDriveのルートフォルダ直下に「スレッドをOneDriveにCSV保存」フォルダが自動で作成され、そのフォルダ内にCSVが保存されます。
フロー図
フローの全体は下図の通りです。
フローの特徴
「Office 365 Group」コネクタの「HTTP 要求を送信します (プレビュー)」アクションを使用してGraph APIを使用している
このフローでは、親の投稿とそれに対する返信を取得するために Graph API を使用しています。
Graph エクスプローラー - Microsoft Graph
Graph API を使うためには通常以下の2つが必要です。
しかしがらこの2つは、Azure ADに対して操作を行う権限が必要であったり、追加のライセンスが必要なアクションを使用する必要があったりするため運用環境で使用するにはハードルがあります。
それを解決してくれるのが「Office 365 Group」コネクタの「HTTP 要求を送信します (プレビュー)」アクションです。このアクションを利用することで、一部のAPIがプレミアムアクションを使わずAzureADアプリも作らずに使うことができます。
これについてはHiroさんのブログでも紹介されています。
Office 365 Groups コネクターの 「Send HTTP request」アクションを利用することで、一部のGraph API実行はスタンダードの範囲内で実行可能です。
このアクションを利用することで使えるAPIには、標準アクションの範囲では実現が難しいと思われる「指定した"親の投稿"に対する返信を取得」が含まれています。
※ ここが重要。(`・ω・´)
これを応用して、スレッド全体の取得を行ったのが今回作成したフローです。
「CSVをOneDriveに保存」と「OneDriveに保存したCSVの直接リンクを通知」をフローが行うためユーザーが保存先を意識しなくても使える
ファイル保存とそのファイルのフルパス通知の両方をフローが行うようにしました。そのため、このフローのユーザー操作には「OneDriveを開く」というステップが無いです。そのため、OneDrive内でどのようなフォルダ構造・ファイルパスでCSVが保存されているかをユーザーは意識する必要がありません。
厳密にいえば、フローを使い続けるとCSVがOneDriveに溜まる一方になります。OneDriveの存在をユーザーがまったく意識しなくてもすむようにするために「保存されてから一定期間過ぎたCSVを自動削除する」アクションをフローに追加することもできます。
ステップごとの解説とフローの公開は解説編で行います
フローが長くなりましたのでこの件も解説編を設けたいと思います。解説編は4回に分ける見通しです。
また、解説編ではフローをGitHubで公開します。
以上です。
追記:解説編その1を投稿しました
解説編その1です。
wataruf.hatenablog.com