PowerBI(一) : 如何将powerBI报表嵌入内部web应用程序?
最近做了一个PowerBI报表嵌入内部web应用系统的项目,分享一下主要步骤以及踩坑记录。
微软官网完整教程这里:https://learn.microsoft.com/zh-cn/power-bi/developer/embedded/embedded-analytics-power-bi
以下是我自己总结的主要步骤(仅供大家参考):
1. 你要付费买一个powerBI的账号。
2. 用这个powerBI账号登录 Azure 门户。
3. 在Azure 门户里选择 “应用注册” ,如果没有,就全局搜索一下。
4. 注册的时候需要特别注意一个地方,“账户类型” ,简单说,如果你希望web端用户每次进去都需要自己的powerBI账号登录查看报表,那就选择“仅此组织目录”。如果希望web端用户不需要登录即可查看报表,那就选择“任何组织目录”,就是选第一个和第二个的区别。

官方的说法是叫 “为组织嵌入内容” 和 “为客户嵌入内容”,区别就是登录不登录的问题。当然,对于这俩个类型,官方github给出的代码示例也不一样,比如你选择为“为客户嵌入内容” 官方不提供react版本代码。但其实自己也可以实现。
5. 在Azure 上 “应用注册” 好后,需要给这个应用赋予一定的访问权限,比如powerBI api的权限。
6. 在Azure 上 “应用注册” 好后,权限也设置完成后,需要复制这个应用的clientId、秘钥、租户ID等信息,给web端使用。
7. PowerBI客户端建立报表,发布报表,这个步骤相信会PowerBI的不用多说了。
8. PowerBI客户端报表完成后,需要去设置里面开启允许 应用访问 API。
9. 开始开发嵌入报表的web系统,我这边采用的是C# web api技术提供报表的后台服务,前端采用react + antd 技术。当然,你可以可以根据自己公司的技术要求,比如Java、python都可以。
主要的代码逻辑为:
- 复制Azure 上注册的 “应用” clientID 和秘钥去请求微软OAuth2身份验证接口,拿到 "访问token"
- 用这个"访问token" 去 请求powerBI的接口,获取“嵌入token"
- 把“嵌入token" 传到前端的powerBI报表组件中进行渲染
最终效果:(有问题可以给我留言)

PowerBI(一) : 如何将powerBI报表嵌入内部web应用程序?的更多相关文章
- 5.把报表集成到Web应用程序中-生成网页和导出两种方式
转自:https://wenku.baidu.com/view/104156f9770bf78a65295462.html 第四部分,把报表集成到Web应用程序中 用MyEclipse新建一个Web ...
- 如何把Power BI嵌入到Web应用中
(此文章同时发表在本人微信公众号"dotNET开发经验谈",欢迎右边二维码来关注.) 题记:这篇其实不是一个操作向导了,主要对Power BI的嵌入特性进行探讨. Power BI ...
- PowerBI更新 - 解决方案架构 - PowerBI Solution Architecture(一图胜万字!)
2019/04更新 参见这里 今天发福利啦!发福利啦!发福利啦! 企业的各种数据整合到PowerBI显示,浏览器,移动端显示关键指标. 一个很好的PowerBI解决方案的图!一图胜万字!你所需要知道的 ...
- 报表嵌入到.net系统页面
目录: 1. 问题描述 2. 情形一:报表整体嵌入在.net系统框架中 3. 情形二:报表嵌入.net系统的某个页面中 4.权限控制方式 5.嵌入问题解决 1. 问题描述编辑 报表部署到Web应用服务 ...
- 如何把Qlik Sense嵌入到Web应用中
(此文章同时发表在本人微信公众号"dotNET开发经验谈",欢迎右边二维码来关注.) 题记:这是一个给初学者(尤其对VS不熟悉的BI工程师)的入门操作向导. Qlik Sense是 ...
- C#WinForm窗体内Panel容器中嵌入子窗体、程序主窗体设计例子
C#WinForm父级窗体内Panel容器中嵌入子窗体.程序主窗体设计例子 在项目开发中经常遇到父级窗体嵌入子窗体所以写了一个例子程序,顺便大概划分了下界面模块和配色,不足之处还望指点 主窗体窗体采用 ...
- 葡萄城报表介绍:Web 报表
Web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和 HTTP 的.全球性的.动态交互的.跨平台的分布式图形信息系统.Web 报表是以 Web 作为信息展示平台,可以 ...
- 海康威视 嵌入到web页面相关问题
因项目上面需求,接触到了海康威视的设备,要把他嵌入到web页面中,所以就开始了爬坑之路 刚开始不知道如何把设备的页面嵌入到项目的web页面中,直到我遇见了他——“WEB3.0控件开发包V1.0.9_C ...
- 使用 php 内部web服务器
使用 php 内部web服务器如网站目录 d:\web\index.php1.打开命令窗口,输入下列3条命令cd d:cd d:\web\index.phpphp -S localhost:80802 ...
- 第一个嵌入汇编的C程序
最近两天开始学习linux内核,看了赵炯博士的<linux内核完全注释>感觉受益匪浅.今天看到第三章 嵌入汇编部分,于是写了一个小程序试验了一下,用gcc编译通过.代码如下: #inclu ...
随机推荐
- 使用netty 实现本地代理程序
本地代理程序1:将远程的服务设置为本地端口访问我的台式PC安装了vm,因为都是机器私有IP,但我的另外的PC电脑也需要访问方便测试,需要要把VM的端口设置在台式本机对外,这样我台式的端口对外在局域网都 ...
- ubuntu clean swap
https://askubuntu.com/questions/1357/how-to-empty-swap-if-there-is-free-ram#:~:text=a single line-,s ...
- linux 数据卷磁盘管理
新加磁盘如何创建逻辑分区 查看命令 lvs vgs pvs 1: 新建一个分区(partition)fdisk /dev/sdb 2:创建PV(物理卷)pvcreate /dev/sdb1pvs或 ...
- DataX Web可视化分布式调度数据同步系统
因项目需要,结合目前参与的项目,以及个人技术能力范围,组合研发一套web可视化数据同步系统,正式名称:DataXP. 项目背景:接触过阿里云这类大数据平台,对于中大型项目以及需要与外部系统对接数据的情 ...
- finereport连接mysql8.0
1.java包更新 2.下载地址:https://dev.mysql.com/downloads/connector/j/ 3.替换文件为8.0删除5.1版本 4.驱动器手动输入com.mysql.c ...
- OSI七层模型、TCP协议
1. 网络资产搜索引擎 2. 网站存储用户密码进行MD5加密 3. 小型Web管理系统账号密码使用base64进行加密 4. IP地址:网络位+主机位 5. 局域网中没有DHCP服务主机获取的地址范围 ...
- MarkDown学习day1
# Markdown学习 ## 标题: #+"空格"+标题名字 为一级为标题 ##+"空格"+标题名字 为二级标题 同理几级标题就是几个#,最多支持6级标题 # ...
- Drf_序列化and反序列化基础
序列化类 from rest_framework import serializers class BookSerializer(serializers.Serializer): # 要序列化的字段 ...
- luffy前端配置and跨域
1. 安装axios 命令:npm install axios main.js内配置并使用 import axios from 'axios'app.config.globalProperties.$ ...
- Windows系统镜像下载站合集
Windows系统镜像下载站合集https://latest10.win/https://msdn.itellyou.cn/https://hellowindows.cn/https://www.im ...