Microsoft Flow には Microsoft Teams と連携するアクションが用意されているのですが、Microsoft Teams のコネクタにある Incoming Webhook を利用することでも Microsoft Flow から Microsoft Teams のチャネルに投稿をすることができます。このあたり、詳しくは下記の記事です。

Microsoft Flow を使って Microsoft Teams へ投稿する
http://idea.tostring.jp/?p=2737

この Incoming Webhook での投稿ですが、実は画像を入れたり、ボタンを付けたり、入力フォームを付けて外部の Web サービスに POST を送れたりといろいろな装飾や機能を持たせた投稿を作ることができます。もちろん、Microsoft Flow を使って投稿した場合でも利用できますよというのが今回の投稿です。

さっそく試してみる

どんな投稿を作ることができるかを確認するには、MSDN の記事を見るのが手っ取り早いですね。

Get started with Office 365 Connectors for Microsoft Teams
https://msdn.microsoft.com/ja-jp/microsoft-teams/connectors

いろいろ書かれていてややこしいですが、Microsoft Flow から HTTP のアクションを利用して投稿するときに良く使われるであろうパターンはつぎのような感じかと思います。ポイントは、MSDN のサンプルでは「@type」や「@context」となっていたところを、「@@type」や「@@context」と Microsoft Flow のルールに従ってエスケープしている点です。

{
  "@@type": "MessageCard",
  "@@context": "http://schema.org/extensions",
  "themeColor": "0076D7",
  "summary": "概要概要概要",
  "sections": [
    {
      "activityTitle": "ここがタイトルです!",
      "activitySubtitle": "ここはサブタイトル",
      "facts": [
        {
          "name": "項目ひとつめ",
          "value": "ひとつめひとつめ"
        },
        {
          "name": "項目ふたつめ",
          "value": "ふたつめふたつめ"
        },
        {
          "name": "項目みっつめ",
          "value": "みっつめみっつめ"
        }
      ],
      "markdown": true
    }
  ],
  "potentialAction": [
    {
      "@@type": "ActionCard",
      "name": "Go to Microsoft.com",
      "actions": [
        {
          "@@type": "OpenUri",
          "name": "Go to Microsoft.com",
          "targets": [
            {
              "os": "default",
              "uri": "https://www.microsoft.com"
            }
          ]
        }
      ]
    }
  ]
}

こうした記述のコードをつぎのように Microsoft Flow に設定します。HTTP アクションの本文に貼りつけるだけです。

これが実行され Microsoft Teams に投稿するとつぎのような感じになります。「Go to Microsoft.com」のボタンをクリックすると Microsoft のサイトが開きます。

ただ単にテキストのみを投稿するよりもグッと良くなりました。

さいごに

Microsoft Flow と Microsoft Teams を組み合わせると、いろいろな情報を簡単にチームで共有できるようになります。ちょっとの工夫でさらに使いやすくなりますので、ぜひこの方法も試してみてください。