最近做了一个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应用程序?的更多相关文章

  1. 5.把报表集成到Web应用程序中-生成网页和导出两种方式

    转自:https://wenku.baidu.com/view/104156f9770bf78a65295462.html 第四部分,把报表集成到Web应用程序中 用MyEclipse新建一个Web ...

  2. 如何把Power BI嵌入到Web应用中

    (此文章同时发表在本人微信公众号"dotNET开发经验谈",欢迎右边二维码来关注.) 题记:这篇其实不是一个操作向导了,主要对Power BI的嵌入特性进行探讨. Power BI ...

  3. PowerBI更新 - 解决方案架构 - PowerBI Solution Architecture(一图胜万字!)

    2019/04更新 参见这里 今天发福利啦!发福利啦!发福利啦! 企业的各种数据整合到PowerBI显示,浏览器,移动端显示关键指标. 一个很好的PowerBI解决方案的图!一图胜万字!你所需要知道的 ...

  4. 报表嵌入到.net系统页面

    目录: 1. 问题描述 2. 情形一:报表整体嵌入在.net系统框架中 3. 情形二:报表嵌入.net系统的某个页面中 4.权限控制方式 5.嵌入问题解决 1. 问题描述编辑 报表部署到Web应用服务 ...

  5. 如何把Qlik Sense嵌入到Web应用中

    (此文章同时发表在本人微信公众号"dotNET开发经验谈",欢迎右边二维码来关注.) 题记:这是一个给初学者(尤其对VS不熟悉的BI工程师)的入门操作向导. Qlik Sense是 ...

  6. C#WinForm窗体内Panel容器中嵌入子窗体、程序主窗体设计例子

    C#WinForm父级窗体内Panel容器中嵌入子窗体.程序主窗体设计例子 在项目开发中经常遇到父级窗体嵌入子窗体所以写了一个例子程序,顺便大概划分了下界面模块和配色,不足之处还望指点 主窗体窗体采用 ...

  7. 葡萄城报表介绍:Web 报表

    Web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和 HTTP 的.全球性的.动态交互的.跨平台的分布式图形信息系统.Web 报表是以 Web 作为信息展示平台,可以 ...

  8. 海康威视 嵌入到web页面相关问题

    因项目上面需求,接触到了海康威视的设备,要把他嵌入到web页面中,所以就开始了爬坑之路 刚开始不知道如何把设备的页面嵌入到项目的web页面中,直到我遇见了他——“WEB3.0控件开发包V1.0.9_C ...

  9. 使用 php 内部web服务器

    使用 php 内部web服务器如网站目录 d:\web\index.php1.打开命令窗口,输入下列3条命令cd d:cd d:\web\index.phpphp -S localhost:80802 ...

  10. 第一个嵌入汇编的C程序

    最近两天开始学习linux内核,看了赵炯博士的<linux内核完全注释>感觉受益匪浅.今天看到第三章 嵌入汇编部分,于是写了一个小程序试验了一下,用gcc编译通过.代码如下: #inclu ...

随机推荐

  1. [Leetcode 108]有序数组转BST二叉搜索树Convert Sorted Array to Binary Search Tree

    题目 https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ Given an integer array  ...

  2. SQL Server之Cross apply

    1 --这样是不行的 2 select sys.dm_exec_sql_text(most_recent_sql_handle) from sys.dm_exec_connections 3 4 -- ...

  3. 磊磊零基础打卡算法:day17 c++堆排序

    5.20 前言吐槽: 今天是5.20啦,但是作为单身修狗的我只能和代码过啦...继续加油算法打卡!!! 堆排序: 堆就是一棵完全二叉树 二叉堆是一种支持插入,删除,查询最值的数据结构.他其实是一棵满足 ...

  4. VBA类模块完全教程(www.accessoft.com软件网)

    这份礼物送给现在想学习类知识或曾经学过但因为各种原因没有"修成正果"的朋友,我期望的结果是这篇文章后,您可以在类模块中像在标准模块中写代码一样熟练,我也期望不至于太乏味而使您没有耐 ...

  5. linux命令基本操作

    chmod 命令 : chmod -R 755 tools_command/ 解释 : -R 为递归遍历tools_command文件夹, chmod 755修改权限: 查看所有用户 1.cat /e ...

  6. JUC学习!

    JUC 1.what? JUC就是java.util.concurrent下面的类包,专门用于多线程的开发. 2.why? 解决多线程.高并发 3.how?  ||  || ﹀ point1:vola ...

  7. 实验五:开源控制器实践——POX

    基本要求 1.tcpdump 验证Hub模块 h1 ping h2的tcpdump抓包结果截图 h1 ping h3的tcpdump抓包结果截图 2.tcpdump 验证Switch模块 h1 pin ...

  8. userdel: user zhangsan is currently used by process 1057

    我个人推测是在root用户下su 切换到xiaoming用户,然后在xiaoming用户下又切换回root,但是xiaoming用户还被某个进程占用着,所以进程不死,用户del不掉. 所以我们在命令行 ...

  9. MarkDown学习day1

    # Markdown学习 ## 标题: #+"空格"+标题名字 为一级为标题 ##+"空格"+标题名字 为二级标题 同理几级标题就是几个#,最多支持6级标题 # ...

  10. 个人数据保全计划:(2) NAS基础知识

    前言 距离去年国庆入手了NAS至今有好几个月时间了,NAS折腾起来有点麻烦,且实际作用因人而异,并没有想象中的好用,所以说好的这个系列一直没有更新~ 还有另一方面的原因,这些NAS的系统基于Linux ...