This time we’re going bigger than ever. Fabric, Power BI, SQL, AI and more. We're covering it all. You won't want to miss it.
Learn moreLevel up your Power BI skills this month - build one visual each week and tell better stories with data! Get started
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
Check out the April 2026 Power BI update to learn about new features.
Sign up to receive a private message when registration opens and key events begin.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 1 | |
| 1 | |
| 1 |
| User | Count |
|---|---|
| 9 | |
| 5 | |
| 3 | |
| 3 | |
| 2 |