706 Views
August 30, 24
スライド概要
2024/8/28(水)に実施した関西PowerPlatform勉強会で登壇した際の資料です。
自己紹介 (京都の某メーカーの)デジタル・データ活用推進課 大原 知起 普段はPower Platformなどの市民開発ツールの運用推進、ルー ル整備や問い合わせ対応などをしています Power Platform歴はだいたい1年くらいです⋯ 好きなツール ただ、今日はプライベートでの参加なので、あまり会 社の話はしません⋯ またどこかで登壇するかもしれないのでその時に⋯ 最近取れました
最近直面した問題 普段FAQをやっています。 Teamsチャネル上がメインなのですが、やり取り記録が流れる⋯ 将来的にノウハウ化するためにも記録を手元に残しておきたい 対応が終わった瞬間に全部とれると嬉しい
まず試したこと まずは、Power Automateの組み込みのコネクタを試してみた 使えそうなのはこの2つだけど… ↓みたいなチャットを作って試してみる
既存コネクタの問題 狙った以外のメッセージも取れて しまう⋯ 返信は取れたが、一行ずつ⋯ 取得はメッセージIDが必須 これで行けそう? だけど… 返信のメッセージIDはトリガーでは取得できない =返信に使うことはできない! を使う手もあるが⋯
そこで、TeamsのHTTPコネクタ! なら実現可能! *しかも、無償版! これを使うことで、一部のGraph APIをEntra IDへのアプリ登録なしで使うことができます! ■今回使うAPIと記法 チャネルまたはチャットで chatMessage を取得する - Microsoft Graph v1.0 | Microsoft Learn GET https://graph.microsoft.com/v1.0/teams/{チームid}/channels/{チャネル id}/messages/{メッセージid}/replies ここの結果を返せる! *結果の取得には「JSONの解析」ア クションを挟む必要ある *結果は新しいものから先に帰ってく るので配列をシャッフルする必要が ある。
実装 利用シーンとしてはこんな感じで使えます…… TeamsでFAQなどしてる時は試してみてください!! ①Teamsのチャネルに FAQ投稿 利用者 ②FAQの内容及び、メッセージIDを データベースに登録 ③回答を実施 ④対応ステータス を完了にする 管理者 ⑤対応ステータスが「完了」になったことをトリガーにするフ ローを用意。返信の内容を取得し、データベースに転記する。 Next:フローの全体像
取得結果をJSONの解 析に入れる reverse関数で降順にしたものを ForEachとして指定 ここのForEachは自動追加さ れるがエラーが発生するので 手動していしたほうがいい。 JSONの解析 (items)?[‘body’]?[‘value’]と入 れると大体の結果を取れる 必要な要素を数式で取得 時刻:For Each(‘items’)?[‘createdDateTime’] 投稿者名: For Each(‘items’)?[‘from’]?[‘user’]?[‘displayName’] 本文:For Each(‘items’)?[‘body’]?[‘contents]
制約事項 は、万能ではありません 打てないAPIの方が多いです…… ■制約事項 Microsoft Team エンドポイントに対して呼び出す Microsoft Graph REST API リクエストを作成します。 次の セグメントがサポートされています: 1st segment: /teams, /me, /users 2nd segment: channels, chats, installedApps, messages, pinnedMessages. Microsoft Teams - Connectors | Microsoft Learn Teams返信の例でいうと… 1st segment 2nd segment https://graph.microsoft.com/v1.0/teams/{チームid}/channels/{チャネルid}/messages/{メッセー ジid}/replies セグメントが↑の条件に合っているAPIのみ利用可能です。 ただ、実際には3つめ以降のセグメントも影響していそうです…
使えない事例 これがドキュメントに記 載されていないせいか、 エラーになる GET https://graph.microsoft.com/v1.0/teams/{チームID}/channels/{チャネルID}/members チャネルにメンバーを追加する - Microsoft Graph v1.0 | Microsoft Learn Microsoft Team エンドポイントに対して呼び出す Microsoft Graph REST API リクエストを作成します。 次の セグメントがサポートされています: 1st segment: /teams, /me, /users 2nd segment: channels, chats, installedApps, messages, pinnedMessages. ただし、チャネルの作成はできたりする・・・・・ POST https://graph.microsoft.com/v1.0/teams/{チームID}/channels 他にも、メッセージ投降で通常できない操作もできるみたいです。是非お試しを!! Power Automate : Graph API で Teams にメッセージ投稿 | 株式会社イ ルミネート・ジャパン (illuminate-j.jp)