在Java应用程序上集成PowerBI报告的步骤

时间:2018-05-03 13:17:38

标签: javascript java powerbi powerbi-embedded

需要JavaScripts     的jquery.js     powerbi.js

  1. 生成AAD令牌
  2. 我假设你已经构建了Native应用程序并且已经给出了所有必需的Power BI Access。如果没有,那么请参考下面的步骤A到C.

    我使用了此链接中提到的步骤。我对它进行了一些修改以重用令牌直到它过期。只有在到期后,我们才会生成新的令牌 http://community.powerbi.com/t5/Developer/Rest-api-usage-with-Java/m-p/58514#M1841 此应用程序将为收到的REST调用提供AAD令牌

    1. 为需要报告嵌入的应用程序的JSP页面创建报告DIV

      div id =“reportContainer”class =“reportContainer”

    2. 获取AAD令牌

    3. 对步骤1中开发的应用程序进行REST调用,获取AAD令牌

      我的aadToken对象有2个参数accessToken和expiresAtStr

      var aadToken={accessToken:' ',expiresAtStr: ''};
      
      function getAadAccessToken() {
          var deferred = $q.defer();
          $http.get('/MyPowerBIApp/REST/getAadToken/')
              .then(
              function (response) {
                  deferred.resolve(response.data);
              },
              function(errResponse){
                  console.error('Error while getting Aad Access Token');
                  deferred.reject(errResponse);
              }
          );
          return deferred.promise;
      }   
      

      从REST调用接收到aadToken后,创建嵌入配置

      txtAccessToken是上面的aad标记。(aadToken.accessToken) txtEmbedUrl是需要嵌入的报告。 这就像https://app.powerbi.com/reportEmbed?reportId .......

       var config= {
                           type: 'report',
                           tokenType: 0,//1:Embed,0:Aad
                           accessToken: txtAccessToken,
                           embedUrl: txtEmbedUrl,
                           permissions: 7,
                           viewMode: 0,
                           settings: {
                               filterPaneEnabled: false,
                               navContentPaneEnabled: false,
                               useCustomSaveAsDialog: false
                           }
                       };
      var $reportContainer = $('#reportContainer'); 
      var report = powerbi.embed($reportContainer.get(0), config); 
      

      这会将报告嵌入DIV

      尝试嵌入时发生的重大错误是生成AAD令牌。 确保您已创建Azure应用程序并已授予使用Power BI API所需的所有权限

      一个。如下所述创建本机应用程序: https://docs.microsoft.com/en-us/power-bi/developer/walkthrough-push-data-register-app-with-azure-ad

      B中。转到Azure Active Directory->应用注册 点击你的申请: 您在此处看到的应用程序ID值是您将用于步骤1中提到的AAD令牌生成的clientId值

      请参考以下代码:

      AuthenticationResult authResult = authenticationContext.acquireToken(
                  resourceId,
                  clientId,
                  username,
                  password,
                  null
          ).get();
      

      ℃。转到Azure Active Directory - >应用注册 - >设置 - >所需权限

      确保Power BI服务(Power BI)位于API下并且给出了所有必需的权限。下面是很少的权限 查看用户组 查看所有报告 查看所有仪表板(预览)

      如果完成了所有这些步骤,您应该能够使用收到的令牌嵌入报告。 如果我错过了任何步骤,请检查并告诉我,否则这种方法会有任何问题。

      另外,请确保用于生成AAD令牌的用户名具有访问权限(MemberOf)报告所在的PowerBI工作区

0 个答案:

没有答案