見出し画像

Power AutomateでTeamsに投稿するアダプティブカードの画像を、Base64とやらにしてみたハナシ

前回、Mattからアダプティブカードでランチタイムのお知らせをするフローを作ってみました😋

直リンクOKのサイトを探すのがめんどくさければ、OneDriveに入れた画像を表示させればいいじゃない…!と思ったのだけど、「Base64」というものを同期から教えてもらいました😍

Miyakeさんのスライドにも書いてあったやつですね。
でもさぁ…なにそれーーー😂

Base64について、教えてもらった参考サイトはこちら🙏✨

base64とは、64進数を意味する言葉で、すべてのデータをアルファベット(a~z, A~z)と数字(0~9)、一部の記号(+,/)の64文字で表すエンコード方式です
上記サイトより引用

SVG的なものなんかな?

Power Automateでファイルコンテンツを取得すると、このBase64というものが返ってくるので、それをアダプティブカードの画像として設定したらいいとのこと🤩

ほほーーーー なんやよくわからんけど、イメージはできたぞ✨
画像を文字にしちゃうから、ファイルがどこに保存されているとか全く関係ないってことだ😍

ありがたし ありがたし🙏💖

どうやって設定したのか、メモしておくーーー!

① OneDriveに画像を保存する

OneDriveに、アダプティブカードに設定したい画像を保存します。
※ファイルサイズは28KB未満です💣
 (↓ 下の画像は超えていたので、画像サイズを小さくする作業を挟みました😇)

ぴよたそ:寿司をながめるひよこ

② 保存した画像のファイルコンテンツを取得

「インスタントクラウドフロー」でフロー作成。

使用したのは「OneDrive for business:パスによるファイルコンテンツの取得」

保存した画像を選択。

で、保存→テスト実行!

出力のファイルコンテンツにいる、content の値がBase64なんですって!

③ アダプティブカードに設定する

アダプティブカードデザイナーを開く。

「早々にMattにはご退場いただいて」🤭、Select host appをTeamsに変更。

んで、Imageを配置。


imageのURLのところにBase64を入力したいので、とりあえずtestとか適当に入力してみる。

(。 ・ω・))フムフム、こんな感じに入るのね。

この「test」にどう書くか。
教えてもらった参考サイトはこちら🙏✨

こんな感じで書けばいいみたい👀✨

data:$content-type;base64,$content

まさしく これか!!

Power Automateのフローに戻って、「パスに寄るファイルコンテンツの取得」は もう用済みなので削除 ポイッ( ・ω・)ノ ⌒ *

ベタ打ちでもいいんだけど、contentは長いから変数にしてみる。
使用するのは「変数:変数を初期化する」。

値には、さっき出力した content の値を(*゚▽゚)ノ□ペタッ

値、長っ🤣 ぴよたその重みw

続いて、「Teams:チャットやチャネルにアダプティブカードを投稿する」で、アダプティブカードデザイナーのJSONを(*゚▽゚)ノ□ペタッ

この url のtestの部分を、こんな感じに変更!

④ 実行してみる

では、いざ実行!(。・Α・)σポチッ

(`・∀・)ノイェ-イ!

かっ、かわえぇ🤤

⑤ 所感

なるほど なるほど~
決まった画像を投稿したいのならば、一度別でcontent を取得して使えば良いのですな😋

365ユーザーのプロフィール画像を動的に取得したい場合には…と、こちらも参考サイトとして教えてもらいました🙏✨

くじ引き的な感じで、今日の掃除当番はこの人!とかって、スケジュール実行するのとかできそう🤣🤣

優しく教えてくれる同期がいる環境が すごく有難いです🤭
そして その時間をよしとしてくれる長と周りの方に感謝🙏✨
今日もありがとう~💖

事務員が少しの背伸びでできる効率化を目指す🌈✨ 自分の好きなものを、楽しく発信していきたいです! いただいたサポートは学習費にあてさせていただきます🥰