系统集成技术接入指引

百度数据可视化 SUGAR

  • 数据库新增授权IP的说明
  • 更新日志
  • 联系我们
  • 常见问题
  • 私有部署
    • 私有部署的安装
    • 私有部署的升级
    • 私有部署的费用
    • 私有部署安装常见问题
    • 开启智能问数
    • 开启跨源查询功能
    • 开启自助取数功能
    • 私有部署的试用与购买
    • 自定义访问路径前缀
    • ARM架构镜像
    • License升级
    • 什么是私有部署
    • 开启自定义消息通知
    • 外观主题设置
    • 开启智能预测功能
    • openAPI
      • 概述
      • V2
        • 图表API服务
        • 权限审计
        • 数据模型服务
        • 角色管理
        • 智能问数
        • 可视化页面
          • 大屏
          • 报表
        • 访问统计
          • 组织访问统计
          • 空间访问统计
      • V1
        • 空间用户和权限设置
          • 用户管理
          • 角色管理
        • 组织管理
          • 用户管理
          • 空间管理
        • 可视化页面
          • 过滤组件配置
          • 数据源
          • 数据模型
          • 定时推送
          • 数据筛选
          • 报表
          • 图表配置
    • 数据服务
      • 图表API服务
      • 数据模型服务
  • 产品介绍
    • 概念介绍
    • 产品简介
  • 快速入门
    • 开通服务
    • 制作报表
      • 连接数据源
      • 制作报表
      • 创建数据模型
      • 预览和分享
      • 概述
    • 制作数据填报
      • 制作数据填报
      • 查看数据和数据分析
      • 预览和发布
      • 概述
    • 制作可视化大屏
      • 制作大屏
      • 连接数据源
      • 创建数据模型
      • 预览和分享
      • 概述
    • 制作三维场景
      • 基础操作
      • 嵌入到大屏中
      • 概述
  • 典型实践
    • 问卷数据收集、分析与展现
    • 业务自助BI分析
    • 数据监控与预警
    • 实时滚动地图大屏
    • 固定报表
    • 工业零部件3D大屏
    • 高阶应用
      • 图表联动时地图范围动态变化
      • 下钻中地图范围动态变化
      • 大屏的各种轮播效果汇总
      • 轮播同步图表联动
      • 按数据条件设置颜色
      • 全国和各省份的销售下钻分析
  • 操作指南
    • 历史版本
    • 群机器人
    • 数据门户
    • 数据预警
    • 回收站
    • 宏定义变量
    • 数据血缘
    • 制作可视化页面
      • 组件模板
      • 报表编辑界面
      • 大屏编辑界面
      • 自定义图表主题
      • 图表组件操作
      • 智能图表
      • 页面模板
      • 高级图表
        • 气泡图
        • 矩形树图
        • 河流图
        • 3D饼图
        • 坐标热力图
        • 甘特图
        • 日历热力图
        • 旭日图
        • 自定义组件
        • 3D散点图
        • 桑基图
        • k线图
        • 瀑布图
        • 新拓扑图
        • 3D柱图
        • 拓扑图
      • 地图
        • 地图区域的动态变化
        • 平面地图(色彩、气泡、热力)
        • 自定义GeoJSON
        • 百度地图(散点、热力)
        • 多层地图
        • 平面地图飞线图
        • 3D飞线地图
        • 3D柱状地图
        • 3D区域色彩地图
        • 百度地图路径
      • 交互组件
        • 标签页组件
        • Tab控件
        • 全屏按钮
        • 语音交互组件
        • AI问答组件
      • 媒体
        • 里程碑
        • 图片
        • 视频、直播
        • 音频
        • 文本、跑马灯
        • 字符云
        • 评论
        • 3D词云
        • 富文本
        • 实时时间
        • 图片轮播
        • iframe
        • 天气
      • 基础图表
        • 表格
        • 饼图、环形饼图、轮播饼图
        • 交叉透视表
        • 倒计时
        • 数字翻牌器、百分比指标
        • 山峰柱图
        • 仪表盘
        • 柱状图、横向柱图
        • 指标看板、指标卡片
        • 树形表格
        • 象形柱图
        • 留存报表
        • 直方图
        • 指标拆解树
        • 属性表格
        • 排行榜
        • 水球图
        • 轮播表格
        • 漏斗图
        • 散点图
        • 嵌套饼图
        • 折线图、线柱混搭
        • 核心指标
        • 进度条、环形进度条
        • 雷达图
        • 圆形柱状图
      • 素材
        • 边框
        • 形状
        • 小图标
    • 移动端适配
      • 移动端配置
      • 移动端过滤条件组配置
    • 其它方式绑定数据
      • 静态JSON
      • SQL建模
        • 数据自动补全
        • SQL中嵌入日期宏定义
        • OpenTSDB数据源
        • 数据值映射
        • Mongo数据源
        • ElasticSearch数据源
        • SQL字段展示名称的动态化
        • SQL中关联过滤条件
        • 大屏制作入门
        • 报表制作入门
        • 过滤组件的级联
        • SQL关联联动参数
        • Redis数据源
        • SQL中嵌入用户邮箱
        • InfluxDB数据源
        • 概述和创建数据源
        • SQL模型
        • SQL中行转列
        • SQL中关联下钻参数
        • Graphite数据源
        • SQL中嵌入URL参数
        • 数据缓存
        • Prometheus数据源
        • SQL方式绑定图表数据
          • 气泡图
          • 里程碑
          • 表格
          • 饼图、环形饼图、轮播饼图
          • 数字翻牌器、百分比指标
          • 仪表盘
          • 矩形树图
          • 柱状图、横向柱图
          • 指标看板、指标卡片
          • 字符云
          • 树形表格
          • 河流图
          • 富文本
          • 3D饼图
          • 坐标热力图
          • 平面地图(色彩、气泡、热力)
          • 甘特图
          • 属性表格
          • 排行榜
          • 日历热力图
          • 旭日图
          • 漏斗图
          • 散点图
          • 多层地图
          • 图片轮播
          • 3D散点图
          • 桑基图
          • K线图
          • 平面地图飞线图
          • 瀑布图
          • 3D飞线地图
          • 3D柱状地图
          • 折线图、线柱混搭
          • 核心指标
          • 百度地图(散点、热力)
          • 3D柱图
          • 拓扑图
          • 雷达图
          • 3D区域色彩地图
          • 百度地图路径
          • 圆形柱状图
      • API
        • API认证
        • API后端获取过滤条件参数
        • API的安全机制
        • 各种过滤组件的API格式要求
        • API后端获取当前登录用户
        • API后端获取联动参数
        • API高级配置
        • 各种图表的API格式要求
        • API后端获取下钻参数
        • API后端获取URL额外参数
        • 概述
    • 数据填报
      • 数字类型表单
      • 选择类型表单
      • 日期类型表单
      • 数据填报管理
      • 文本类型表单
      • 数据填报编辑
    • 平台管理
      • 报表和大屏的导入导出
      • 访问统计
      • 智能报表
      • 智能大屏
      • 操作审计
      • 数据探索
      • 空间管理
        • 什么是空间
        • 创建空间
        • 更改空间信息
        • 空间中的用户和管理员
        • 删除空间
        • 空间就是数据门户
      • 组织管理
        • 管理组织中的用户
        • 什么是组织
        • 访问统计
        • 组织的创建和切换
        • 组织的VIP用户
        • 更改组织信息和管理员
        • 操作审计
      • 权限管理
        • 行级别权限管理
        • 用户管理
        • 权限审计
        • 细粒度权限
        • 角色管理
        • 概述
      • 个人中心
        • 个人信息更改
        • 收藏报表和大屏
        • 个人中心是什么
    • 三维场景
      • 场景交互
      • 场景调色
      • 自定义脚本
    • 智能问数
      • 创建及使用智能问数
      • 前期数据准备
      • 智能问数问答模板管理
      • 报表和大屏页面使用智能问数
      • 问数模型配置
      • 智能问数最佳实践
      • 问数权限管理
      • 系统集成
      • 系统集成技术接入指引
      • 使用智能问数
      • 如何优化我的问答效果
      • 概述
    • 智能问数--旧版待下线
      • 创建及使用智能问数
      • 前期数据准备
      • 报表和大屏页面使用智能问数
      • 智能问数最佳实践
      • 概述
    • 智能分析
      • 自动分析
      • 异常分析
      • 波动分析
    • 连接数据源
      • Kerberos 认证
      • API
      • 上传Excel文件
      • 云上VPC内数据源
      • 数据库
      • 内网隧道
      • 静态JSON
      • 云上RDS数据源
      • 概述
    • 分享和订阅
      • 分享页Token参数签名校验
      • 分享页强制用户登录
      • 公开和加密分享
      • 分享页通过URL参数标识用户
      • 多页面轮播
      • 桌面全屏客户端
      • 移动端全屏
      • 空间内多人浏览
      • 定时推送
    • 可视化分析
      • 数据自动补全
      • 图表联动
      • 单个图表的过滤条件
      • 动态的维度和度量分析
      • 数据筛选
      • 数据排序
      • 数据对比
      • 条件格式
      • 关联URL参数
      • 日期时间数据聚合
      • 图表评论
      • 数据缓存
      • 图表下钻
      • 图表标注
      • 过滤组件
        • 时间轴组件
        • 多选组件
        • 时间范围组件
        • 过滤条件宽度占比
        • 时间组件
        • 查询Key值
        • 多重逻辑组件
        • 日期范围组件
        • 输入框组件
        • 时间粒度组件
        • 日期组件
        • 大屏中过滤条件展示为图标
        • 树形选择组件
        • 过滤条件组
        • 过滤组件关联图表
        • 过滤组件的级联、依赖
        • 单选组件
      • 计算字段
        • 数据桶
        • SQL表达式
        • 分组
        • 记录数
        • 表计算
        • 概述
    • 自助取数
      • 创建自助取数
      • 管理自助取数
      • 概述
    • 创建数据模型
      • 数据脱敏
      • 数据格式化和单位
      • 数据值映射
      • 数据类型转换
      • 自定义SQL视图
      • 字段展示名称的动态化
      • 数据模型
      • 跨源交叉分析
    • 智能预测
      • 离线预测
      • 时序预测
      • 模型训练
      • 预测服务
    • 自助探索与AI问答
      • AI问答
      • 自助探索
    • 报表AI能力
      • 报表AI助手
      • 报表AI功能的数据准备
      • 报表AI助手权限管理
      • 报表AI洞察与AI预测
      • 如何优化我的问答效果
      • 概述
    • 微信与钉钉集成
      • 私有部署版
        • 钉钉集成
        • 企业微信集成
        • 飞书集成
        • 如流集成
      • 云上SaaS在线版
        • 企业微信集成
        • 微信集成
  • 视频专区
    • 产品介绍
    • 平台功能
      • 自助取数操作指导
      • 数据预警配置操作指导
      • 数据填报操作指导
      • 数据血缘操作指导
      • 系统管理操作指导
    • 基础功能
      • 图表标注操作指导
      • 连接数据源操作指导
      • 表格组件操作指导
      • 创建数据模型操作指导
      • 三维场景操作指导
      • 报表制作操作指导
      • 数据值映射操作指导
      • 可视化大屏制作操作指导
    • 智能分析
      • 智能图表操作指导
      • 异常分析操作指导
      • 自动分析操作指导
      • AI问答和探索操作指导
      • 波动分析操作指导
    • 操作指南
      • 数据填报
      • AI问答与探索
      • 分享和订阅
      • 连接数据源
      • 智能分析
      • 数据门户
      • 可视化分析
      • 三维场景
      • 制作可视化页面
      • 创建数据模型
      • 平台管理
      • 自助取数
      • 数据预警
      • 数据血缘
    • 交互功能
      • 大屏Tab控件操作指导
      • 报表和图表过滤操作指导
      • 多页面轮播操作指导
      • 数据门户操作指导
      • 标签页组件操作指导
      • 图表下钻操作指导
      • 图表联动操作指导
    • 产品说明
      • 文档使用建议
      • 产品介绍
  • 产品定价
    • 私有部署版定价
    • SaaS在线版定价
    • 免费试用说明
所有文档
menu
没有找到结果,请重新输入

百度数据可视化 SUGAR

  • 数据库新增授权IP的说明
  • 更新日志
  • 联系我们
  • 常见问题
  • 私有部署
    • 私有部署的安装
    • 私有部署的升级
    • 私有部署的费用
    • 私有部署安装常见问题
    • 开启智能问数
    • 开启跨源查询功能
    • 开启自助取数功能
    • 私有部署的试用与购买
    • 自定义访问路径前缀
    • ARM架构镜像
    • License升级
    • 什么是私有部署
    • 开启自定义消息通知
    • 外观主题设置
    • 开启智能预测功能
    • openAPI
      • 概述
      • V2
        • 图表API服务
        • 权限审计
        • 数据模型服务
        • 角色管理
        • 智能问数
        • 可视化页面
          • 大屏
          • 报表
        • 访问统计
          • 组织访问统计
          • 空间访问统计
      • V1
        • 空间用户和权限设置
          • 用户管理
          • 角色管理
        • 组织管理
          • 用户管理
          • 空间管理
        • 可视化页面
          • 过滤组件配置
          • 数据源
          • 数据模型
          • 定时推送
          • 数据筛选
          • 报表
          • 图表配置
    • 数据服务
      • 图表API服务
      • 数据模型服务
  • 产品介绍
    • 概念介绍
    • 产品简介
  • 快速入门
    • 开通服务
    • 制作报表
      • 连接数据源
      • 制作报表
      • 创建数据模型
      • 预览和分享
      • 概述
    • 制作数据填报
      • 制作数据填报
      • 查看数据和数据分析
      • 预览和发布
      • 概述
    • 制作可视化大屏
      • 制作大屏
      • 连接数据源
      • 创建数据模型
      • 预览和分享
      • 概述
    • 制作三维场景
      • 基础操作
      • 嵌入到大屏中
      • 概述
  • 典型实践
    • 问卷数据收集、分析与展现
    • 业务自助BI分析
    • 数据监控与预警
    • 实时滚动地图大屏
    • 固定报表
    • 工业零部件3D大屏
    • 高阶应用
      • 图表联动时地图范围动态变化
      • 下钻中地图范围动态变化
      • 大屏的各种轮播效果汇总
      • 轮播同步图表联动
      • 按数据条件设置颜色
      • 全国和各省份的销售下钻分析
  • 操作指南
    • 历史版本
    • 群机器人
    • 数据门户
    • 数据预警
    • 回收站
    • 宏定义变量
    • 数据血缘
    • 制作可视化页面
      • 组件模板
      • 报表编辑界面
      • 大屏编辑界面
      • 自定义图表主题
      • 图表组件操作
      • 智能图表
      • 页面模板
      • 高级图表
        • 气泡图
        • 矩形树图
        • 河流图
        • 3D饼图
        • 坐标热力图
        • 甘特图
        • 日历热力图
        • 旭日图
        • 自定义组件
        • 3D散点图
        • 桑基图
        • k线图
        • 瀑布图
        • 新拓扑图
        • 3D柱图
        • 拓扑图
      • 地图
        • 地图区域的动态变化
        • 平面地图(色彩、气泡、热力)
        • 自定义GeoJSON
        • 百度地图(散点、热力)
        • 多层地图
        • 平面地图飞线图
        • 3D飞线地图
        • 3D柱状地图
        • 3D区域色彩地图
        • 百度地图路径
      • 交互组件
        • 标签页组件
        • Tab控件
        • 全屏按钮
        • 语音交互组件
        • AI问答组件
      • 媒体
        • 里程碑
        • 图片
        • 视频、直播
        • 音频
        • 文本、跑马灯
        • 字符云
        • 评论
        • 3D词云
        • 富文本
        • 实时时间
        • 图片轮播
        • iframe
        • 天气
      • 基础图表
        • 表格
        • 饼图、环形饼图、轮播饼图
        • 交叉透视表
        • 倒计时
        • 数字翻牌器、百分比指标
        • 山峰柱图
        • 仪表盘
        • 柱状图、横向柱图
        • 指标看板、指标卡片
        • 树形表格
        • 象形柱图
        • 留存报表
        • 直方图
        • 指标拆解树
        • 属性表格
        • 排行榜
        • 水球图
        • 轮播表格
        • 漏斗图
        • 散点图
        • 嵌套饼图
        • 折线图、线柱混搭
        • 核心指标
        • 进度条、环形进度条
        • 雷达图
        • 圆形柱状图
      • 素材
        • 边框
        • 形状
        • 小图标
    • 移动端适配
      • 移动端配置
      • 移动端过滤条件组配置
    • 其它方式绑定数据
      • 静态JSON
      • SQL建模
        • 数据自动补全
        • SQL中嵌入日期宏定义
        • OpenTSDB数据源
        • 数据值映射
        • Mongo数据源
        • ElasticSearch数据源
        • SQL字段展示名称的动态化
        • SQL中关联过滤条件
        • 大屏制作入门
        • 报表制作入门
        • 过滤组件的级联
        • SQL关联联动参数
        • Redis数据源
        • SQL中嵌入用户邮箱
        • InfluxDB数据源
        • 概述和创建数据源
        • SQL模型
        • SQL中行转列
        • SQL中关联下钻参数
        • Graphite数据源
        • SQL中嵌入URL参数
        • 数据缓存
        • Prometheus数据源
        • SQL方式绑定图表数据
          • 气泡图
          • 里程碑
          • 表格
          • 饼图、环形饼图、轮播饼图
          • 数字翻牌器、百分比指标
          • 仪表盘
          • 矩形树图
          • 柱状图、横向柱图
          • 指标看板、指标卡片
          • 字符云
          • 树形表格
          • 河流图
          • 富文本
          • 3D饼图
          • 坐标热力图
          • 平面地图(色彩、气泡、热力)
          • 甘特图
          • 属性表格
          • 排行榜
          • 日历热力图
          • 旭日图
          • 漏斗图
          • 散点图
          • 多层地图
          • 图片轮播
          • 3D散点图
          • 桑基图
          • K线图
          • 平面地图飞线图
          • 瀑布图
          • 3D飞线地图
          • 3D柱状地图
          • 折线图、线柱混搭
          • 核心指标
          • 百度地图(散点、热力)
          • 3D柱图
          • 拓扑图
          • 雷达图
          • 3D区域色彩地图
          • 百度地图路径
          • 圆形柱状图
      • API
        • API认证
        • API后端获取过滤条件参数
        • API的安全机制
        • 各种过滤组件的API格式要求
        • API后端获取当前登录用户
        • API后端获取联动参数
        • API高级配置
        • 各种图表的API格式要求
        • API后端获取下钻参数
        • API后端获取URL额外参数
        • 概述
    • 数据填报
      • 数字类型表单
      • 选择类型表单
      • 日期类型表单
      • 数据填报管理
      • 文本类型表单
      • 数据填报编辑
    • 平台管理
      • 报表和大屏的导入导出
      • 访问统计
      • 智能报表
      • 智能大屏
      • 操作审计
      • 数据探索
      • 空间管理
        • 什么是空间
        • 创建空间
        • 更改空间信息
        • 空间中的用户和管理员
        • 删除空间
        • 空间就是数据门户
      • 组织管理
        • 管理组织中的用户
        • 什么是组织
        • 访问统计
        • 组织的创建和切换
        • 组织的VIP用户
        • 更改组织信息和管理员
        • 操作审计
      • 权限管理
        • 行级别权限管理
        • 用户管理
        • 权限审计
        • 细粒度权限
        • 角色管理
        • 概述
      • 个人中心
        • 个人信息更改
        • 收藏报表和大屏
        • 个人中心是什么
    • 三维场景
      • 场景交互
      • 场景调色
      • 自定义脚本
    • 智能问数
      • 创建及使用智能问数
      • 前期数据准备
      • 智能问数问答模板管理
      • 报表和大屏页面使用智能问数
      • 问数模型配置
      • 智能问数最佳实践
      • 问数权限管理
      • 系统集成
      • 系统集成技术接入指引
      • 使用智能问数
      • 如何优化我的问答效果
      • 概述
    • 智能问数--旧版待下线
      • 创建及使用智能问数
      • 前期数据准备
      • 报表和大屏页面使用智能问数
      • 智能问数最佳实践
      • 概述
    • 智能分析
      • 自动分析
      • 异常分析
      • 波动分析
    • 连接数据源
      • Kerberos 认证
      • API
      • 上传Excel文件
      • 云上VPC内数据源
      • 数据库
      • 内网隧道
      • 静态JSON
      • 云上RDS数据源
      • 概述
    • 分享和订阅
      • 分享页Token参数签名校验
      • 分享页强制用户登录
      • 公开和加密分享
      • 分享页通过URL参数标识用户
      • 多页面轮播
      • 桌面全屏客户端
      • 移动端全屏
      • 空间内多人浏览
      • 定时推送
    • 可视化分析
      • 数据自动补全
      • 图表联动
      • 单个图表的过滤条件
      • 动态的维度和度量分析
      • 数据筛选
      • 数据排序
      • 数据对比
      • 条件格式
      • 关联URL参数
      • 日期时间数据聚合
      • 图表评论
      • 数据缓存
      • 图表下钻
      • 图表标注
      • 过滤组件
        • 时间轴组件
        • 多选组件
        • 时间范围组件
        • 过滤条件宽度占比
        • 时间组件
        • 查询Key值
        • 多重逻辑组件
        • 日期范围组件
        • 输入框组件
        • 时间粒度组件
        • 日期组件
        • 大屏中过滤条件展示为图标
        • 树形选择组件
        • 过滤条件组
        • 过滤组件关联图表
        • 过滤组件的级联、依赖
        • 单选组件
      • 计算字段
        • 数据桶
        • SQL表达式
        • 分组
        • 记录数
        • 表计算
        • 概述
    • 自助取数
      • 创建自助取数
      • 管理自助取数
      • 概述
    • 创建数据模型
      • 数据脱敏
      • 数据格式化和单位
      • 数据值映射
      • 数据类型转换
      • 自定义SQL视图
      • 字段展示名称的动态化
      • 数据模型
      • 跨源交叉分析
    • 智能预测
      • 离线预测
      • 时序预测
      • 模型训练
      • 预测服务
    • 自助探索与AI问答
      • AI问答
      • 自助探索
    • 报表AI能力
      • 报表AI助手
      • 报表AI功能的数据准备
      • 报表AI助手权限管理
      • 报表AI洞察与AI预测
      • 如何优化我的问答效果
      • 概述
    • 微信与钉钉集成
      • 私有部署版
        • 钉钉集成
        • 企业微信集成
        • 飞书集成
        • 如流集成
      • 云上SaaS在线版
        • 企业微信集成
        • 微信集成
  • 视频专区
    • 产品介绍
    • 平台功能
      • 自助取数操作指导
      • 数据预警配置操作指导
      • 数据填报操作指导
      • 数据血缘操作指导
      • 系统管理操作指导
    • 基础功能
      • 图表标注操作指导
      • 连接数据源操作指导
      • 表格组件操作指导
      • 创建数据模型操作指导
      • 三维场景操作指导
      • 报表制作操作指导
      • 数据值映射操作指导
      • 可视化大屏制作操作指导
    • 智能分析
      • 智能图表操作指导
      • 异常分析操作指导
      • 自动分析操作指导
      • AI问答和探索操作指导
      • 波动分析操作指导
    • 操作指南
      • 数据填报
      • AI问答与探索
      • 分享和订阅
      • 连接数据源
      • 智能分析
      • 数据门户
      • 可视化分析
      • 三维场景
      • 制作可视化页面
      • 创建数据模型
      • 平台管理
      • 自助取数
      • 数据预警
      • 数据血缘
    • 交互功能
      • 大屏Tab控件操作指导
      • 报表和图表过滤操作指导
      • 多页面轮播操作指导
      • 数据门户操作指导
      • 标签页组件操作指导
      • 图表下钻操作指导
      • 图表联动操作指导
    • 产品说明
      • 文档使用建议
      • 产品介绍
  • 产品定价
    • 私有部署版定价
    • SaaS在线版定价
    • 免费试用说明
  • 文档中心
  • arrow
  • 百度数据可视化SUGAR
  • arrow
  • 操作指南
  • arrow
  • 智能问数
  • arrow
  • 系统集成技术接入指引
本页目录
  • 实现方式
  • 集成步骤
  • 公开分享的集成
  • 新建公开分享智能问数 iframe 页面
  • 发布和查看智能问数 iframe 页面
  • 集成智能问数 iframe 页面
  • token 分享的集成
  • 新建 token 分享智能问数 iframe 页面
  • 发布和查看智能问数 iframe 页面
  • 集成智能问数 iframe 页面
  • 集成流程
  • 参数说明
  • 示例代码
  • nodejs
  • PHP
  • java
  • .NET
  • Python
  • 结果验证
  • 验证工具地址

系统集成技术接入指引

更新时间:2025-08-22

智能问数页面支持被灵活的嵌入至第三方平台中,可以在此对嵌入页面的呈现样式、展示元素进行自定义配置。

实现方式

通过 iframe 分享智能问数页面的方式嵌入;

分享支持 2 种方式:

  • 公开分享:即所有互联网用户都能随意访问。
  • token 分享:即用户在访问发布的智能问数 iframe 嵌入页时需要通过 Sugar BI 提供的 Token 参数签名计算规则,生成访问 URL,用此 URL 访问时Sugar BI 会自动进行访问 URL 的 鉴权,鉴权通过之后才能访问智能问数页面,否则不能访问,以此来将Sugar BI智能问数的访问权限与用户的第三方系统权限体系进行集成。

    token 分享方式更利于保证数据的安全,需要对用户传递的参数进行签名鉴权,保证计算得到的 URL 参数不能被更改,如果私自更改了传参,页面将无法访问。

集成步骤

公开分享的集成

新建公开分享智能问数 iframe 页面

在「组织管理——智能问数嵌入管理」中,新建嵌入页面,添加问数范围,右侧控制面板「逻辑设置——过程代码分享方式」选项选择「公开」

图片 图片

发布和查看智能问数 iframe 页面

点击「发布生效」后,系统会生成一个可访问的链接,可以使用这个链接直接访问智能问数页面

图片 图片

集成智能问数 iframe 页面

第三方系统集成时可直接嵌入此 URL 即可

token 分享的集成

新建 token 分享智能问数 iframe 页面

在「组织管理——智能问数嵌入管理」中,新建嵌入页面,添加问数范围,右侧控制面板「逻辑设置——过程代码分享方式」选项选择「通过 token 验证」 页面上会自动生成一个 token 字符串,用于后续集成中的签名生成和鉴权

图片 图片

发布和查看智能问数 iframe 页面

点击「发布生效」后,系统会生成一个 URL 注意:这个 URL 不能直接访问和使用智能问数

图片

集成智能问数 iframe 页面

集成流程
  • 确定需要签名计算的参数名(即不允许被篡改的参数,一般是访问者的 email 信息);
  • 使用签名参数,token,和 3.2.2 中生成的 URL 计算生成最终访问智能问数页面的 URL;
  • 使用上一步中计算得到的 URL 访问Sugar BI 智能问数页面,在访问过程中,Sugar BI 系统会自动进行鉴权;
  • 如果鉴权通过,将带着该用户信息访问Sugar BI 智能问数页面;
  • 当访问者修改了签名参数,再次访问此 URL 时,访问会被拒绝(例如参数zhangsan@baidu.com被修改为lisi@baidu.com,将无法访问)。
参数说明
参数名 参数说明 参数值
shareID shareID 是智能问数在分享时自动生成的 url 中的部分: 如:http://127.0.0.1:8000/gbi-iframe/1b89d8d621bca917dd481b965c216dbf
最后一段 1b89d8d621bca917dd481b965c216dbf 就是 shareID
eg.
1b89d8d621bca917dd481b965c216dbf
token 新建智能问数分享页面,右侧控制面板「逻辑设置——过程代码分享方式」选项选择「通过token验证」后页面上生成的token,可直接复制 eg.
9zUfbrmDJhBhQt8qywjzasZmWNbHnOXg
sugar_sign_user_email 需要加入签名的参数,其参数名需以 sugar_sign_ 开头,后面可以带任何有效的参数名字符;
不符合此签名参数规则的参数,将不会进行参数签名校验,允许修改参数值;
签名参数按升序排序。
eg.
zhangsan@baidu.com
示例代码

拿到上述参数后,就可以使用以下示例代码,进行智能问数页面的集成开发。

nodejs
Plain Text
1const crypto = require('crypto');
2const querystring = require('querystring');
3const signedQueryParamReg = /^sugar_sign_.*/; // 符合此正则表达式的参数是需要签名的。
4let token = 'OAMf7CvniOGgoNijH9mFHEHSAf7****';
5let shareID = '1827981ec07ac66f937a88c9e65f****'; // shareID详见前面文档中的说明
6const time = Date.now();
7
8const customParams = {
9  sugar_sign_user_email: 'zhangsan@baidu.com'
10};
11let signParamsStr = Object.keys(customParams)
12  .filter(paramName => customParams[paramName] && signedQueryParamReg.test(paramName))
13  .sort()
14  .map(param => `${param}=${customParams[param]}`)
15  .join('&');
16
17let stringToSign = [shareID, time];
18signParamsStr && stringToSign.push(signParamsStr);
19stringToSign = stringToSign.join('|');
20let signature = crypto.createHmac('sha256', token).update(stringToSign).digest().toString('base64');
21let queryParams = {
22  _sugar_time: time,
23  _sugar_signature: signature
24};
25
26Object.keys(customParams).forEach(paramName => {
27  queryParams[paramName] = customParams[paramName];
28});
29
30let url = `https://sugar.baidubce.com/gbi-iframe/${shareID}?${querystring.stringify(queryParams)}`;
31console.log(url);
PHP
Plain Text
1<?php
2  $token = "OAMf7CvniOGgoNijH9mFHEHSAf7****";
3  $shareID = "1827981ec07ac66f937a88c9e65f****"; // shareID详见前面文档中的说明
4  $time = time()*1000;
5  $customParams = array(
6    'sugar_sign_user_email'=>'zhangsan@baidu.com'
7  );
8  $sign_array = preg_grep("/^sugar_sign_.*/", array_keys($customParams));
9  sort($sign_array);
10  function toPlain($v)
11  {
12    global $customParams;
13    return "$v=$customParams[$v]";
14  };
15  $signParamsStr = join("&",array_map("toPlain",$sign_array));
16  $stringToSign = $shareID.'|'.$time.'|'.$signParamsStr;
17  $signature = urlencode(base64_encode(hash_hmac('sha256', $stringToSign, $token, true)));
18  $queryParams = join("&",array_map("toPlain",array_keys($customParams)));
19  $url = "https://sugar.baidubce.com/gbi-iframe/".$shareID."?_sugar_time=".$time."&_sugar_signature=".$signature."&".$queryParams;
20  echo $url;
21?>
22<iframe width=100% height=100% src="<?=$url?>"/>
java
Plain Text
1package com.company;
2import java.security.*;
3import java.util.Date;
4import javax.crypto.*;
5import javax.crypto.spec.SecretKeySpec;
6import org.apache.commons.codec.binary.Base64;
7import java.net.URLEncoder;
8public class TokenTest {
9  public static String getSignedUrl(String shareID, String token, String signParamsStr) {
10    Date date = new Date();
11    Long time = date.getTime();
12    String stringToSign = shareID + "|" + time;
13    if (!StringUtils.isEmpty(signParamsStr)) {
14      stringToSign = stringToSign + "|" + signParamsStr;
15    }
16    String signature = HMACSHA256(stringToSign.getBytes(), token.getBytes());
17    String url = "https://sugar.baidubce.com/gbi-iframe/" + shareID + "?_sugar_time=" + time +         "&_sugar_signature=" + signature + "&" + signParamsStr;
18    return url;
19  }
20  /**
21    * 使用java原生的摘要实现SHA256加密。
22    * @param str加密后的报文。
23    * @return
24    */
25  public static String HMACSHA256(byte[] data, byte[] key) {
26    try  {
27      SecretKeySpec signingKey = new SecretKeySpec(key, "HmacSHA256");
28      Mac mac = Mac.getInstance("HmacSHA256");
29      mac.init(signingKey);
30      return URLEncoder.encode(byte2Base64(mac.doFinal(data)));
31    } catch (NoSuchAlgorithmException e) {
32      e.printStackTrace();
33    } catch (InvalidKeyException e) {
34      e.printStackTrace();
35    }
36    return null;
37  }
38  private static String byte2Base64(byte[] bytes){
39    return Base64.encodeBase64String(bytes);
40  }
41  public static void main(String[] args) throws Exception {
42    String signedQueryParamReg = "^sugar_sign_.*";
43    Map<String, Integer> customParams = new HashMap<>();
44    customParams.put("sugar_sign_user_email", 'zhangsan@baidu.com');
45    String signParamsStr =  customParams.entrySet().stream().filter(entry ->   Pattern.matches(signedQueryParamReg, entry.getKey()))
46    .map(entry -> entry.getKey() + "=" + entry.getValue())
47    .sorted()
48    .collect(Collectors.joining("&"));
49    System.out.println(getSignedUrl("shareID", "token", signParamsStr));  // shareID详见前面文档中的说明
50  }
51}
.NET
Plain Text
1using System;
2using System.Security.Cryptography;
3using System.Text.RegularExpressions;
4using System.Collections.Generic;
5using System.Linq;
6using System.Web;
7using System.Text;
8
9namespace sugarToken
10{
11  class Program
12  {
13    static void Main(string[] args)
14    {
15      var dic = new Dictionary<string, string>();  // 自定义参数。
16      dic.Add("sugar_sign_user_email", "zhangsan@baidu.com");         // sugar_sign_开头,需要签名。
17
18      // 分享页前缀,iframe分享shareID、token,自定义参数字典。
19      Console.WriteLine(GenerateUrl("https://sugar.baidubce.com/gbi-iframe/", "1827981ec07ac66f937a88c9e65f****", "OAMf7CvniOGgoNijH9mFHEHSAf7****", dic));
20    }
21    private static string GenerateUrl(string sugarBase, string shareID, string token, Dictionary<string, string> customParams)
22    {
23      string pattern = @"^sugar_sign_.*";
24      string timestamp = GetTimeStamp();
25
26      // 参数排序
27      Dictionary<string, string>.KeyCollection keyCol = customParams.Keys;
28      List<string> signKeys = new List<string>();
29
30      foreach (var item in keyCol.ToList())
31      {
32        if (Regex.IsMatch(item, pattern))
33        {
34          signKeys.Add(item);
35        }
36      }
37
38 // 按照key排序
39      signKeys = signKeys.OrderBy(k => k).ToList();
40
41      string paramsSignStr = signKeys.Aggregate("", (total, key) =>
42      {
43        if (total != "")
44        {
45          total += "&";
46        }
47        total += key + "=" + customParams[key];
48        return total;
49      });
50
51      string signStr = shareID + "|" + timestamp + "|" + paramsSignStr;
52
53      var encoding = new System.Text.ASCIIEncoding();
54      byte[] keyByte = encoding.GetBytes(token);
55      byte[] messageBytes = encoding.GetBytes(signStr);
56      string signature;
57      using (var hmacsha256 = new HMACSHA256(keyByte))
58      {
59        byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
60        signature = Convert.ToBase64String(hashmessage);
61      }
62
63      var paramDic = new Dictionary<string, string>();
64      paramDic.Add("_sugar_time", timestamp);
65      paramDic.Add("_sugar_signature", signature);
66
67      foreach (var item in customParams)
68      {
69        paramDic.Add(item.Key, item.Value);
70      }
71      return sugarBase + shareID + "?" + ParseToString(paramDic);
72    }
73    public static string GetTimeStamp()
74    {
75      TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
76      return Convert.ToInt64(ts.TotalMilliseconds).ToString();
77    }
78    static public string ParseToString(IDictionary<string, string> parameters)
79    {
80      IDictionary<string, string> sortedParams = new SortedDictionary<string, string>(parameters);
81      IEnumerator<KeyValuePair<string, string>> dem = sortedParams.GetEnumerator();
82
83      StringBuilder query = new StringBuilder("");
84      while (dem.MoveNext())
85      {
86        string key = dem.Current.Key;
87        string value = dem.Current.Value;
88        if (!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(value))
89        {
90          query.Append(key).Append("=").Append(HttpUtility.UrlEncode(value)).Append("&");
91        }
92      }
93      string content = query.ToString().Substring(0, query.Length - 1);
94
95      return content;
96    }
97  }
98}
Python
Plain Text
1import time
2import hmac
3import base64
4import urllib.parse
5
6now = str(round(time.time() * 1000))
7token = b'OAMf7CvniOGgoNijH9mFHEHSAf7****'
8# shareID详见前面文档中的说明
9share_id = '1827981ec07ac66f937a88c9e65f****'
10
11# 自定义参数,其中sugar_sign_开头,需要签名
12custome_params = {
13    "sugar_sign_user_email": 'zhangsan@baidu.com'
14}
15# 按照key排序
16sorted_custome_params = {i: custome_params[i] for i in sorted(custome_params.keys())}
17sign_params_str = '&'.join([f"{k}={v}" for k, v in sorted_custome_params.items() if k.startswith("sugar_sign_")])
18string_to_sign = '|'.join([share_id, now, sign_params_str])
19signature = base64.b64encode(hmac.digest(token, string_to_sign.encode('utf-8'), 'sha256')).decode('utf-8')
20signature = urllib.parse.quote(signature)
21# 生成最终链接
22url = f"https://sugar.baidubce.com/gbi-iframe/{share_id}?_sugar_time={now}&_sugar_signature={signature}&" \
23      + urllib.parse.urlencode(sorted_custome_params)
24
25print(url)
结果验证

可以根据用户自己的技术栈选择对应的示例代码,生成的 URL 示例如下:

http://127.0.0.1:8000/gbi-iframe/47fc6fbcd50a1d7e9c8eedcd3a966998?_sugar_time=1734079808082&_sugar_signature=1ghBOR%2FKMjE9W0legaQLzlIq8bF6JyEVUXLX4hiPD8U%3D&sugar_sign_user_email=zhangsan%40baidu.com

在 URL 的有效期内(分享未取消或被删除),如果修改了 sugar_sign_user_email 字段的值,将无法访问,可以避免数据泄漏风险

验证工具地址

Sugar BI 官方文档中提供了一个在线验证 URL 正确性的工具,可以使用此工具生成目标 URL 与用户在权限集成过程中代码生成的 URL 进行比对,来判断结果是否正确。您可以访问「签名 URL 计算工具」来生成带签名参数的 URL 示例。

上一篇
系统集成
下一篇
使用智能问数