Ash*_*ore 6 javascript java powerbi powerbi-embedded
JavaScripts 必需 jquery.js powerbi.js
我假设您已经构建了本机应用程序,并且已经提供了所有必需的 Power BI Access。如果没有,请参考下面的步骤 A 到 C。
我使用了这个链接上提到的步骤。我修改了一下以重复使用令牌直到它过期。只有在过期后,我们才会生成新的令牌 http://community.powerbi.com/t5/Developer/Rest-api-usage -with-Java/mp/58514#M1841 此应用程序将为收到的 REST 调用提供 AAD 令牌
在需要嵌入报告的应用程序的 JSP 页面上为报告创建 DIV
div id="reportContainer" class="reportContainer"
获取 AAD 令牌
对在步骤 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;
}
Run Code Online (Sandbox Code Playgroud)
从 REST 调用接收 aadToken 后,创建嵌入配置
txtAccessToken 是上面的广告令牌。(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);
Run Code Online (Sandbox Code Playgroud)
这会将报告嵌入到 DIV
尝试嵌入时发生的主要错误是生成 AAD 令牌。确保已创建 Azure 应用程序并已授予使用 Power BI API 所需的所有权限
A. 如此处所述创建本机应用程序: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();
Run Code Online (Sandbox Code Playgroud)
C. 转到 Azure Active Directory-> 应用注册 -> 设置 -> 所需权限
确保 Power BI 服务 (Power BI) 位于 API 下并提供所有必需的权限。以下是一些权限 查看用户组 查看所有报告 查看所有仪表板(预览)
如果所有这些步骤都完成了,您应该能够将收到的令牌嵌入报告中。请检查并让我知道我是否遗漏了任何步骤,否则这种方法会有任何问题。
还要确保将用于生成 AAD 令牌的用户名具有访问 (MemberOf) 报告所在的 PowerBI 工作区
| 归档时间: |
|
| 查看次数: |
10381 次 |
| 最近记录: |