【发布时间】:2020-07-05 08:55:15
【问题描述】:
我目前正在使用 Spring/Angular 开发一个 Web 应用程序。
我需要将 Power Bi 集成到我的应用程序中,以便能够使用 Spring 创建数据集和报告并在 Angular 中获取图表。
是否有任何示例或教程可以帮助我入门?
谢谢。
【问题讨论】:
标签: angular spring mongodb spring-boot powerbi
我目前正在使用 Spring/Angular 开发一个 Web 应用程序。
我需要将 Power Bi 集成到我的应用程序中,以便能够使用 Spring 创建数据集和报告并在 Angular 中获取图表。
是否有任何示例或教程可以帮助我入门?
谢谢。
【问题讨论】:
标签: angular spring mongodb spring-boot powerbi
首先您需要知道嵌入 Power BI 有两种模式 - user owns data 和 app owns data。在第一种模式下,嵌入时,用户将使用自己的 Power BI Pro 帐户进行身份验证,即您的每个用户都需要 Power BI Pro 许可证。使用后一种,您只需要一个“主帐户”,它将用于身份验证。实现上的差异并不大,所以我将描述app owns data。
您需要执行以下操作:
注册应用程序 - 转到 dev.powerbi.com/apps 并注册本机应用程序。选择授予它的权限(如果您不确定,对于您的第一次测试,只需授予所有权限)。复制 guid - 这是应用 ID,也就是客户端 ID。
下一步是从您的应用程序进行身份验证并获取访问令牌。为此使用Azure Active Directory Authentication Library (ADAL) - 调用AuthenticationContext 类的一些acquireToken 方法。
使用此访问令牌调用 Power BI REST API 并获取要嵌入的元素的 embedUrl,例如report。
使用Power BI JavaScript client 实际嵌入此元素。您需要初始化一个embed configuration class 并传递有关元素类型(报告、仪表板、磁贴)、在哪里找到它(embedUrl)、身份验证(访问令牌)、一些其他配置选项(显示或隐藏过滤器窗格、导航等)的信息.),要应用的过滤器等等。如果您将使用上面获取的访问令牌,请将tokenType 设置为AAD。此令牌具有许多特权,因此出于安全原因,您可能希望改用Embed 令牌。在这种情况下,使用访问令牌再次调用 REST API(例如Reports GenerateTokenInGroup)。
调用 JavaScript 客户端的 powerbi.embed 方法传递嵌入式配置以在您的应用中可视化此 Power BI 元素。
这里有一些资源,你应该阅读:
【讨论】: