【问题标题】:How to auto generate embed token using javascript?如何使用 javascript 自动生成嵌入令牌?
【发布时间】:2020-12-29 15:29:17
【问题描述】:

我正在使用 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>

【问题讨论】:

    标签: javascript powerbi-embedded


    【解决方案1】:

    我解决了。您可以使用 MSAL 或 ADAL 生成访问令牌。我使用了带有隐式授权流的 MSAL.js 1.0:https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-javascript-spa

    获取访问令牌后可以使用ajax调用REST-API生成嵌入令牌。

    你可以关注这个Failed to load response data when tried to get access token from azure using JavaScript

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-10
      相关资源
      最近更新 更多