びぼうろぐ

ネ申エクセルからの卒業

【Powershell】TeamsのWebhookへPostする(2)

Teamsは「アダプティブ カード」に対応しているようなので、これもPostしてみます。

参考:受信 Webhook を使用してアダプティブ カードを送信する

アダプティブ カード とは?

アダプティブ カードは、プラットフォームに依存せずに情報ブロックを共有および表示するための方法で、CSS または HTML をカスタマイズしてレンダリングする複雑さがなくなります。 クラウド アプリおよびサービスをオープンに入れ替えできる統合を使用して、JSON 形式でアダプティブ カードを作成します。 Microsoft Teams などの特定のホストに配信されると、JSON は、そのホストに自動的に適応するネイティブ UI に変換されます。 そのため、プロセス デザイナーは、ビジネス プロセス/自動化の一部として情報を表示する必要がある場合にいつでも、一貫した UI パターンを提供できるようになります。

Microsoft Teams 向けアダプティブ カードの概要

要はデータをいい感じにレンダリングしてくれる仕組みであると!

アダプティブ カードをPostする時の注意点

✔ Action.Submit 以外のすべてのネイティブのアダプティブ カード スキーマ要素は、完全にサポートされます。
✔ サポートされているアクションは Action.OpenURL、Action.ShowCard、および Action.ToggleVisibility です。
✔ "type" フィールドは "message" であることが必要です。
✔ "attachments" 配列には、カード オブジェクトのセットが含まれています。
✔ "contentType" フィールドにはアダプティブカードの種類が設定されていることが必要です。
✔ "content" オブジェクトは、JSON で書式設定されたカードです。

アダプティブ カードをPostしてみる

ヒーローカードのサンプルが公開されていたので、これをPostしてみます。 ヒーローカードの特徴は「1 つの大きな画像、1 つまたは複数のボタン、テキストを含む」ことのようです。

$jsonData='{
    "type":"message",
    "attachments":[
        {
            "contentType":"application/vnd.microsoft.card.hero",
            "content":{
                "title":"Seattle Center Monorail",
                "subtitle":"Seattle Center Monorail",
                "text":"The Seattle Center Monorail is an elevated train line between Seattle Center (near the Space Needle) and downtown Seattle. It was built for the 1962 Worlds Fair. Its original two trains, completed in 1961, are still in service.",
                "images":[
                    {
                        "url":"https://upload.wikimedia.org/wikipedia/commons/thumb/4/49/Seattle_monorail01_2008-02-25.jpg/1024px-Seattle_monorail01_2008-02-25.jpg"
                    }
                ],
                "buttons":[
                    {
                        "type":"openUrl",
                        "title":"Official website",
                        "value":"https://www.seattlemonorail.com"
                    },
                    {
                        "type":"openUrl",
                        "title":"Wikipeda page",
                        "value":"https://en.wikipedia.org/wiki/Seattle_Center_Monorail"
                    }
                ]
            }
        }
    ]
}'
$myWebhookURL='https://xxx'
Invoke-RestMethod -Method post -ContentType 'Application/Json' -Body $jsonData -Uri $myWebhookURL

👆をPowershellで実行すると...

f:id:uktia:20201216003339j:plain

いい感じにレンダリングしてくれてる!

参考