You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Superset:能否通过Guest Token API与SDK直接嵌入图表?

问题

我已经通过Apache Superset的guest_token API成功获取了仪表盘的嵌入令牌,使用的请求负载如下:

body = {
    "resources": [
        {
            "id": "1",
            "type": "dashboard"
        }
    ],
    "rls": [
    ],
    "user": {
        "first_name": "John",
        "last_name": "Doe",
        "username": "johnd"
    }
}

但官方Swagger文档只提到了dashboard类型的资源,未说明其他可用类型。我想直接嵌入单个图表,尝试用chart类型但不知道怎么获取图表的嵌入ID,也没有类似仪表盘嵌入ID的相关文档说明。想请教:能不能通过这个API和嵌入SDK像嵌入仪表盘一样直接嵌入图表?

回答

完全可以通过guest_token API和嵌入SDK直接嵌入单个图表,具体操作如下:

  • 资源类型与ID获取

    • 资源类型确实支持chart,和dashboard的用法一致
    • 图表的ID就是其在Superset后台的数字ID:
      • 打开目标图表,浏览器地址栏里的/superset/chart/{CHART_ID}/路径中,{CHART_ID}就是所需的ID
      • 也可以通过Superset的API(比如GET /api/v1/chart/)批量获取图表列表及对应ID
  • 生成guest_token的请求负载示例
    将资源类型改为chart并填入对应ID即可:

    body = {
        "resources": [
            {
                "id": "123",  # 替换为你的图表数字ID
                "type": "chart"
            }
        ],
        "rls": [],
        "user": {
            "first_name": "John",
            "last_name": "Doe",
            "username": "johnd"
        }
    }
    
  • 嵌入SDK的使用
    获取到令牌后,使用嵌入SDK时,把原本指向仪表盘的配置改为指向图表即可,示例代码大致如下:

    supersetEmbedSdk.embed({
        id: '123',  // 图表ID
        type: 'chart',
        token: 'YOUR_GUEST_TOKEN',
        container: document.getElementById('chart-container'),
        // 其他可选配置
    });
    
  • 注意事项

    • 确保你的Superset版本支持图表嵌入(v1.4及以上版本已稳定支持)
    • 嵌入的图表权限需要和guest_token关联的用户权限匹配,RLS规则同样对单图表嵌入生效

内容的提问来源于stack exchange,提问作者Seeker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 15:24:25