cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
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
Highlighted

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?

Highlighted

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.

Highlighted

@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. 😞

Highlighted
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

Highlighted

Thanks!!

Highlighted

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

Highlighted
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.

Highlighted
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....

Highlighted

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.

Highlighted

@Audrie-MSFT  any luck with that video 🙂

Highlighted
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)?

Highlighted
Highlighted

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.

Highlighted
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?
 

 

Highlighted

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

 

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

 

 

or less confusingly noted like this 

 

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

 

Highlighted

@FraserM 

 

Brilliant... that worked for me!

Highlighted
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.

Highlighted

Excellent approach @FraserM 

Just needed to change the 

&#58

back to a :  colon. 

Highlighted

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

Highlighted
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
Community Conference

Power Platform Community Conference

Check out the on demand sessions that are available now!

Power Platform ISV Studio

Power Platform ISV Studio

ISV Studio is designed to become the go-to Power Platform destination for ISV’s to monitor & manage published applications.

Top Solution Authors
Top Kudoed Authors
Users online (11,893)