Don't miss your chance to take exam DP-600 or DP-700 on us!
Request nowLearn from the best! Meet the four finalists headed to the FINALS of the Power BI Dataviz World Championships! Register now
Re: https://community.powerbi.com/t5/Developer/Integrate-PowerBI-with-Netsuite/td-p/92420
1) How do I generate a token that never expires?
I would like to use it using this sample html code:
<html>
<script src="https://microsoft.github.io/PowerBI-JavaScript/demo/node_modules/jquery/dist/jquery.js"></script>
<script src="https://microsoft.github.io/PowerBI-JavaScript/demo/node_modules/powerbi-client/dist/powerbi.js"></script>
<script type="text/javascript">
window.onload = function () {
var embedToken = PowerBIToken.CreateReportEmbedToken(this.workspaceCollection, this.workspaceId, report.Id,Convert.ToDateTime("2099-12-31");
var embedConfiguration = {
type: 'report',
accessToken: '',
id: 'report ID here',
embedUrl: 'https://app.powerbi.com/reportEmbed?reportId='
};
var $reportContainer = $('#reportContainer');
var report = powerbi.embed($reportContainer.get(0), embedConfiguration);
}
</script>
<div id="reportContainer"></div>
</html>or
2) Can anyone help put together HTML sample and integrate the above code with:
https://github.com/Microsoft/PowerBI-JavaScript/wiki/Refresh-token-using-JavaScript-SDK-example
function embedReportAndSetTokenListener(setAccessToken = false,
reportId,
groupId,
datasetId,
accessLevel,
baseUri,
embedUrl) {
// Generate embed token
generateEmbedToken(reportId, groupId)
.then(function( Token ) {
var embedToken = Token.token;
// set config for embedding report
var config = createConfig(embedToken,embedUrl,reportId);
// Get a reference to the embedded report HTML element
var embedContainer = $('#embedContainer')[0];
// Embed the report and display it within the div container.
var report = powerbi.embed(embedContainer, config);
// Report.off removes a given event handler if it exists.
report.off("loaded");
// Report.on will add an event handler which prints to Log window.
report.on("loaded", function() {
// Set token expiration listener
setTokenExpirationListener(Token.expiration,
2 /*minutes before expiration*/,
reportId,
groupId);
});
});
}
function setTokenExpirationListener(tokenExpiration,
minutesToRefresh = 2,
reportId,
groupId){
// get current time
var currentTime = Date.now();
var expiration = Date.parse(tokenExpiration);
var safetyInterval = minutesToRefresh* 60 * 1000;
// time until token refresh in milliseconds
var timeout = expiration - currentTime - safetyInterval;
// if token already expired, generate new token and set the access token
if (timeout<=0)
{
console.log("Updating Report Embed Token");
updateToken(reportId, groupId);
}
// set timeout so minutesToRefresh minutes before token expires, token will be updated
else
{
console.log("Report Embed Token will be updated in " + timeout + " milliseconds.");
setTimeout(function() {
updateToken(reportId, groupId);
}, timeout);
}
}
function updateToken(reportId, groupId) {
// Generate new EmbedToken
generateEmbedToken(reportId, groupId)
.then(function( Token ) {
// Get a reference to the embedded report HTML element
var embedContainer = $('#embedContainer')[0];
// Get a reference to the embedded report.
var report = powerbi.get(embedContainer);
// Set AccessToken
report.setAccessToken(Token.token)
.then(function() {
// Set token expiration listener
// result.expiration is in ISO format
setTokenExpirationListener(Token.expiration,2 /*minutes before expiration*/);
});
});
}
facing the same issu, dont understand how shuld i use the javascript-SDK code
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
Check out the February 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 3 | |
| 3 | |
| 2 | |
| 1 | |
| 1 |
| User | Count |
|---|---|
| 3 | |
| 3 | |
| 2 | |
| 2 | |
| 2 |