如何使用 javascript 自动生成嵌入令牌?
How to auto generate embed token using javascript?
我正在使用嵌入式 powerbi。我使用 javascript 成功地将报告嵌入到我的应用程序中。但是我每次都必须手动更新嵌入的令牌。
现在我想从我的代码中调用 rest API,以便令牌自动更新。
如何从我的代码中调用 API 来生成令牌以及如何在令牌即将过期时更新令牌?
我的代码是:
<html>
<head>
<title>Test</title>
<script src="/Scripts/powerbi.js"></script>
</head>
<body>
<div id="captionArea">
<h1>Power BI Embed test</h1>
</div>
<div id="embedContainer" style="height:500px">
</div>
<script>
(function () {
// Please change these values
var txtAccessToken = 'H4sIAAAAAA...';
var txtEmbedUrl =
'https://app.powerbi.com/reportEmbed?reportId=b21f4f90-e364-4b4c-9281-c5db87cdf3a5&groupId=a4781858-f...';
var txtEmbedReportId = 'b21f4f90-e364-4b4c-9281-c5db87cdf3a5';
var models = window['powerbi-client'].models;
var permissions = models.Permissions.All;
var config = {
type: 'report',
tokenType: models.TokenType.Embed,
accessToken: txtAccessToken,
embedUrl: txtEmbedUrl,
id: txtEmbedReportId,
permissions: permissions,
settings: {
filterPaneEnabled: true,
navContentPaneEnabled: true
}
};
var embedContainer = document.getElementById('embedContainer');
var report = powerbi.embed(embedContainer, config);
}());
</script>
</body>
</html>
我解决了。您可以使用 MSAL 或 ADAL 生成访问令牌。我使用 MSAL.js 1.0 和隐式授权流程:https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-javascript-spa
获得访问令牌后,您可以使用ajax调用REST-API生成嵌入令牌。
你可以关注这个
我正在使用嵌入式 powerbi。我使用 javascript 成功地将报告嵌入到我的应用程序中。但是我每次都必须手动更新嵌入的令牌。
现在我想从我的代码中调用 rest API,以便令牌自动更新。 如何从我的代码中调用 API 来生成令牌以及如何在令牌即将过期时更新令牌?
我的代码是:
<html>
<head>
<title>Test</title>
<script src="/Scripts/powerbi.js"></script>
</head>
<body>
<div id="captionArea">
<h1>Power BI Embed test</h1>
</div>
<div id="embedContainer" style="height:500px">
</div>
<script>
(function () {
// Please change these values
var txtAccessToken = 'H4sIAAAAAA...';
var txtEmbedUrl =
'https://app.powerbi.com/reportEmbed?reportId=b21f4f90-e364-4b4c-9281-c5db87cdf3a5&groupId=a4781858-f...';
var txtEmbedReportId = 'b21f4f90-e364-4b4c-9281-c5db87cdf3a5';
var models = window['powerbi-client'].models;
var permissions = models.Permissions.All;
var config = {
type: 'report',
tokenType: models.TokenType.Embed,
accessToken: txtAccessToken,
embedUrl: txtEmbedUrl,
id: txtEmbedReportId,
permissions: permissions,
settings: {
filterPaneEnabled: true,
navContentPaneEnabled: true
}
};
var embedContainer = document.getElementById('embedContainer');
var report = powerbi.embed(embedContainer, config);
}());
</script>
</body>
</html>
我解决了。您可以使用 MSAL 或 ADAL 生成访问令牌。我使用 MSAL.js 1.0 和隐式授权流程:https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-javascript-spa
获得访问令牌后,您可以使用ajax调用REST-API生成嵌入令牌。
你可以关注这个