9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Power Automate の Teams コネクタでアダプティブカードを利用する際の TIPS②【アダプティブカードにプロフィール画像を表示する方法】

Last updated at Posted at 2021-09-15

はじめに

みなさま、こんにちは!
日本マイクロソフトでサマーインターンをしております秋山と申します。
今回、アダプティブカードの中でプロフィール画像を使用する方法を説明します。

image.png

アダプティブカードとは

まず、アダプティブカードの説明は「Power Automate の Teams コネクタでアダプティブカードを利用する際の TIPS①」の「アダプティブカードとは」という部分を参考にしてください。

アダプティブカードを使うことにより、例えば、Power Automate から Teams に通知やメッセージを送る際に、単にテキスト メッセージを送るだけではなく、画像を付与したり、ボタンや入力フィールドを配置して、入力フォームとしたりすることが可能になります。
今回の記事では、Power Automate を使用して、Office 365 で使用しているユーザーのプロフィール画像を取得し、Teams にプロフィール画像を埋め込んだアダプティブカードを送信する方法を説明します。

こちらの方法について、少し工夫が必要になります。

Power Automateでフローを作成する

フローを作成する

Power Automate のページを開きます。

作成タブから「インスタント クラウドフロー」を選択します。
image.png
インスタントクラウドフローを構築の画面から「手動でフローをトリガーします」を選択し、「作成」ボタンを押します。
image.png

「手動でフローをトリガーします」の設定をしていく

今回、「メールアドレス」という変数を設定します。ここに入力されたメールアドレスに紐づいているプロフィール画像が、アダプティブカードに表示されるように実装していきます。

image.png

変数の設定

検索窓に「変数」と入力し、「変数を初期化する」アクションを選択します。
image.png
各項目を以下のように設定します。

image.png

名前
名前 url(任意の名前)
種類 文字列
(今回は空白で大丈夫です)

写真のメタデータを取得する

「ユーザーの写真のメタデータを取得します」アクションを選択します。
そして、値を以下のように設定します。

image.png

名前
ユーザー(UPN) 「手動でフローをトリガーします」アクションの「メールアドレス」

写真のあるなしを判定する

ユーザーのプロフィール画像がある場合とない場合で処理を分けるために(プロフィール画像がない場合は後続の処理を実行しない)、「条件」アクションを追加します。
そして、値を以下のように設定します。

image.png

値の選択 値の選択
「ユーザーの写真のメタデータを取得します」アクションの「写真があります」 次の値に等しい true

プロフィール画像が設定されている場合の処理を行っていきたいため、これから先は「はいの場合」の中にアクションを追加していきます。

image.png

SharePoint に HTTP 要求を送信する

ユーザーのプロフィール画像のコンテンツ自体は Sharepoint Online 側から取得します。
「SharePoint に HTTP 要求を送信します」というアクションを選択し、各項目を以下のように設定します。

image.png

名前
サイトのアドレス https://【テナント名】.sharepoint.com
方法 GET
URI _layouts/15/userphoto.aspx?size=S&username=【「手動でフローをトリガーします」アクションの「メールアドレス」】

変数の値を設定していく

先ほど初期化した変数に値を設定していきます。
値は以下のように設定します。値の部分がややこしいのでよく見比べて入力してください。

名前
名前 url
data:【「ユーザーの写真のメタデータを取得します」アクションのContentType】;base64,base64(【「SharePoint に HTTP 要求を送信します」アクションのbody】)

image.png

ポイントは、最後の**base64(【「SharePoint に HTTP 要求を送信します」アクションのbody】)**の部分になります。「SharePoint に HTTP 要求を送信します」アクションの「body」を関数base64()の中身に入れてください。

image.png

しばらくすると、この部分の表示が変わることがあります。
image.png

この部分にカーソルを重ねたときに、body('SharePoint に HTTP 要求を送信します')?['body']となっていることを確認してください。(outputs('SharePoint に HTTP 要求を送信します')?['body']ではありません
image.png

アダプティブカードを投稿するアクションを設定する

「チャットやチャネルにアダプティブ カードを投稿する」アクションを選択します。
各項目を以下のように設定して下さい。

名前
投稿者 Flow bot
投稿先 Channel
Team 【投稿したいチーム】
Channel 【投稿したいチャンネル】

image.png

「メッセージ」の項目には今回アダプティブカードを設定しています。アダプティブカードは以下のような形になっています。複雑に見えますが、実はアダプティブカードデザイナーというものを使うことで、視覚的にカードをデザインし、コードを生成することができます。(https://www.adaptivecards.io/designer/)。

{
    "type": "AdaptiveCard",
    "body": [
        {
            "type": "TextBlock",
            "size": "Medium",
            "weight": "Bolder",
            "text": "Publish Adaptive Card Schema"
        },
        {
            "type": "ColumnSet",
            "columns": [
                {
                    "type": "Column",
                    "items": [
                        {
                            "type": "Image",
                            "style": "Person",
                            "url":" 【「変数」の「url」】",
                            "size": "Small"
                        }
                    ],
                    "width": "auto"
                },
                {
                    "type": "Column",
                    "width": "stretch"
                }
            ]
        }
    ],
    "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
    "version": "1.2"
}

今回作成したアダプティブカードは以下のようなデザインになっています。

image.png

全体の確認

全体がこのような構成になっているか確認してください。

image.png

実際にフローを実行してみる

右上の「テスト」をクリックし、「手動」で「テスト」を選択します。

image.png

しばらくすると準備が完了するので、「メールアドレス」に画像を表示したい人のメールアドレスを入力し、「フローの実行」をクリックします。

image.png

Teams 上で、アダプティブカードが送信されていることを確認してください。

image.png

終わりに

こちらはあくまで一例ですが、間に Web アプリケーションなどを介さずに、 Power Automate からユーザーのプロフィール画像など、画像データを取得し、そちらを埋め込んだアダプティブカードを Teams に送信することができます。
つまり、アダプティブカードを使用することで、Teams 上の会話をより豊かにすることができます。
是非、こちらのTIPSを業務負担の軽減にお役立てください。

※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?