Hello Hari !
Thank you for posting on Microsoft Learn.
Have you verified if you have allowed service principals to use Power BI APIs ?
Under tenant settings, find "Allow service principals to use Power BI APIs".
If you do not see it, make sure you are logged in as a Power BI Service Administrator or Global Administrator. This option is only available for tenants using Power BI Premium or Premium Per User (PPU).
Without this setting enabled, the service principal cannot embed reports, even if REST API calls work in Postman.
Don't forget that only V2 workspaces support embedding using service principals.
Your code should be something like :
import { PowerBIEmbed } from 'powerbi-client-react';
import { models } from 'powerbi-client';
import React from 'react';
function Dashboard() {
return (
<PowerBIEmbed
embedConfig={{
type: 'report',
id: '<REPORT_ID>',
embedUrl: '<EMBED_URL>',
accessToken: '<ACCESS_TOKEN>',
tokenType: models.TokenType.Aad,
settings: {
panes: {
filters: {
visible: false,
},
pageNavigation: {
visible: false,
},
},
},
}}
eventHandlers={
new Map([
['loaded', () => console.log('Report loaded')],
['rendered', () => console.log('Report rendered')],
['error', (event) => console.error('Error:', event.detail)],
])
}
cssClassName="report-style-class"
getEmbeddedComponent={(embeddedReport) => {
window.report = embeddedReport;
}}
/>
);
}
export default Dashboard;