angular - Power BI 与 Spring Angular 的集成
问题描述
我目前正在使用 Spring/Angular 开发一个 Web 应用程序。
我需要将 Power Bi 集成到我的应用程序中,以便能够使用 Spring 创建数据集和报告并在 Angular 中获取图表。
是否有任何示例或教程可以帮助我入门?
谢谢你。
解决方案
首先,您需要知道嵌入 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 身份验证库 (ADAL) - 调用类的一些
acquireToken
方法AuthenticationContext
。使用此访问令牌调用 Power BI REST API 并获取
embedUrl
要嵌入的元素,例如report。使用Power BI JavaScript 客户端实际嵌入此元素。您需要初始化一个嵌入配置类并传递有关元素类型(报告、仪表板、磁贴)、在哪里找到它(embedUrl)、身份验证(访问令牌)、一些其他配置选项(显示或隐藏过滤器窗格、导航等)的信息.),要应用的过滤器等等。如果您将使用上面获得的访问令牌,请设置
tokenType
为AAD
. 此令牌具有许多特权,因此出于安全原因,您可能希望改用Embed
令牌。在这种情况下,使用访问令牌再次调用 REST API(例如Reports GenerateTokenInGroup)。JavaScript 客户端的调用
powerbi.embed
方法传递嵌入式配置以在您的应用中可视化此 Power BI 元素。
以下是一些您应该阅读的资源:
推荐阅读
- php - PHP 回显这个 if 条件
- android - 如何从 MaterialComponents.DayNight 主题更改工具栏文本颜色?
- javascript - 通过三层组件传递函数(即从孙组件调用函数)
- java - 我们如何在 Maven 中为主要和测试 java 代码集设置不同的 PMD 规则集?
- node.js - 使用 readFileStream 读取变化的文件
- reactjs - 从 react-loadable 使用 Loadable 进行代码拆分会导致屏幕闪烁
- firebase - 未处理的“错误”事件。(/var/task/google/api)
- laravel - Laravel 5.7 API 与 CORS 问题
- r - RStudio 似乎正在错误地导入数据。有什么建议么?
- python - Tensorflow Keras Input 层不添加 _keras_shape