I am looking for an easy way to display the image response from graph api into the react application. Something like this https://blogs.aaddevsup.xyz/2020/05/how-to-get-and-display-the-user-photo-with-graph-sdk-for-net-in-a-wpf-application/
When I try I get this from the api, not sure what format the response is in and how to convert and show it as image?
MS Graph Docs - Using the binary data of the requested photo has some helpful note.
Here is a sample component pulled from the docs. Note am using Axios to fetch the photo using responseType: 'blob' config and render it when I have it.
I could not get it to work without that config.
import { useEffect, useState } from 'react';
import Axios from 'axios'
function App() {
const [imageUrl, setImageUrl] = useState(null)
useEffect(() => {
Axios.get('https://graph.microsoft.com/v1.0/me/photo/$value', {
headers: { 'Authorization': 'Bearer eyJ...' },
responseType: 'blob'
}).then(o => {
const url = window.URL || window.webkitURL;
const blobUrl = url.createObjectURL(o.data);
setImageUrl(blobUrl)
})
}, [])
return (
<div className="App">
{imageUrl && <img alt='my-user-avatar' src={imageUrl} />}
</div>
);
}
export default App;
FYI, you may also be interested in using MS Graph UI Toolkit for Reactjs as you seem to be rendering user profile card.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With