はじめに
MS TeamsではIncoming Webhookを利用することで
外部から特定チャンネルに対してメッセージを送ることができます。
今回は画像を送ることに焦点を当てた記事を記載します。
なお、添付ではなく参照と埋め込みになります。
case1 インターネット参照が可能なURLを記載する
公式サイトにも書いてありますが、
ActivityImage等にインターネット参照が可能なURLを書くと画像が表示されます。
heroImageは記載時点ではTeams非対応な気がします。
上記のサイトがオーバーワークだなと感じた場合は、
@miyamiya さんの記事が分かりやすいかと思います。
Microsoft Teams に PowerShell で投稿してみる
case2 画像をメッセージに埋め込む
インターネットから参照可能な場所に画像があるとも限りません。
かくいう自分も外からは参照できない社内サーバにある画像を送信する必要がありました。
(日次、週次レポートの通知が目的)
ではどうするか。
公式サイトにも記載がありますが、Json形式内でMarkDown記法が使えます。
MarkDownでは以下のように記載することで、
base64に変換することで埋め込むことができます。
![Weekly Report](data:image/png;base64," + {base64に変換した画像を文字列として記載} + ")
注意点は以下の2点です。
Teamsで表示できるサイズに閾値がありそう
偶然14KBと16KBの画像を連続して送信した際に気がついたのですが、
15KBを超えると表示できない気がします。
公式情報を見つけたというわけではないため、別問題かもしれませんが・・・。
リサイズや減色等で圧縮してあげてから送信したほうが無難かなと思います。
クリックしても拡大できない
これはしょうがないものでしょうか・・・。