本文將為您介紹如何使用Ticket報表嵌入方案免登嵌入到第三方系統,同時可控制嵌入至第三方系統的Quick BI報表許可權,以及如何通過票據管理有效防止連結被惡意分享資料泄露的問題。本文適用於專業版。
傳參嵌入使用說明:
在嵌入式整合情境下,結合全域參數注參的方式可以實現同一張報表千人千面的看數效果。
傳參嵌入僅面向專業版100個通用使用者數及以上企業客戶開放。
背景資訊
Quick BI全新推出了安全增強嵌入分析方案,簡稱Ticket報表嵌入方案,當使用Quick BI專業版時,可實現連結、訪問、看數等多情境一站式安全管控,協助您低成本與企業業務系統整合,高效構建自有品牌特色的資料產品。
注意事項
使用Ticket報表嵌入方案,需要關注以下幾點:
目前僅支援將儀表板、試算表、資料大屏、自助取數、即席分析和資料填報的報表嵌入到其他系統。
若您需要試用全域參數能力,請聯絡Quick BI營運負責人。
Quick BI專業版支援增強方案,進階版僅支援基礎方案。
基礎方案和增強方案的能力項有所不同,具體請參見下表:
能力項
基礎方案
增強方案
綁定使用者
報表owner,且不可修改
支援自訂,千人千面
訪問次數
每個Ticket最多10萬次
不限量,支援自訂設定
浮水印
不支援
支援
(大屏本身不支援浮水印除外)
有效時間長度
最大 240 分鐘
支援自訂
全域參數
不支援
支援
區塊嵌入
不支援
支援
跳轉次數
說明被跳轉的報表也需要開通嵌入。
僅可跳轉一次
例如:A報表跳轉到B報表後,B報表無法再跳轉到C報表。
支援跳轉任意次數
例如:A報表跳轉到B報表後,B報表還能跳轉到C報表,C也能再繼續往後跳轉,以此類推。
本文以中國香港的網域名稱(bi-cn-hongkong.data.aliyun.com)為例進行連結拼接,其他網站使用時請替換為對應網站的網域名稱。
步驟1:開通需要嵌入的報表
僅當報表是發布狀態時,才支援設定報表嵌入功能。
您可以使用從開放平台模組開通報表嵌入:
在Quick BI產品首頁,按照下圖指引,進入嵌入報表頁面。

在新增嵌入報表頁面,選擇目標工作空間和資料物件類型後,在列表中選中資料對象名稱後,單擊開通嵌入。

若報表太多時,您也可以輸入報表名稱,協助您快速搜尋到目標報表。
在報表嵌入配置對話方塊,進行以下配置。
重要此處調試僅做功能體驗使用,實際應用請完成步驟2:通過API介面產生AccessTicket票據和步驟3:拼接免登URL。
參數名稱
描述
內嵌物件
選擇嵌入的對象。
選擇頁面整體,則嵌入的對象為當前儀表板。
選擇某個組件,則嵌入的對象為當前儀表板下的某個組件。
展示型配置
嵌入後,是否攜帶當前儀表板的標題。
安全認證類型和Ticket連結
選擇Ticket認證並產生Ticket連結。
您可以手動輸入Ticket連結或者單擊快捷產生,產生Ticket。

在產生Ticket的介面,您可以設定綁定使用者、有效時間長度、浮水印參數和訪問次數和全域參數。
擷取內嵌程式碼
支援產生URL連結和Iframe代碼。
說明您可以在URL連結中通過注入語言參數
locale的形式,來調整被嵌入頁面的語言。支援將locale的值設定為zh-CN(中文)或en-US(英文),例如下圖即指定被嵌入頁面的語言為中文。
單擊複製。
步驟2:通過API介面產生AccessTicket票據
調用CreateTicket介面產生報表嵌入需要使用的Ticket。
產生accessTicket的各項參數說明如下:
參數名稱
類型
描述
WorksId
String
開通嵌入的報表ID。
目前支援儀表板、試算表、資料大屏、自助取數、即席分析和資料填報。
CmptId
String
組件ID。為以上報表中某個組件的ID。
擷取組件ID調用的介面請參見QueryWorksBloodRelationship。
TicketNum
Integer
Ticket的票據數量。
預設值為1。
建議值為1。
最大值為99999。
每次使用票據訪問後,Ticket的票據數量減1。
UserId
String
Quick BI的UserId,非您的阿里雲帳號ID。
您可以調用QueryUserInfoByAccount介面,擷取UserId。UserId範例為
fe67f61a35a94b7da1a34ba174a7****。說明UserId和AccountName只填一個即可,不填時預設綁定報表的Owner。若您需要配置資料行級許可權,請參見附1:配置資料行級許可權。
AccountName
String
使用者的帳號名稱。
如果使用者是阿里雲主帳號wangwu,格式為[主帳號],例如wangwu。
如果使用者是RAM帳號zhangsan**@aliyun.cn,格式為[主帳號:子帳號],例如wangwu:zhangsan**。
說明UserId和AccountName只填一個即可,不填時預設綁定報表的Owner。若您需要配置資料行級許可權,請參見附1:配置資料行級許可權。
AccountType
Integer
使用者的帳號類型。
1:阿里雲帳號
3:Quick BI自建帳號
5:RAM子帳號
說明若AccountName不為空白時,則AccountType也不可為空。
ExpireTime
Integer
到期時間。
單位:分鐘
預設值:240(該值為頁面調試的上限數值,可通過介面自訂,最大上限是integer欄位類型的最大取值)
WatermarkParam
String
報表的浮水印參數。
不得超過50個字元。
GlobalParam
String
報表過濾條件的全域參數。
格式為JSON格式的字串。
說明若您需要使用全域參數能力,請聯絡Quick BI營運負責人。
說明連結防分享控制:TicketNum的取值建議為1,表示產生的第三方嵌入連結僅被訪問一次。
報表嵌入時,支援綁定浮水印參數WatermarkParam。
產生AccessTicket。
範例程式碼請參見SDK樣本。
返回結果樣本如下:
{ "requestId" : "7D784AB0-5B77-077E-B628-E782B58D3898", "result" : "fd138bcb-****-4fde-b413-81bcee59bdb6", "success" : true }說明result即為此次API調用產生的AccessTicket,AccessTicket為fd138bcb-****-4fde-b413-81bcee59bdb6。
步驟3:拼接免登URL
拼接流程及樣本見下表。
流程 | 儀表板樣本 | 試算表樣本 | 自助取數樣本 | 資料大屏樣本 | 即席分析樣本 | 資料填報樣本 |
|
|
|
|
|
| |
|
|
|
|
|
| |
|
|
|
|
|
| |
|
|
|
|
|
|
拼接格式及報表URL如下。
儀表板的拼接格式為
https://<Quick BI網域名稱>/<預覽報表URL>?pageId=<報表ID>&accessTicket=<AccessTicket>,則產生的URL為:https://bi-cn-hongkong.data.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-cn-hongkong.data.aliyun.com/token3rd/report/view.htm?id=<42****18ef6>&accessTicket=fd138bcb-****-4fde-b413-81bcee59bdb6自助取數的拼接格式為
https://<Quick BI網域名稱>/<預覽報表URL>?pageId=<報表ID>&accessTicket=<AccessTicket>則以中國香港網站為例,產生的URL為:https://bi-cn-hongkong.data.aliyun.com/token3rd/offline/view/pc.htm?pageId=<42****18ef6>&accessTicket=fd138bcb-****-4fde-b413-81bcee59bdb6資料大屏的拼接格式為
https://<Quick BI網域名稱>/<預覽報表URL>?pageId=<報表ID>&accessTicket=<AccessTicket>則以中國香港網站為例,產生的URL為:https://bi-cn-hongkong.data.aliyun.com/token3rd/screen/view/pc.htm?pageId=<42****18ef6>&accessTicket=fd138bcb-****-4fde-b413-81bcee59bdb6即席分析的拼接格式為
https://<Quick BI網域名稱>/<預覽報表URL>?pageId=<報表ID>&accessTicket=<AccessTicket>則以中國香港網站為例,產生的URL為:https://bi-cn-hongkong.data.com/token3rd/analysis/view.htm?id=<xxx>&accessTicket=<xxx>資料填報的拼接格式為
https://<Quick BI網域名稱>/<預覽報表URL>?pageId=<報表ID>&accessTicket=<AccessTicket>則以中國香港網站為例,產生的URL為:http://bi-cn-hongkong.data.com/token3rd/dataform/view.htm?id=<xxx>&accessTicket=<xxx>
若您需要在報表中進行區塊嵌入,需要在報表URL後拼接&cmptId=XXX。例如,您需要在試算表中嵌入區塊,則產生的URL為:
https://bi-cn-hongkong.data.aliyun.com/token3rd/report/view.htm?id=<42****18ef6>&accessTicket=fd138bcb-****-4fde-b413-81bcee59bdb6&cmptId=XXX擷取Quick BI網域名稱。
例如,Quick BI 中國香港網站網域名稱為
bi-cn-hongkong.data.aliyun.com,以具體環境網域名稱為準。擷取預覽報表URL。
報表對應的預覽頁面URL如下,您可以根據需要選擇。
儀表板:
token3rd/dashboard/view/pc.htm試算表:
token3rd/report/view.htm資料大屏:
token3rd/screen/view/pc.htm自助取數:
token3rd/offline/view/pc.htm即席分析:
token3rd/analysis/view/pc.htm資料填報:
token3rd/dataform/view.htm
在報表編輯頁面,擷取報表ID。
儀表板ID,本例為
d01****c5f在儀表板編輯頁面,擷取地址欄中儀表板pageId的值。

試算表ID,本例為
d0****3ba88在試算表編輯頁面,擷取地址欄中試算表ID的值。

資料大屏ID,本例為
3c****26b在資料大屏編輯頁面,擷取地址欄中資料大屏pageId的值。

自助取數ID,本例為
b2****47在自助取數編輯頁面,擷取地址欄中自助取數pageId的值。

即席分析ID,本例為
7f****da在即席分析編輯頁面,擷取地址欄中即席分析pageId的值。

資料填報ID,本例為
29****53在資料填報編輯頁面,擷取地址欄中資料填報pageId的值。

將上述步驟擷取的Quick BI網域名稱、預覽報表URL、報表ID和步驟2 擷取AccessTicket參數拼接到如下請求地址中。
儀表板的拼接格式
https://<Quick BI網域名稱>/<預覽報表URL>?pageId=<報表ID>&accessTicket=<AccessTicket>試算表的拼接格式
https://<Quick BI網域名稱>/<預覽報表URL>?id=<報表ID>&accessTicket=<AccessTicket>資料大屏的拼接格式
https://<Quick BI網域名稱>/<預覽報表URL>?pageId=<報表ID>&accessTicket=<AccessTicket>自助取數的拼接格式
https://<Quick BI網域名稱>/<預覽報表URL>?pageId=<報表ID>&accessTicket=<AccessTicket>即席分析的拼接格式
https://<Quick BI網域名稱>/<預覽報表URL>?id=<報表ID>&accessTicket=<AccessTicket資料填報的拼接格式
https://<Quick BI網域名稱>/<預覽報表URL>?id=<報表ID>&accessTicket=<AccessTicket>
附1:配置資料行級許可權
若UserId和accountName不填時,嵌入報表的查看許可權預設跟隨報表Owner。您可以按照下圖指引,配置資料行級許可權,並設定UserId或AccountName參數,繫結目標使用者的許可權。
詳情操作請參見行列許可權。
附2:產生全域參數說明
在目標儀表板或試算表中設定對應的全域參數,全域參數用於綁定報表並產生AccessTicket。
全域參數的參數名為GlobalParam,全域參數的參數值是一個JSON 數組:
[
{
"paramKey": "price", // 全域參數 Key
"joinType": "and", // 串連方式,使用 and 即可
"conditionList": [
{
"operate": "=", // 操作符,參考以下說明
"value": "1" // 操作值,在多個值的情況下使用數組 ["1", "2"]
},
{
"operate": "=", // 操作符,參考以下說明
"value": "2" // 操作值,在多個值的情況下使用數組 ["1", "2"]
}
]
},
{
"paramKey": "area", // 全域參數 Key
"joinType": "and", // 串連方式,使用 and 即可
"conditionList": [
{
"operate": "in", // 操作符
"value": ["華北","華南"] // 操作值,在多個值的情況下使用數組
}
]
}
]全域參數operate欄位常用枚舉說明如下:
操作符(operate) | 說明 | 備忘 |
= | 等於 | - |
!= | 不等於 | - |
> | 大於 | - |
>= | 大於等於 | - |
< | 小於 | - |
<= | 小於等於 | - |
in | in | 參數值必須是數組 |
not-in | no in | 參數值必須是數組 |
like | like | 關鍵字模糊比對。 SQL會自動解析成 |
contain | 字串包含 | SQL會自動解析成 |
start-with | 字串以什麼起始 | SQL會自動解析成 |
end-with | 字串以什麼結尾 | SQL會自動解析成 |
如何快速擷取全域參數傳參範例
若您對全域參數的產生有疑問,可以參考在開放平台嵌入分析調試頁面產生全域參數的範例,擷取方式如下:
進入開放平台嵌入分析頁面,選擇配置了全域參數的儀表板,並點擊調試:

點擊快捷產生,在右側產生Ticket頁面選擇進行全域參數的配置:

以Google瀏覽器為例,按F12開啟檢查控制台查看網路:

點擊頁面上的產生Ticket,查看控制台中的介面請求:

此時,即可看到當前報表的全域參數用例。
附3:可嵌入報表數量說明
購買使用者數 | 嵌入第三方數量 |
50 | 100 |
100 | 200 |
200 | 500 |
300 | 1000 |
以上為專業版嵌入報表預設數。