cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
GRAEMEJOHNSON
New Member

Including a user photo in an Adaptive Card

Hi

As a proof of concept, I'm trying to build a flow that will post an adaptive card to a Teams channel with my profile mugshot in the message body.

The only components I can find to return my profile image, return the raw content, rather than a URL....is there a way to get this working?

 

2019-03-22_15h28_44.png

 

41 REPLIES 41

Hi @mgertz, I have almost the same situation as you. Images load in the web version of Teams, but not in Teams app. Were you able to find a solution?

I copied the picture to the users OneDrive at the end, created a link and added the link to the teams message.... 

Many steps i would not excpect to need, but its working.

@mcorlou This one worked for me. Poking around you can substitute emea, amer, and apac for alternate regions.

 

Of course now that we have a solution, someone on the Teams team will break this option too.

 

Next up...getting @mentions to work. 😞

Audrie-MSFT
Power Automate
Power Automate

I see that many of you have found workarounds and ways to make this work. I will also post a video with some guidance as well, and put the link here.

 

Thank you for your patience,

Audrie

Thanks!!

Any update on this? Still struggling with user image in Teams client (desktop)

Blaub
Frequent Visitor

Could it be that the following method do not work anymore?

 

https://teams.microsoft.com/api/mt/emea/beta/users/"EMAIL"/profilepicturev2?displayname="DISPLAYNAME..."

 

I get no profile picture, when i use this url in the adaptive card to shown the profile picture.

niclasdahl
Frequent Visitor

I have a similar issue, but it concerns just about any image stored within our tenants sharepoint...

 

The adaptive card shows images if i use external URLs to public images, but if i try to show an image that is contained within our own tenant it doesn't work. I've even tried to set up the flow to create an image inside the actual teams channel files folder and reference it from there, but still doesn't work.

 

I recall reading in thread a while back, but i am unable to find it now, that this might be connected to wether or not your tenant allows external access/sharing and anonymous links. If it does, then it might work.

 

It would be great if someone from MS could shed some light on this....

What region are you in?  If you're in the US, the link differs.  It would be:

 

https://teams.microsoft.com/api/mt/amer/beta/users/user_name @company.com/profilepicturev2?displayname=last_name,%20first_name&voidCache=true

 

Replace user_name

Replace company

Replace last_name

Replace first_name

 

with appropriate values.  If this still doesn't work for you, login to the web app for MS Teams, right click on profile picture and get your URL that way.

@Audrie-MSFT  any luck with that video 🙂

aploe
Frequent Visitor

This is exactly the same problem with our flows.

 

The convertion of a pulled user picture in base64 and then just add the "data&colon;image/png;base64,<converted string here>" to the "url" property worked for a month until it just stoped working some weeks ago. Seems like there was an update with the flow of the "posting an adaptive cards to channels by a bot". (Which btw killed all our adaptive cards we created. This was really unfortunate and took a lot of time to restore/rebuild.)
As we restored the cards payload and tried to fire this up it stops with the error: "HTTP request failed: the content is not a valid JSON.". This is definitly hanging on the "url" property of the image. I tried everything else.

Is there a solution somewhere in the future to include a profile picture more easily (or at least to reenable the old way)?

Not sure if many here have tried, but I find several of the methods proposed here just work,.... on https://teams.microsoft.com/ but unfortunately not in the teams application.

 

Also in the adaptive card editor the correct url gives result so there is nothing wrong with the solutions you have come up with.

 

The problem is that the whole thing is not working consisted in the teams application.

 

This is what I see in the browser.


In browser (chrome)In browser (chrome)

And here the same message in the teams application.

In teams applicationIn teams application

 

I guess this one is for MS to resolve.

ananda-vadivela
Advocate I
Advocate I

I have tried two methods and both times, user photo does not show in the adaptive card inside the Mobile app of Teams.

Photo shows in the Adaptive card inside the desktop and web app on a PC or Mac.

 

Method 1: image from person field in SharePoint list.

Method 2: base64 compose action shown in this thread.

 

When I used method 2, I also get this error

"error""The payload is too large. Please make sure the size is less than 28KB."
 
What can be done to get the photo appearing in the mobile app version?
 

 

This is how you stop wasting time and get it to work properly:

1. Create a new action, Send an HTTP request to SharePoint:

Site Address: https://yourdomain.sharepoint.com
Method: GET
URI: _layouts/15/userphoto.aspx?size=S&username=[USERSEMAILADDRESS]

The S in the uri is the image size (S/M/L) but leave it as small as to not blow through that generous 28KB payload limit

 

2. Feed the output from the Send an HTTP request to SharePoint into a Compose action by plugging it into an expression:

 

 

base64(body('Send_an_HTTP_request_to_SharePoint'))

 

 

 

3. Finally, you can plug the output from the Compose into your JSON code once again

FraserM_0-1616105237225.png

{
"type": "Image",
"style": "Person",
"url": "data&colon;image/png;base64,@{outputs('Compose')}",
"size": "Small"
}

NOTE: ^^(this forum is messing up the data&colon;image/png code and repacing the : with &#58)^^

or less confusingly noted like this 
Untitled.png

"data&colon;image/png;base64,[COMPOSE]"

NOTE: ^^(this forum is messing up the data&colon;image/png code and repacing the : with &#58)^^

mgertz
Regular Visitor

@FraserM 

 

Brilliant... that worked for me!

aploe
Frequent Visitor

This works for me, too! Thanks a lot!

 

Let's all hope MS doesn't change anything on this approach in the nearest future.

Excellent approach @FraserM 

Just needed to change the 

&#58

back to a :  colon. 

For some reason the forum kept changing the colon in the code.. sorry :)... Glad that post was already helpful 🙂 

Carike_B
Regular Visitor

Thank you for this thread and post, I used many of the suggestions to achieve what I wanted to. Great job!

Helpful resources

Announcements
MBAS Attendee Badge

Claim Your Badge & Digital Swag!

Check out how to claim yours today!

MPA User Group

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

secondImage

Are Your Ready?

Test your skills now with the Cloud Skill Challenge.

Top Solution Authors
Users online (85,511)