EduOpenAI Core 文档/发布课件到网校

发布课件到网校

一键发布课堂到网校,课时 iframe 嵌入播放

管理后台「发布到智训宝」区块(edu-edusoho-sync 插件)提供一键发布能力:课堂快照 → OSS 静态产物 → 智训宝课时。

发布流程

  1. 在 /admin 选择已生成完成的课堂,点击「发布」
  2. 插件导出课堂为 OSS 静态产物(index.html / data.json / manifest.json,私有桶预签名 10 年)
  3. 通过智训宝 API 创建/更新课时并同步引用关系
  4. 在网校课时中嵌入 iframe 播放链接(CSP frame-ancestors 白名单放行)

播放方式

  • iframe 嵌入:CSP frame-ancestors 白名单(ALLOWED_FRAME_ANCESTORS 构建时生效)
  • URL 令牌鉴权:请求携带 ?access_code={ACCESS_CODE} 与 env 一致即放行(跨域 iframe 不依赖 Cookie)
  • 防盗链白名单:播放校验 + OSS Referer 配置双重防线

相关配置

.env
# 生产环境(www.eduopenai.com 上线后)
CORE_BASE_URL=https://maic.eduopenai.com
EDUSOHO_API_BASE=https://learn.eduopenai.com/api
EDUSOHO_AUTH_TOKEN=<智云提供的联调 token>

# 智云 dev 网校(联调环境,切换时注释生产行)
# EDUSOHO_API_BASE=http://dev.learn.eduopenai.com/api

环境切换(dev / 生产)

环境EDUSOHO_API_BASE说明
dev(联调)http://dev.learn.eduopenai.com/api智云网校侧 dev 发布接口,实测可用(T-20260808 智云已配合验证)
生产https://learn.eduopenai.com/api智训宝Pro 生产网校接口,部署 www.eduopenai.com 时使用
注意
82 机解析注意:maic 开发机(82 机)调用 dev 接口时,须确保 dev.learn.eduopenai.com 能解析到智云 dev 网校服务器(必要时在 /etc/hosts 手动添加解析);解析错误时请求会落到错误后端,表现为空 200 / 超时,并非发布失败报错。

请求头要求

所有智训宝 API 请求必须携带 Accept: application/vnd.edusoho.v2+json;缺失时请求会落入旧版 API,返回空 200(响应成功但无数据),联调时表现为「接口通了但没内容」。

示例
curl -X POST 'http://dev.learn.eduopenai.com/api/plugins/edu_interactive_classroom/tasks' \
  -H 'Accept: application/vnd.edusoho.v2+json' \
  -H 'Content-Type: application/json' \
  -d '{...}'
# 生产环境将域名切换为 https://learn.eduopenai.com/api
提示
edu-edusoho-sync 插件内部已默认携带该 Accept 头(见 plugins/edu-edusoho-sync/lib/);仅自建调用方/脚本需自行添加。

接口契约

  • 播放与校验接口.trae/documents/智训宝Pro对接技术方案.md §9.2 —— /api/edu/v1 播放校验与调用契约(与智云共同定稿 v2.0)
  • 课时创建/更新接口:智训宝 /api/plugins/edu_interactive_classroom/tasks —— 发布任务接口,创建/更新课时并同步引用关系
  • 接口契约变更须智云/巧匠双方确认后再实施(不允许单方定稿)
注意
生产环境(www.eduopenai.com)上线后,请将 CORE_BASE_URL、EDUSOHO_API_BASE 与 ALLOWED_FRAME_ANCESTORS 同步切换为生产域名。
提示
非智训宝系的其他网校/自建站点如何接入播放?参见「其他网校域名接入」(注册域名 → 白名单审核 → iframe/直链调用)。