Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
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
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
14 | |
2 | |
2 | |
1 | |
1 |