相关文章推荐
小眼睛的羊肉串  ·  少即是多,花里胡哨不如“简单粗暴”,凯励程S ...·  11 月前    · 
傻傻的小蝌蚪  ·  1296名个人获表彰!一起致敬湖南战贫英雄! ...·  1 年前    · 
寂寞的酱牛肉  ·  戚薇回应离婚传闻:抱歉,我还是让你们失望了·  1 年前    · 
稳重的胡萝卜  ·  自然资源部 ...·  1 年前    · 
苦闷的饺子  ·  花园入口这样做,藏风聚气,私密性好,更符合我 ...·  2 年前    · 
小百科  ›  如何将报表嵌入到第三方系统中_智能商业分析 Quick BI(Quick BI)-阿里云帮助中心
电子表格 dashboard iframe 商业分析
怕老婆的皮带
7 月前
大模型 产品 解决方案 文档与社区 权益中心 定价 云市场 合作伙伴 支持与服务 了解阿里云
AI 助理
备案 控制台
官方文档
有奖调研
输入文档关键字查找
智能商业分析 Quick BI 报表嵌入的基础方案

报表嵌入的基础方案

更新时间:
产品详情
我的收藏

Quick BI 支持将群空间中的报表(仪表板、电子表格)嵌入到其他系统中,以便和其他应用系统集成,更便捷实现业务一体化应用。下面为您介绍如何将报表嵌入到第三方系统中,本文适用于高级版和专业版。

使用限制

  • 基础版方案仅支持仪表板和电子表格的嵌入。

  • 对于需要将电子表格填报页面嵌入第三方环境的用户:由于部分系统浏览器禁止非同源的 iframe 嵌入页面写入 cookie,导致复杂表格填报页面提交数据失败。例如在 iOS 系统的企业微信内置浏览器中,打开在第三方环境嵌入的复杂表格填报页面,填写数据并提交后,出现数据提交失败的情况。

    因此,建议您直接通过 Quick BI 平台使用电子表格填报功能。

背景信息

如果您需要将 Quick BI 报表嵌入并应用到您的系统中,可以设置报表嵌入功能。

  • 当您使用 Quick BI 高级版 时,第三方报表嵌入后无法区分数据权限,报表嵌入后行级权限功能无法生效,和报表的作者数据权限保持一致,且不支持嵌入安全增强方案。

  • 当您使用 Quick BI 专业版 时,第三方报表嵌入后支持区分数据权限。即,专业版支持实现同一份报表,不同用户看不同的数据,且支持嵌入安全增强方案,详情请参见 报表嵌入数据权限控制和传参的安全增强方案 。

步骤 1:开通需要嵌入的报表

仅当报表是 发布状态 时,才支持设置报表嵌入功能。

您可以从开放平台模块开通报表嵌入:

  1. 在 Quick BI 产品首页,按照下图指引,进入嵌入报表页面。

    image

  2. 在 新增嵌入报表 页面,选择目标工作空间和数据对象类型后,在列表中选中数据对象名称后,单击 开通嵌入 。若报表太多时,您也可以输入报表名称,帮助您快速搜索到目标报表。 image.png

    说明

    对于需要将电子表格填报页面嵌入第三方环境的用户:由于部分系统浏览器禁止非同源的 iframe 嵌入页面写入 cookie,会导致电子表格填报页面提交数据失败。因此,建议您直接通过 Quick BI 平台使用电子表格填报功能。

  3. 嵌入配置。

    报表嵌入配置 的调试功能仅针对 增强方案 。

    重要

    此处调试仅做功能体验使用,实际应用请完成 步骤 2:通过 HTTPS 接口获取 accessTicket 和 步骤 3:拼接免登 URL 。

    报表在开通嵌入后,在实际集成时, 基础方案 和 增强方案 的能力项有所不同,具体请参见下表:

    能力项

    基础方案

    增强方案

    绑定用户

    报表 owner,且不可修改

    支持自定义,千人千面

    访问次数

    每个 Ticket 最多 10 万次

    不限量,支持自定义设置

    水印

    不支持

    支持

    (大屏本身不支持水印除外)

    有效时长

    最大 240 分钟

    支持自定义

    全局参数

    不支持

    支持

    区块嵌入

    不支持

    支持

    跳转次数

    说明

    被跳转的报表也需要开通嵌入。

    仅可跳转一次

    例如:A 报表跳转到 B 报表后,B 报表无法再跳转到 C 报表。

    支持跳转任意次数

    例如:A 报表跳转到 B 报表后,B 报表还能跳转到 C 报表,C 也能再继续往后跳转,以此类推。

步骤 2:通过 HTTPS 接口获取 accessTicket

本文以嵌入群空间中的仪表板至第三方系统为例。

  • 如果开通仪表板接入权限的账号拥有 开发或分析权限 ,则只能开通该账号创建的仪表板权限。

  • 如果该账号拥有 管理权限 ,则可以开通该工作空间所有报表权限。

    1. 按照下面的操作流程,获取 AccessKey ID 和 AccessKey Secret,即 accessId 和 accessKey。

      1. 登录 Quick BI 控制台 。

      2. 在 Quick BI 首页,按照下图指引,获取 AccessKey ID 和 AccessKey Secret。

        image

    2. 获取 阿里云账号 ID ,即 aliyunUid。

      登录阿里云账号,单击头像右上角查看账号 ID。

      image.png

    3. 在报表编辑页获取 报表 ID ,即 worksId:

      image.png

    4. 获取 accessTicket

      将上述步骤获取的 accessId、accessKey、aliyunUid 和 worksId 参数拼接到如下请求地址中,并发送 get 请求获取 accessTicket。

      https://bi.aliyun.com/openapi/ac3rd/ticket/create?worksId=xx&aliyunUid=xx&accessKey=xx&accessId=xx&validityTime=xx

      说明
      • aliyunUid 仅用于生成 accessTicket 时,校验当前角色是否有报表的编辑权限,不做三方嵌入报表的身份绑定。

      • validityTime 为非必传参数,取值范围为 1~240,默认值为 240,单位:分钟。

      • 如果想要立即取消 accessTicket 的失效,可以发送 post 请求,填入 aliyunUid、accessId、accessKey 和 accessTicket 对应的值。

        http://bi.aliyun.com/openapi/ac3rd/ticket/invalid?aliyunUid=xx&accessId=xx&accessKey=xx&accessTicket=xx

步骤 3:拼接免登 URL

说明

本方案不支持绑定人鉴权,默认以报表 owner 的身份去访问免登报表。

拼接流程及示例见下表。

流程

仪表板示例

电子表格示例

1、获取 Quick BI 域名

bi.aliyun.com

bi.aliyun.com

2、获取预览报表 URL

token3rd/dashboard/view/pc.htm

token3rd/report/view.htm

3、获取报表 ID

dd0****83f

42****18ef6

4、获取 accessTicket

fd138bcb-****-4fde-b413-81bcee59bdb6

fd138bcb-****-4fde-b413-81bcee59bdb6

拼接格式及报表 URL 如下。

  • 仪表板的拼接格式为 https://<Quick BI 域名>/<预览报表 URL>?pageId=<报表 ID>&accessTicket=<AccessTicket> ,则生成的 URL 为:

    https://bi.aliyun.com/token3rd/dashboard/view/pc.htm?pageId=dd0****83f&accessTicket=fd138bcb-****-4fde-b413-81bcee59bdb6
  • 电子表格的拼接格式为 https://<Quick BI 域名>/<预览报表 URL>?id=<报表 ID>&accessTicket=<AccessTicket> ,则生成的 URL 为:

    https://bi.aliyun.com/token3rd/report/view.htm?id=<42****18ef6>&accessTicket=fd138bcb-****-4fde-b413-81bcee59bdb6
  1. 获取 Quick BI 域名。

    例如,Quick BI 公共云域名为 bi.aliyun.com ,以具体环境域名为准。

  2. 获取预览报表 URL。

    报表对应的预览页面 URL 如下,您可以根据需要选择。

    • 仪表板: token3rd/dashboard/view/pc.htm

    • 电子表格: token3rd/report/view.htm

  3. 在报表编辑页面,获取报表 ID。

    • 仪表板

      在仪表板编辑页面,获取地址栏中仪表板 pageId 的值。 仪表板ID

    • 电子表格

      在电子表格编辑页面,获取地址栏中电子表格 ID 的值。 电子表格ID

  4. 将上述步骤获取的 Quick BI 域名、预览报表 URL、报表 ID 和步骤 2 获取的 AccessTicket 参数拼接到如下请求地址中。

    • 仪表板的拼接格式 https://<Quick BI 域名>/<预览报表 URL>?pageId=<报表 ID>&accessTicket=<AccessTicket>

    • 电子表格的拼接格式 https://<Quick BI 域名>/<预览报表 URL>?id=<报表 ID>&accessTicket=<AccessTicket>

管理嵌入的报表

对已嵌入的第三方报表,可以执行如下操作:

  • 查询已嵌入的报表:在报表列表页面的搜索框中,输入报表名称关键字并单击 查询 图标,查询报表。

    您可以通过选择报表的工作空间或报表类型,缩小搜索范围。

  • 查看已嵌入的报表数量。请参见 查看嵌入报表数量 。

  • 删除已嵌入的报表:单击报表后的 删除 图标,删除报表。

查看嵌入报表数量

  1. 在 Quick BI 产品首页单击 开放平台 。

  2. 在左侧导航栏单击 嵌入分析 。

    在 报表嵌入 页面,您可以看到嵌入到第三方的报表数量。 image

如何解决报表嵌入时“access report_tree unauthorized”报错?

问题描述

当使用报表第三方嵌入功能时,报错信息如下图所示。 1

存在原因

没有在对应的群空间内开通报表权限。

解决方案

您可以按照如下操作自主开通报表权限。 image

嵌入 Quick BI 的第三方报表如何自适应高度(PC 端)?

问题描述

第三方使用 Iframe 嵌入 Quick BI 仪表板时,由于浏览器本身跨域安全限制,无法获取 Iframe 中仪表板的高度,会导致仪表板出现滚动条的现象。

解决方案

Quick BI 在加载仪表板时,会将当前仪表板的高度通过 postMessage 的方式传到外部页面。外部页面可通过事件监听的方式获取仪表板的高度和 ID。

您可以通过两种方式操作:

  • 主动传递 Iframe 内容高度给外部页面。

    // Quick BI地址,如使用其他地址可自行补充
    const quickBIURL = ['https://bi.aliyun.com/'];
    function messageListener(event) {
      if (quickBIURL.includes(event.origin)) {
        // 使用postMessage传出的高度
        console.log('Quick BI Dashboard Height:', event.data.height);
        // 使用postMessage传出的仪表板页面ID
        console.log('Quick BI Dashboard Id:', event.data.pageId);
    // 在仪表板加载之前进行监听
    window.addEventListener('message', messageListener);
  • 外部页面主动通过 postMessage 到 Iframe 页面获取仪表板高度。

    其中:

    • Iframe 为嵌入 Quick BI 仪表板的 Iframe。

    • message 传入的 data 中必须包含 { getDashboardHeight: true } 。

    代码块示例如下。

    // Quick BI地址,如使用其他地址可自行补充
    const quickBIURL = ['https://bi.aliyun.com/'];
    function messageListener(event) {
      if (quickBIURL.includes(event.origin)) {
        // 使用postMessage传出的高度
        console.log('Quick BI Dashboard Height:', event.data.height);
        // 使用postMessage传出的仪表板页面ID
        console.log('Quick BI Dashboard Id:', event.data.pageId);
    // 在仪表板加载之前进行监听
    window.addEventListener('message', messageListener);
    // 主动请求Quick BI仪表板高度
    // 嵌入Quick BI仪表板的Iframe
    const iframe = document.querySelector('iframe');
    // message传入的data中必须包含{ getDashboardHeight: true }
    iframe.contentWindow.postMessage({getDashboardHeight: true}, '*');
    说明

    Quick BI 仪表板的宽度会随外层容器自适应,因此不会出现纵向滚动条,不需要适配宽度。

完整示例

<!DOCTYPE html>
<html lang="en">
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    </head>
        <iframe 
        class="quickbi-iframe-demo"
    src="https://bi.aliyun.com//token3rd/dashboard/view/pc.htm?pageId=dd0****83f&accessTicket=fd138bcb-****-4fde-b413-81bcee59bdb6"
      scrolling="no"
     frameborder="0" 
      width="100%" 
      height="600">
    </iframe>
   <!-- <useBodyAutoHeight=true>为页面body高度自适应, <page_Id>为仪表板页面的ID,accessTicket为访问仪表板的准入令牌 -->
        <script>
      // Quick BI地址,如使用其他地址可自行补充
      const quickBIURL = ['https://bi.aliyun.com'];
      function messageListener(event) {
        if (quickBIURL.includes(event.origin)) {
          // 使用postMessage传出的高度
          console.log('Quick BI Dashboard Height:', event.data.height);
          // 使用postMessage传出的仪表板页面ID
          console.log('Quick BI Dashboard Id:', event.data.pageId);
      // 在仪表板加载之前进行监听
      window.addEventListener('message', messageListener);
      // 嵌入Quick BI仪表板的Iframe
      const iframe = document.querySelector('iframe');
       // 主动请求Quick BI仪表板高度
      // message传入的data中必须包含{ getDashboardHeight: true }
      iframe.contentWindow.postMessage({getDashboardHeight: true}, '*');
        </script>
    </body>
</html>

移动端页面使用 Iframe 形式,嵌入到第三方应用如何设置宽度?

问题描述

由于 Iframe 在低版本 IOS 上兼容性问题,导致 iframe 实际宽度溢出,出现仪表板整体左右滑动、固定列表格无法滑动、图表展示截断、查询控件弹出框错位等异常现象。

解决方案

修改 Iframe 样式。

请严格按照以下示例代码修改:

iframe {
    border-width: 0;
    min-width: 100%;
    width: 0;
    *width: 100%;
    height: 667px; /* 高度需使用固定值,可在获取到屏幕高度后动态设置,height: 100%会有兼容性问题 */
上一篇:嵌入分析 下一篇:报表嵌入数据权限控制和传参的安全增强方案
该文章对您有帮助吗?
 
推荐文章
小眼睛的羊肉串  ·  少即是多,花里胡哨不如“简单粗暴”,凯励程S5智能行车记录仪体验报告_行车记录仪_什么值得买
11 月前
傻傻的小蝌蚪  ·  1296名个人获表彰!一起致敬湖南战贫英雄!-平江县政府网
1 年前
寂寞的酱牛肉  ·  戚薇回应离婚传闻:抱歉,我还是让你们失望了
1 年前
稳重的胡萝卜  ·  自然资源部 农业农村部关于做好不动产统一登记与土地承包合同管理工作有序衔接的通知
1 年前
苦闷的饺子  ·  花园入口这样做,藏风聚气,私密性好,更符合我们东方人的审美观 - 知乎
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
小百科 - 百科知识指南
© 2024 ~ 沪ICP备11025650号