靜態嵌入

亦稱為:獨立嵌入或簽名嵌入。

一般來說,嵌入是透過在您網站的 iframe 中顯示 Metabase URL 來運作。靜態嵌入(或簽名嵌入)是 iframe,它載入以簽名 JSON Web Token (JWT) 保護的 Metabase URL。只有在請求提供以您的應用程式和 Metabase 之間共享的密碼簽名的 JWT 時,Metabase 才會載入 URL。JWT 也包含要載入的資源的參考,例如儀表板 ID,以及任何鎖定參數的值。

您無法將靜態嵌入與資料沙箱鑽取搭配使用,且使用者特定資料不會在使用量分析中擷取,因為簽名的 JWT 不會建立使用者工作階段(伺服器端工作階段)。如需這些功能,請查看互動式嵌入

不過,您可以透過鎖定參數來限制靜態嵌入中特定人員或群組的資料。

靜態嵌入的運作方式

如果您想在 iframe 中設定互動式 Metabase 篩選條件,您的網頁伺服器將需要在網站訪客更新篩選條件小工具時,向 Metabase 發出更新資料的要求。

若要要求 Metabase 提供更新的資料,您的網頁伺服器將產生新的 Metabase 嵌入 URL。例如,如果網站訪客在嵌入式篩選條件小工具中輸入值「true」,您的網頁伺服器將產生一個新的嵌入 URL,其中包含額外的參數

your_metabase_embedding_url?filter=true

為了防止人員編輯嵌入 URL 以取得您 Metabase 的其他部分的存取權(例如,透過將參數變更為 filter=company_secrets),您的網頁伺服器將會將簽名的 JWT 新增至新的嵌入 URL

your_metabase_embedding_url/your_signed_jwt?filter=true

簽名的 JWT 是使用您的 Metabase 密碼金鑰產生。密碼金鑰會告知 Metabase,對篩選資料的要求是可信任的,因此可以安全地在新嵌入 URL 上顯示結果。請注意,此密碼金鑰是所有靜態嵌入共用的,因此無論誰有權存取該金鑰,都將有權存取所有嵌入的成品。

如果您想要嵌入具有其他互動式功能的圖表,例如向下鑽研自助式查詢,請參閱互動式嵌入

在 Metabase 中開啟嵌入功能

  1. 前往設定 > 管理設定 > 嵌入
  2. 切換啟用嵌入

讓問題或儀表板可嵌入

Sharing button to embed dashboard

若要建立靜態嵌入

  1. 前往您想要嵌入到您網站中的問題或儀表板。
  2. 按一下共用圖示
  3. 選取嵌入
  4. 選取靜態嵌入
  5. 選用:自訂嵌入的外觀
  6. 選用:將參數新增至嵌入
  7. 按一下發佈

Preview

將嵌入 URL 新增至您的網站

問題或儀表板的嵌入 URL 是將顯示在您網站的 iframe 中的 Metabase URL。它是由您的網頁伺服器使用您的 Metabase 網站 URL簽名的 JWT參數產生

metabase_site_url/embed/question/your_jwt_token?parameter_name=value

一旦您讓問題或儀表板可嵌入,您就需要將該問題或儀表板的嵌入 URL 放在您的網站上

  1. 前往問題或儀表板 > 共用圖示 > 嵌入
  2. 進行任何變更並複製程式碼。
  3. 預覽程式碼
  4. 將程式碼新增至建置您網站的伺服器程式碼。
  5. 將前端程式碼新增至產生您要嵌入項目顯示頁面的程式碼。

如需更多範例,請參閱我們的參考應用程式儲存庫

預覽嵌入的程式碼

  1. 前往問題或儀表板 > 共用圖示 > 將此項目嵌入到應用程式中
  2. 按一下程式碼
  3. 在頂端程式碼區塊中,您會找到網頁伺服器的範例程式碼。您也會找到要插入 HTML 範本或單頁應用程式的 iframe 片段。

當您變更外觀和風格或參數預覽設定時,Metabase 會更新程式碼並醒目提示變更。請務必將這些變更複製到您的實際伺服器程式碼。

Code samples for embedding

Metabase 為下列項目產生伺服器程式碼

  • Clojure
  • Node.js
  • Python
  • Ruby

適用於 iframe 片段

  • ERB
  • JSX
  • Mustache
  • Pug/Jade

編輯嵌入的問題或儀表板

如果您變更嵌入項目的參數

  1. 在進行變更後,複製 Metabase 產生的程式碼。
  2. 再次按一下發佈
  3. 更新伺服器上的程式碼,使其與 Metabase 產生的程式碼相符。

停用問題或儀表板的嵌入

您可以從管理設定 > 嵌入 > 靜態嵌入 > 管理中找到問題和儀表板的所有靜態嵌入清單。

  1. 造訪可嵌入的問題或儀表板。
  2. 按一下共用圖示(指向右上角的箭頭方塊)。
  3. 選取嵌入
  4. 選取靜態嵌入
  5. 按一下取消發佈

自訂靜態嵌入的外觀

請參閱自訂靜態嵌入的外觀

自動重新整理嵌入式儀表板的結果

自動重新整理僅適用於儀表板,不適用於問題。

若要依特定頻率重新整理儀表板的結果,您可以使用 refresh 將嵌入 URL 參數化。例如,若要將嵌入式儀表板設定為每 60 秒重新整理一次,您會在 URL 後面附加 refresh=60

例如,以下用於產生儀表板 iframe URL 的程式碼會顯示儀表板的標題,並每 60 秒重新整理其結果。

var iframeUrl =
  METABASE_SITE_URL + "/embed/dashboard/" + token + "#titled=true&refresh=60";

如需您可以參數化的完整選項清單,請參閱自訂靜態嵌入的外觀

移除「Powered by Metabase」橫幅

Powered by Metabase

橫幅會顯示在使用 Metabase 開放原始碼版本建立的靜態嵌入上。若要移除橫幅,您需要升級至 ProEnterprise 方案。

重新產生靜態嵌入密碼金鑰

您的嵌入密碼金鑰用於為您的所有嵌入 URL簽署 JWT。

  1. 前往設定 > 管理設定 > 嵌入
  2. 靜態嵌入卡片上,按一下管理
  3. 重新產生密碼金鑰下方,按一下重新產生金鑰

此金鑰在所有靜態嵌入之間共用。任何有權存取此金鑰的人員都可能取得所有嵌入成品的存取權,因此請確保此金鑰的安全。如果您重新產生此金鑰,您需要使用新的金鑰更新您的伺服器程式碼。

調整儀表板大小以符合其內容

儀表板是固定的長寬比,因此如果您想要確保它們在垂直方向上自動調整大小以符合其內容,您可以使用 iFrame Resizer 指令碼。Metabase 提供副本以方便使用

<script src="http://metabase.example.com/app/iframeResizer.js"></script>
<iframe
  src="http://metabase.example.com/embed/dashboard/TOKEN"
  onload="iFrameResize({}, this)"
></iframe>

由於 iframe-resizer 的授權變更,我們建議您使用 iframe-resizer 4.3.2 或更低版本。

靜態嵌入中儀表板上的自訂目的地

在具有靜態嵌入的儀表板上,您只能將 URL 選項用於自訂目的地。外部 URL 將在新索引標籤或視窗中開啟。

您可以將篩選條件值傳播到外部 URL 中,除非篩選條件已鎖定。

延伸閱讀

閱讀其他Metabase 版本的文件