Power AutomateからMicrosoft TeamsへBotで投稿する方法3種をまとめてみた

# 注意
本記事の挙動が2020/10/05頃に変更になったようです。調査後に記事更新予定です（2020/10/06）

[Power AutomateからMicrosoft TeamsにBotとしてメッセージを送信する機能でHTML形式が使えなくなったのかも \- Qiita](https://qiita.com/yukimatsu/items/286be09e4b80cfd20478)

# 前置き

本記事は**2019年8月25日時点**の情報を元にしています。プレビューのアクションの内容も含んでいるため、将来的に挙動が異なる場合があります。お気づきの点はコメントいただければ幸いです。

Power Automateを使ってTeamsにメッセージを送る方法が増えていたので、それぞれの特徴を自分なりにまとめてみました。

![2019-08-25_23h14_43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/aabce41c-baac-f48a-724c-924aa2b60407.png)


# 結論

<table>
<thead><tr><th>アクション</th><th>メッセージをフロー ボットとしてチャンネルに投稿する</th><th>独自のアダプティブ カードをフロー ボットとしてチャンネルに投稿する</th><th>HTTP（Teams Incoming webhook）</th></tr></thead><tbody>
 <tr><td>コネクタ</td><td>Teams</td><td>Teams</td><td>HTTP</td></tr>
 <tr><td>コネクタ種別</td><td>通常</td><td>通常</td><td><b>Premium</b></td></tr>
 <tr><td>形式</td><td>単純なメッセージ</td><td>Adaptive Card</td><td>メッセージ カード</td></tr>
 <tr><td>テキストの書式設定</td><td>HTML</td><td>Markdown </td><td>Markdown </td></tr>
 <tr><td>メンション</td><td><b>可能</b></td><td>不可</td><td>不可</td></tr>
 <tr><td>メッセージの検索</td><td><b>可能</b></td><td>不可</td><td>不可</td></tr>
 <tr><td>アイコン、投稿者名の変更</td><td>不可</td><td>不可</td><td><b>可能</b></td></tr>
 <tr><td>Teams側での準備</td><td>不要</td><td>不要</td><td><b>必要（Incoming webhookの設定）</b></td></tr>
</tbody></table>

2019/8/25時点で、Adaptive CardおよびMessage Card形式は、Teamsの検索で引っ掛からない、という動作をします。また、メンションに対応しているのは「メッセージをフロー ボットとしてチャンネルに投稿する」のみです。

なので、

* Power Automateからの投稿のタイトルや本文をTeamsクライアントで検索したい
* メンションを利用したい

のどちらかに該当する場合は、「メッセージをフロー ボットとしてチャンネルに投稿する」からテストしてもらうとよいかと思います。

# 詳細

## 検索の挙動

先にも書いた通り、アダプティブカードやメッセージカード形式は、2019/8/25時点では少なくとも検索ができません。

このような3種類のアクションによるメッセージがあります。すべて、「AABBCC」という文字列を含んでいます。

![2019-08-25_23h34_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/d3094643-07ca-3897-fd8a-e6344c37c6d4.png)

この「AABBCC」で検索すると、「メッセージをフロー ボットとしてチャンネルに投稿する」で投降したメッセージのみが検索結果に表示されます。

![2019-08-25_23h35_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/eafe39f7-a306-084b-015c-e3fd2e2ecf01.png)


Adaptive Cardはメッセージだけではなくボタンなどのアクションを設定できるので魅力的ではあるのですが、個人的には検索を多用するので採用は見送っています

TeamsのUserVoiceにも投稿がありますが、まだあまり票は集まっておらず、すぐに解決されることはないと思います。

* [Teams UserVoice "Make connector cards searchable"](https://microsoftteams.uservoice.com/forums/555103-public/suggestions/18685348-make-connector-cards-searchable)


## アクションごとの詳細

### メッセージをフロー ボットとしてチャンネルに投稿する

本文をHTMLで書くだけなので簡単に利用できます。

![2019-08-25_23h42_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/0d5e6fe3-a8d2-85ab-1542-38b964d8fa6f.png)

以前からあった「メッセージを投稿する」は、Power Automate作成者がメッセージ送信者になるのですが、こちらの場合はPower Automate Botからの配信となります。

![2019-08-25_23h09_54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/0eb1b2e9-3385-bf50-b9f2-b1dcb80cd3ed.png)

アイコンや送信者「Flow」は固定となり変更できません。

atタグを使ってメンションを利用できるのも面白いところですが、メンションはチャネル（@一般など）は利用できず、個人宛のみのようです。

### 独自のアダプティブ カードをフロー ボットとしてチャンネルに投稿する

ボタンなどの操作可能なメッセージをTeamsで使いたい場合、以前はHTTPコネクタを使うという方法が利用できましたが、HTTPコネクタはPremiumになり、契約プランによっては気軽に使えなくなりました。

が、このコネクタが出来たことにより、Premium無しでも操作可能なメッセージが送れるようになりました。
（キャプチャは操作可能な部分はありませんが…）

なお、操作可能なメッセージも二種類あり、こちらのアクションではアダプティブカード形式のみが利用できます。

![2019-08-25_22h57_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/1ddf5df9-6c50-cf5f-5ab8-35000ff89798.png)
![2019-08-26_00h01_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/dbc8f157-4519-2e0d-ae3c-5e708e651c23.png)

JSONで書かなければいけないのでとっつきにくい部分はありますが、デザイナーが提供されているので、一から調べなくてもなんとかなります。

* [アダプティブ カード デザイナー](https://acdesignerstaging.azurewebsites.net/)

![2019-08-26_00h04_50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/6611fab1-0589-bbd2-e0b6-166c92fdc961.png)

こちらもアイコンや送信者「Flow」は固定となり変更できません。

また、HTMLタグは利用できず、メンションの利用もできませんでした。

### HTTP（Teams Incoming webhook）

以前から利用可能な方法です。柔軟に利用できるのですが、以下のポイントがあります。

* 利用できるカードの形式がレガシとなっており、アダプティブカード形式は利用できない
* Teams側でIncoming webhookを用意する必要がある
* PremiumコネクタであるHTTPコネクタを利用する必要がある
* デザイナーは無いので、自分で書き方を調べる必要がある（が、先駆者がまとめてくれいている情報は結構みつかる）

![2019-08-25_22h48_26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/fe5d8240-124f-e7be-8a52-ce408f403f50.png)

![2019-08-25_22h48_48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/4f77f670-3b6b-32a4-565e-1b2b4251306f.png)

Teams側で準備が必要ですが、裏を返すとコネクタ名やアイコンをカスタマイズできる、という特徴もあります。

![2019-08-26_00h16_27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/449038/e8731fe9-0a38-cc06-9a78-40ee53e43631.png)

こちらもHTMLは利用できず、atタグによるメンションも利用できません。

* [従来の操作可能なメッセージ カード リファレンス](https://docs.microsoft.com/ja-jp/outlook/actionable-messages/message-card-reference)