掲題のフローについての解説編です。
このフローをGitHubで公開しました。下記リンク先からダウンロードしてください。
github.com
解説の経緯
今回の投稿は概要編の続きです。
解説の範囲について
「スレッドのすべての投稿を取得する」ステップについては別投稿を参照してください
投稿を取得するアクション(下図の赤枠)については過去に投稿したこちらの記事で解説したフローと同じです。そのため、今回は説明を割愛します。
wataruf.hatenablog.com
解説する範囲
今回解説する範囲は下図の赤枠の部分です。
ステップごとの解説
「選択-「親の投稿」と返信それぞれの投稿者IDの一覧」
このアクションは「データ操作」>「作成」です。取得した投稿一覧の配列からユーザーIDのみを取得します。
プロパティ
"from": "@variables('投稿一覧')",
"select": "@item()?['from']?['user']?['id']"
このユーザーIDは後続のアクションでグループチャットのメンバーを指定する際に使います。
「作成-チャットのタイトル」
このアクションは「データ操作」>「作成」です。グループチャットのタイトルを指定します。もとになったスレッドにタイトルがある場合はそれをグループチャットのタイトルに使用します。
式
if
(
empty
(
triggerBody()?['entity']?['teamsFlowRunContext']?['messagePayload']?['subject']
)
,
null
,
triggerBody()?['entity']?['teamsFlowRunContext']?['messagePayload']?['subject']
)
「作成-重複を排除」
このアクションは「データ操作」>「作成」です。union関数を使用してユーザーIDの重複を排除します。
式
union(body('選択-「親の投稿」と返信それぞれの投稿者IDの一覧'),body('選択-「親の投稿」と返信それぞれの投稿者IDの一覧'))
「チャットの作成」
このアクションは「Microsoft Teams」>「チャットの作成」です。グループチャットを作成します。
プロパティ
"item/members": "@join(outputs('作成-重複を排除'),';')",
"item/topic": "@triggerBody()?['entity']?['teamsFlowRunContext']?['messagePayload']?['subject']"
「作成-チャットの本文」
このアクションは「データ操作」>「作成」です。
式
指定したスレッドからグループチャットを作成しました。
【元のスレッド】
<a href="@{triggerBody()?['entity']?['teamsFlowRunContext']?['messagePayload']?['linkToMessage']}">スレッドを開く</a>
「チャットまたはチャネルでメッセージを投稿する」
このアクションは「データ操作」>「作成」です。
プロパティ
"poster": "Flow bot",
"location": "Group chat",
"body/recipient": "@outputs('チャットの作成')?['body/id']",
"body/messageBody": "@{replace(outputs('作成-チャットの本文'),decodeUriComponent('%0A'),'
"
')}
このフローをGitHubで公開しました。(再掲)
フローをGitHubで公開しました。下記リンク先からダウンロードしてください。この投稿の冒頭で記載しているリンクと同じです。
github.com
最後に
「チャットの作成」アクションを使った別フローを作成しました。こちらについても別途公開します。(`・ω・´)シャキーン
Teamsの「いいね」を起点にしてグループチャット・会議を開始するフローできた。 pic.twitter.com/my5IATwJGq
— わたるふ (@wataruf01) January 14, 2023
今回は以上です。