背景
会社で・・課のグループチャットがある。
なんと、そこでは雑談がしにくいことから、ある時間ごとに「雑談・休憩しましょう」と流れます・・。
いや、そんなことやって誰がするんだよ、って思うんですが事実です
まぁ、文句ばっかり言っててもしょうがないので、盛り上げるためにネタを投稿してたんですが、その都度やるとなると面倒だし、作業中だと反応したくないときもある。
ってことで、今回のAutomateを作ってみた
概要
- ネタリストを Lists に日々用意。
- 別のところに登録してるネタを、自動登録
- 気になったことは別途手動で登録もあり
- 「雑談・休憩しましょう」投稿に自動応答で、ネタリストから投稿
詳細
ネタリストの準備
列名 | 型 | 概要 |
---|---|---|
Title | テキスト | リンクの名称として利用 |
URL | ハイパーリンク | リンクとして利用 |
Posted | はい/いいえ | 投稿済みかどうか |
Automate投稿に対する自動応答
Automate投稿なので、メッセージは固定。
ただ、日本語なのがたまに傷
方法としては以下二つあったけど、以前から使いたかった Trigger ってことで前者を選択
- 『キーワードが言及されているとき』 アクションを利用して、応答
- 『チャットに新しいメッセージが追加されたとき』 アクションを利用して、trigger condition で、応答
ということで、トリガー
このトリガー、元々複数単語には対応していない。詳細は以下で、ちょっと古いけど
処理
詳細は上図に書いた。
説明が必要とするなら
ネタリストから投稿用アイテムの取得
-
FilterQuery で Posted ne true の条件を設定する
※上図では、GUIで設定する為反転 -
投稿は一件のみなので、Top Count = 1
Teamsへの投稿内容作成
- blockquote で元の投稿を引用表示
- あとは、 でリンク化してるだけ
Message for temas
<blockquote>@{outputs('Get_message_details')?['body/body/plainTextContent']}</blockquote>
<a href=@{first(outputs('Get_items')?['body/value'])['URL']}>@{first(outputs('Get_items')?['body/value'])['Title']}</a>
アクション部分のコピペ
Action
{"id":"652b24f9-d908-4e4d-acf8-58821bad0d73","brandColor":"#8C3900","connectionReferences":{"shared_sharepointonline_1":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline/connections/shared-sharepointonl-15e7a58d-6555-418d-a955-a6b286a76a7b"}},"shared_teams":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_teams/connections/shared-teams-864099d5-54a7-4002-93b6-565ecf481128"}}},"connectorDisplayName":"Control","icon":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMyIDMyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KIDxwYXRoIGQ9Im0wIDBoMzJ2MzJoLTMyeiIgZmlsbD0iIzhDMzkwMCIvPg0KIDxwYXRoIGQ9Im04IDEwaDE2djEyaC0xNnptMTUgMTF2LTEwaC0xNHYxMHptLTItOHY2aC0xMHYtNnptLTEgNXYtNGgtOHY0eiIgZmlsbD0iI2ZmZiIvPg0KPC9zdmc+DQo=","isTrigger":false,"operationName":"Scope","operationDefinition":{"type":"Scope","actions":{"Get_message_details":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_teams","operationId":"GetMessageDetails","apiId":"/providers/Microsoft.PowerApps/apis/shared_teams"},"parameters":{"messageId":"@first(triggerOutputs()?['body/value'])['messageId']","threadType":"groupchat","body/recipient":"19:bbbf9a6a83704bbc8ccb1101e40871f3@thread.v2"},"authentication":"@parameters('$authentication')"},"runAfter":{},"metadata":{"operationMetadataId":"f525a834-56b1-4cf5-9e91-38367543da16"}},"Condition":{"type":"If","expression":{"equals":["@outputs('Get_message_details')?['body/body/plainTextContent']","10分まで休憩・雑談の時間にしましょう。"]},"actions":{"Get_items":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_sharepointonline_1","operationId":"GetItems","apiId":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline"},"parameters":{"dataset":"https://shimakuma-my.sharepoint.com/personal/shima_kuma_shimakuma_onmicrosoft_com","table":"3786b79b-e380-448f-b3d9-45a2575cbfde","$filter":"(Posted eq '') or (Posted eq 'false')","$top":1},"authentication":"@parameters('$authentication')"},"runAfter":{},"metadata":{"operationMetadataId":"c48f3b60-47a1-40fa-95e5-6484c965e1c2"}},"Condition_2":{"type":"If","expression":{"equals":["@empty(outputs('Get_items')?['body/value'])",true]},"actions":{},"runAfter":{"Get_items":["Succeeded"]},"else":{"actions":{"Compose":{"type":"Compose","inputs":"<blockquote>@{outputs('Get_message_details')?['body/body/plainTextContent']}</blockquote>\n<a href=@{first(outputs('Get_items')?['body/value'])['URL']}>@{first(outputs('Get_items')?['body/value'])['Title']}</a>","runAfter":{},"metadata":{"operationMetadataId":"9e92c61d-7905-424b-88e4-5269a95729fa"}},"Post_message_in_a_chat_or_channel":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_teams","operationId":"PostMessageToConversation","apiId":"/providers/Microsoft.PowerApps/apis/shared_teams"},"parameters":{"poster":"Flow bot","location":"Group chat","body/recipient":"19:bbbf9a6a83704bbc8ccb1101e40871f3@thread.v2","body/messageBody":"@outputs('Compose')"},"authentication":"@parameters('$authentication')"},"runAfter":{"Compose":["Succeeded"]},"metadata":{"operationMetadataId":"8525e155-96b4-4e37-a07f-b46bc8b980e6"}},"Update_item":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_sharepointonline_1","operationId":"PatchItem","apiId":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline"},"parameters":{"dataset":"https://shimakuma-my.sharepoint.com/personal/shima_kuma_shimakuma_onmicrosoft_com","table":"3786b79b-e380-448f-b3d9-45a2575cbfde","id":"@first(outputs('Get_items')?['body/value'])['ID']","item/Posted":true},"authentication":"@parameters('$authentication')"},"runAfter":{"Post_message_in_a_chat_or_channel":["Succeeded"]},"metadata":{"operationMetadataId":"eedb677a-767d-467b-a591-5382a7bdea2d"}}}},"metadata":{"operationMetadataId":"e9780bdd-816e-4e62-95d8-7079eae8e6fb"}}},"runAfter":{"Get_message_details":["Succeeded"]},"metadata":{"operationMetadataId":"097e3a72-8ba8-4ce5-a152-11cb01eeafd8"}}},"runAfter":{},"metadata":{"operationMetadataId":"effcff01-a242-4a1a-971f-11db4921ad09"}}}
使い方
あとがき
ほんとは、teams news を action で取得したかったのだが、まだActionがなかったので、自分でネタ作るしかない・・