metabase嵌入页面教程(java,html)

时间:2025-02-15 21:00:39
import org.springframework.security.jwt.Jwt; import org.springframework.security.jwt.JwtHelper; import org.springframework.security.jwt.crypto.sign.MacSigner; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @RestController @RequestMapping("/dashboard") public class MetabaseController2 { private final String METABASE_SITE_URL = "http://ip:3000"; //你的metabase所处ip地址,metabase默认端口号3000 private final String METABASE_SECRET_KEY = ""; //秘匙 @GetMapping("/dashurl") public DashboardParams dashAction() { int round = Math.round(System.currentTimeMillis() / 1000)+10*60; // 10 minute expiration String pyload = "{\n" + " \"resource\": {\"dashboard\": 1},\n" + //这个地方要写自己分享的编号 " \"params\": {\n" + " \n" + " },\n" + " \"exp\":"+ round + "\n" + //如果不需要过期时间,这一行可以注释掉 "}"; Jwt token = JwtHelper.encode(pyload, new MacSigner(METABASE_SECRET_KEY)); //注意下边地址中分享仪表盘和question的区别 String url = METABASE_SITE_URL + "/embed/dashboard/" + token.getEncoded() + "#bordered=true&titled=true"; return new DashboardParams(url); } @GetMapping("/questionurl") public DashboardParams questionAction() { //因为分享的是问题,所以下边resource中的是question,而不是dashboard,同时注意编号的改变 Jwt token = JwtHelper.encode("{\"resource\": {\"question\": 65}, \"params\": {}}", new MacSigner(METABASE_SECRET_KEY)); String url = METABASE_SITE_URL + "/embed/question/" + token.getEncoded() + "#bordered=true&titled=true"; return new DashboardParams(url); } class DashboardParams { private String url; public DashboardParams(String url) { this.url = url; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } } }