静态嵌入参数

也称为:签名嵌入参数或独立嵌入参数。

参数是Metabase与您的网站通过嵌入URL传递的信息片段。您可以使用参数来指定Metabase项目在您的网站iframe中的外观和行为。

参数类型

参数可以是已签名或未签名的。

签名参数

签名参数,如筛选器名称和值,必须添加到您的服务器代码中。

未签名参数

未签名参数,如外观设置,应直接添加到iframe的src属性中。

将筛选器小部件添加到静态嵌入中

您可以使用可编辑参数筛选器小部件添加到嵌入的仪表板或SQL问题。

  1. 转到您的仪表板或SQL问题。确保您已设置仪表板筛选器SQL变量
  2. 点击共享图标 > 将此项目嵌入应用程序中
  3. 参数下,您将找到仪表板筛选器或SQL变量的名称。
  4. 对于要在嵌入中添加筛选器小部件的每个参数,选择可编辑
  5. 点击发布以保存您的更改。
  6. 在您的服务器上添加或更新代码,以匹配Metabase生成的代码

可编辑参数负责将嵌入筛选器小部件(在iframe中显示)的筛选器值传递到您的原始仪表板或SQL问题(在Metabase中)的筛选器。

如果原始问题或仪表板需要值,则无法禁用参数

如果仪表板或问题的筛选器设置为始终需要值,则在嵌入时无法禁用参数。

为嵌入筛选器小部件设置默认值

如果您想为您的可编辑筛选器小部件设置默认值,可以将该默认值传递到iframe的src属性中对应的参数名称。

your_embedding_url?parameter_name=value

假设您的嵌入仪表板有一个连接到名为“早餐”的可编辑参数的筛选器。如果您想将“早餐”筛选器的默认值设置为“炒蛋”

your_embedding_url?breakfast=Scrambled_eggs

要为多个筛选器指定默认值,请使用与符号(&)分隔筛选器

your_embedding_url?breakfast=Scrambled_eggs&lunch=Grilled_cheese

您可以通过使用与符号(&)分隔key=value对来为筛选器设置多个默认值

your_embedding_url?breakfast=Scrambled_eggs&breakfast=Bacon

从静态嵌入中隐藏筛选器小部件

如果您有很多可编辑参数(导致很多筛选器小部件),您可以通过在iframe的src属性中的URL末尾添加#hide_parameters来隐藏它们。

your_embedding_url#hide_parameters=parameter_name

例如,如果您想从嵌入仪表板中隐藏名为“早餐”的筛选器

your_embedding_url#hide_parameters=breakfast

您可以通过使用逗号分隔参数名称来隐藏多个筛选器小部件

your_embedding_url#hide_parameters=breakfast,lunch

您还可以同时为参数分配默认值并隐藏其筛选器小部件

your_embedding_url?breakfast=Scrambled_eggs#hide_parameters=breakfast

未签名参数语法

每次您在iframe的src属性中添加参数时,请注意

  • 参数名称是小写。
  • 参数值区分大小写(值必须与您的数据匹配)。
  • 空格应替换为下划线。

使用锁定参数限制静态嵌入中的数据

如果您想限制在嵌入式仪表板或SQL问题中显示的数据,您可以设置一个锁定参数。锁定参数在将结果显示给静态嵌入中的人之前,会过滤仪表板或SQL问题中的数据。

  1. 转到您的仪表板或SQL问题。确保您已设置仪表板筛选器SQL变量
  2. 点击共享图标 > 将此项目嵌入应用程序中
  3. 参数下,您将找到仪表板筛选器或SQL变量的名称。
  4. 为要限制数据使用的每个参数选择锁定
  5. 可选:在预览锁定参数下选择一个值,以查看受限数据的外观。
  6. 点击发布以保存您的更改。
  7. 在您的服务器上添加或更新代码,以匹配Metabase生成的代码

您可以使用锁定参数根据您的Web服务器捕获的属性(如用户名或租户ID)显示基于过滤的数据。有关更多示例,请参阅参考应用程序仓库

锁定参数将应用所选的筛选值到您的原始仪表板或SQL问题,但它们不会作为筛选小部件显示在您的嵌入中。锁定参数还可能限制您在可编辑筛选小部件中显示的值。

如果您只想为参数指定一个值,可以将筛选器设置为可编辑,并配置底层问题或仪表板以始终要求指定值

更新锁定参数

如果您需要更改锁定参数,请注意以下几点。

在您的服务器代码中包含所有锁定参数

一旦您发布了包含锁定参数的图表或仪表板,您必须确保在您的服务器代码中包含锁定参数的名称。如果您省略了参数名称,日志会温柔地提醒您:您必须在JWT中指定:parameter的值

要关闭锁定参数,请在JWT中将其值传递为一个空数组

如果您不想应用锁定筛选器,可以将一个空数组,[],作为JWT中参数的值传递。

确保筛选器名称与锁定参数名称匹配

如果您更改了用作锁定参数的查询构建器筛选器的名称,请确保同时更新服务器代码中的参数名称和值。如果您锁定参数连接到一个SQL变量,则不需要更改参数的名称和值。

多个锁定参数或多个值

在您的服务器代码中,锁定参数的值应与您的筛选器的值完全匹配。设置多个锁定参数或向锁定参数传递多个值的最有效方法是选择预览锁定参数下的筛选器值,并预览Metabase生成的服务器代码

使用多个锁定参数将使用AND进行筛选,而不是OR。如果您只想应用锁定参数的子集,必须告诉Metabase忽略其他锁定参数

锁定参数限制其他可编辑参数的可用值

因为锁定参数在显示嵌入中的结果之前会过滤数据,所以锁定参数限制了其他可编辑筛选小部件的可用值。

例如,假设您正在嵌入一个包含两个筛选器(州和城市)的仪表板。如果您将“州”参数锁定为“佛蒙特州”,Metabase将只显示仪表板上的“城市”筛选器小部件,并且该城市筛选器小部件的下拉菜单将仅限于佛蒙特州的城市。虽然您没有明确链接这两个筛选器,但这两个筛选器在行为上隐式地像链接的筛选器一样。

带有SQL问题的仪表板上的锁定参数

如果您的锁定参数与仪表板上的筛选器链接,该筛选器又链接到一个SQL问题,您将只能为您的锁定参数选择一个单个值。

例如,假设您有一个名为“早餐”的仪表板筛选器,其值为“薯条”,“松饼”和“华夫饼”。如果“早餐”筛选器链接到仪表板上的任何SQL问题,您将只能为与“早餐”筛选器链接的锁定参数选择一个选项。

使用锁定参数为您的应用中的自定义小部件供电

由于Metabase不会将锁定参数显示为筛选器小部件,因此您可以使用锁定参数来为您的应用中构建的自定义筛选器小部件供电。您可能想要构建自己的筛选器小部件来

  • 使小部件与您应用程序的外观和感觉更一致。
  • 包含自定义逻辑。例如,让筛选器小部件记住最近值。
  • 在您的应用的不同部分以不同的方式重复使用一个仪表板。例如,您可能有一个包含多个锁定参数的仪表板,您可能在一个情况下使用一个参数,在另一个情况下使用另一个参数。例如,一个销售仪表板在应用的一个部分被“地区”锁定,在另一个部分被“团队”锁定。

自定义静态嵌入的外观

Look and feel: appearance settings on static embed

您可以通过向iframe的src属性中的URL末尾添加哈希参数来更改嵌入项的外观。

例如,以下嵌入URL将以暗黑模式显示嵌入式项,没有边框,并保留其原始标题

your_embedding_url#theme=night&bordered=false&titled=true

您可以从问题或仪表板的嵌入式外观设置中预览外观设置。

参数名称 可能的值
bordered true, false
titled true, false
theme null (默认), night
refresh(仅仪表板) 整数(秒,例如refresh=60
font* 字体名称
downloads** true, false

仅在Pro企业计划中可用

**在Pro企业计划中可以禁用下载。

有关全局外观设置,例如在整个Metabase实例中使用的颜色和字体,请参阅自定义Metabase的外观

禁用嵌入式问题或仪表板的下载

禁用下载仅适用于Pro企业计划(包括自托管和Metabase Cloud)。

默认情况下,Metabase将在嵌入的问题上包含一个下载按钮,在嵌入的仪表板上包含一个导出为PDF选项。您可以通过在iframe的src属性中的嵌入URL中设置downloads=false来删除下载结果的选项,请参阅自定义静态嵌入的外观

如果下载选项缺失,而你预计它应该可用,请检查您的iframe的src属性中是否包含参数downloads=true

最大请求大小

静态嵌入URL的最大长度(包括所有参数)是您的MB_JETTY_REQUEST_HEADER_SIZE环境变量的值。默认为8192字节。

如果您的静态嵌入URL超过最大头部大小,您将看到类似于URI too long的日志消息。您可以更新环境变量以接受更大的头部。如果您正在使用代理服务器,您可能还需要在服务器上设置相应的属性。

进一步阅读

阅读关于其他Metabase版本的文档。

想要改进这些文档? 提出更改。