用途:在 ibl.ai Studio 上读取并更新 Open edX 课程的设置,包括排期(开始、结束、报名日期)、节奏(self_paced)、语言、标题/副标题/描述/简介、课程图片与横幅、ibl.ai 目录字段,以及高级设置。建议在构建内容与首次发布前完成,避免目录展示半配置课程。
主要能力:GET /api/ibl/v1/course_settings?course_key={CE} 读取约 59 个键(身份、排期、关于页、媒体、ibl.ai 目录);GET /settings/advanced/{COURSE} 读取约 68 个高级设置键;GET /assets/{COURSE}/ 列出资源。写入用 POST /api/ibl/v1/course_settings 做合并更新,只发要改的键,响应为完整设置对象;POST /settings/advanced/{COURSE} 合并更新高级设置;资源先经 POST /assets/{COURSE}/ 上传,再把 course_image_name 与 course_image_asset_path 指向该资源。
使用方式:先做鉴权预检 node .claude/skills/iblai-api-studio-auth/scripts/studio-login.mjs --check,否则先运行 /iblai-api-studio-auth。加载 studio.env 后构造带会话 Cookie 与 CSRF 头的 curl 请求;日期用 ISO 8601 UTC 或 null;course_key 在查询串中需 URL 编码。节奏需单独一次调用先设 self_paced 并核对回显,再第二次调用设置真实日期。
限制:课程开始后节奏被锁定,只能通过先把 start_date 设为未来、改 self_paced、再恢复日期绕过;同一请求中 self_paced 与过去/当天 start_date 会静默丢弃节奏改动。enrollment_start 必须早于 start_date。设置接口即使拒绝字段也返回 200,必须比对响应。不要用 /settings/details/{course} 写入,部分请求体会返回 500。清除值发 null 或空字符串。删除资源前需与用户确认。