備忘録
Power Automateから、Microsoft TeamsにAdaptive Cardsを送信するときに、Flow botとして送られるので、「誰が送信のトリガーになったか表示したい」という要望はありそう。 これを実現する方法ご紹介。
カードのメッセージは一番シンプルには以下の通り。
{ "type": "AdaptiveCard", "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "version": "1.2", "body": [ { "type": "Image", "url": "https://teams.microsoft.com/api/mt/emea/beta/users/@{body('Get_user_profile_(V2)')?['userPrincipalName']}/profilepicturev2?displayname=@{body('Get_user_profile_(V2)')?['displayName']}&voidCache=false", "size": "Large" }, { "type": "TextBlock", "text": "This is Awesome!!!" } ] }
念のため、URL部分だけ抽出すると
https://teams.microsoft.com/api/mt/emea/beta/users/ここにUPN/profilepicturev2?displayname=ここに表示名&voidCache=false
フローでは、Office 365 Usersコネクターを利用して、対象となるユーザーのUPNとDisplay Nameが取れればよい。
結果は以下の通り。
Solveになっていないけど、ここで議論されていたので試してみたらうまくいった系です。
なんのURLかと思って調べてみると、どうもここの画像のURLである。
でも、モバイルのTeamsアプリだと表示されないので、イマイチかもしれない。
すべてのデバイスチャンネルで対応するなら、やはり素直にProfileImageを小さくしてData URIにするのがよいだろう。
備考
他にも、小さい画像を使って、dataUriをつかえばもちろん可能。でもURIの文字列制限があるので、気を付けないと、画像が表示されなくなる。