跳到主要内容

应用业务接口

sdk.client 使用 x-app-key 和 x-app-secret 调用 edu_service/server-api。服务端从验证后的凭证解析应用 ID。以下业务调用不需要控制台租户会话,也不传 x-app-id。

当前源码提供 50 个应用凭证 HTTP 路由,其中以下 45 项对应控制台的应用业务操作。课堂用户 Token 由 client.auth.issueToken 本地签发。成员权限与应用 UI 配置见课堂接口。新增能力需要部署对应版本的 server-api 并从源码构建 SDK;公开包 0.1.5 不包含这些新增方法。

账号登录与绑定、应用创建和跨应用管理、租户仪表盘、钱包、购买及自动充值使用独立的租户管理客户端。应用凭证不具备这些租户接口的权限。

业务控制器校验 HTTP 参数并调用已有领域 RPC。进课诊断和行为查询使用共享的 classroom-insights 查询库。两个网关使用相同的 ClickHouse 读取配置(CLICKHOUSE_URL、CLICKHOUSE_USER、CLICKHOUSE_PASSWORD、CLICKHOUSE_DATABASE);诊断存储不可用时返回 TELEMETRY_SINK_UNAVAILABLE。诊断查询限定在已鉴权应用及其课堂内。

配置​

import { Eduskit } from '@eduskit/server-sdk';

const sdk = new Eduskit({
client: {
baseUrl: process.env.EDU_SERVER_URL!,
appId: process.env.EDU_APP_ID!,
appKey: process.env.EDU_APP_KEY!,
appSecret: process.env.EDU_APP_SECRET!,
},
});
const c = sdk.client;
const users = await c.users.list({ page: 1, pageSize: 20 });
const files = await c.coursewares.list({ status: 'ready' });

Python、Java、Go、PHP 使用各自语言的应用配置。下表 c 指 Node/Python/PHP 的 sdk.client、Java 的 sdk.client() 或 Go 的 sdk.Client() 返回值。Python 方法名使用 snake_case,JSON 字段仍为 camelCase。Go 方法返回 (map[string]any, error)。

上传流程:申请签名 URL,调用 c.uploadFile(url, bytes, contentType) 直传字节,再创建课件或视频记录。直传仅向对象存储发送内容类型与文件字节。Python 使用 upload_file,Go 使用 UploadFile(ctx, url, bytes, contentType)。转码轮询、课堂创建、上课码和完整诊断导出见业务操作示例。

业务方法HTTP功能
client.users.listGET /v1/users用户列表
client.users.searchGET /v1/users/search搜索用户
client.users.registerPOST /v1/users创建用户
client.users.setStatusPATCH /v1/users/status启用或停用用户
client.classrooms.listGET /v1/classrooms课堂列表
client.classrooms.getGET /v1/classrooms/detail课堂详情
client.classrooms.createPOST /v1/classrooms创建课堂
client.classrooms.updatePATCH /v1/classrooms/update修改课堂
client.classrooms.startPOST /v1/classrooms/start开始课堂
client.classrooms.endPOST /v1/classrooms/end结束课堂
client.classrooms.members.listGET /v1/classrooms/members课堂成员
client.classrooms.members.addPOST /v1/classrooms/members添加课堂成员
client.classrooms.members.replaceStudentsPUT /v1/classrooms/members/students覆盖学生名单
client.classrooms.coursewares.listGET /v1/classrooms/coursewares课堂课件列表
client.classrooms.coursewares.bindPOST /v1/classrooms/coursewares绑定课堂课件
client.classrooms.coursewares.unbindDELETE /v1/classrooms/coursewares解绑课堂课件
client.classroomMedia.listWhiteboardCoursewaresGET /v1/classrooms/whiteboard/coursewares白板课件列表
client.classroomMedia.addWhiteboardCoursewarePOST /v1/classrooms/whiteboard/coursewares添加课件到白板
client.classrooms.attendanceGET /v1/classrooms/attendance课堂出勤记录
client.classrooms.listEnteredUsersGET /v1/classrooms/entered-users实际进课用户
client.classrooms.listJoinAttemptsGET /v1/classrooms/join-attempts进课尝试
client.classrooms.getEnteredUserTraceGET /v1/classrooms/entered-users/trace用户进课轨迹
client.classroomMedia.getLiveSourceGET /v1/classrooms/live-source直播源详情
client.classroomMedia.setLiveSourcePUT /v1/classrooms/live-source设置直播源
client.classroomMedia.issueLivePushCredentialPOST /v1/classrooms/live-source/push-credential推流凭证
client.classroomMedia.getLivePlayCredentialsGET /v1/classrooms/live/play-credentials直播播放凭证
client.classrooms.entryCode.listGET /v1/classrooms/entry-codes上课码及领用记录
client.classrooms.entryCode.issuePOST /v1/classrooms/entry-codes签发上课码
client.classrooms.entryCode.updatePOST /v1/classrooms/entry-codes/update修改或轮换上课码
client.classrooms.entryCode.revokePOST /v1/classrooms/entry-codes/revoke撤销上课码
client.activity.listGET /v1/classrooms/activity课堂活动列表
client.activity.tracksGET /v1/classrooms/activity/tracks课堂活动轨道
client.activity.overviewGET /v1/classrooms/activity/overview课堂活动概览
client.activity.detailGET /v1/classrooms/activity/detail课堂活动详情
client.coursewares.listGET /v1/coursewares课件库列表
client.coursewares.createUploadUrlPOST /v1/coursewares/upload-url课件上传地址
client.coursewares.createPOST /v1/coursewares创建并转码课件
client.coursewares.getGET /v1/coursewares/detail课件详情
client.coursewares.getManifestGET /v1/coursewares/manifest课件页面清单
client.coursewares.removeDELETE /v1/coursewares/remove删除课件
client.coursewares.retryPOST /v1/coursewares/retry重试课件转码
client.liveVideos.listGET /v1/live-videos直播素材列表
client.liveVideos.createUploadUrlPOST /v1/live-videos/upload-url直播视频上传地址
client.liveVideos.createPOST /v1/live-videos创建直播素材
client.liveVideos.removeDELETE /v1/live-videos/remove删除直播素材

users.list​

用户列表。

GET /v1/users

语言调用
Node.jsc.users.list(input)
Pythonc.users.list(**input)
Javac.users.list(input)
Goc.Users.List(ctx, input)
PHP$c->users->list($input)

HTTP 字段:ListEduUsersQuery。使用 URL 查询参数。

字段必填类型说明
status否EduUserStatus | undefined状态筛选或目标状态
q否string | undefined搜索关键词
page否number | undefined页码,从 1 开始
pageSize否number | undefined单页数量

HTTP 返回字段见 ListEduUsersResult (共享类型)。

users.search​

搜索用户。

GET /v1/users/search

语言调用
Node.jsc.users.search(input)
Pythonc.users.search(**input)
Javac.users.search(input)
Goc.Users.Search(ctx, input)
PHP$c->users->search($input)

HTTP 字段:SearchEduUsersQuery。使用 URL 查询参数。

字段必填类型说明
q否string | undefined搜索关键词
status否EduUserStatus | undefined状态筛选或目标状态
limit否number | undefined搜索结果数量上限,最大 50
requireOriginId否boolean | undefined只返回有业务侧标识的用户

HTTP 返回字段见 SearchEduUsersResult (共享类型)。

users.register​

创建用户。

POST /v1/users

语言调用
Node.jsc.users.register(input)
Pythonc.users.register(**input)
Javac.users.register(input)
Goc.Users.Register(ctx, input)
PHP$c->users->register($input)

HTTP 字段:CreateEduUserPayload。使用 JSON Body。

字段必填类型说明
originId否string | undefined业务侧用户标识
nickname是string用户昵称
avatar是string头像 URL

HTTP 返回字段见 EduUserRecord (共享类型)。

users.setStatus​

启用或停用用户。

PATCH /v1/users/status

语言调用
Node.jsc.users.setStatus(input)
Pythonc.users.set_status(**input)
Javac.users.setStatus(input)
Goc.Users.SetStatus(ctx, input)
PHP$c->users->setStatus($input)

HTTP 字段:UserStatusInput。使用 JSON Body。

字段必填类型说明
eduUserId是string课堂用户 ID
status是EduUserStatus状态筛选或目标状态

HTTP 返回字段见 EduUserRecord (共享类型)。

classrooms.list​

课堂列表。

GET /v1/classrooms

语言调用
Node.jsc.classrooms.list(input)
Pythonc.classrooms.list(**input)
Javac.classrooms.list(input)
Goc.Classrooms.List(ctx, input)
PHP$c->classrooms->list($input)

HTTP 字段:ListClassroomsQuery。使用 URL 查询参数。

字段必填类型说明
status否ClassroomStatus | undefined状态筛选或目标状态
q否string | undefined搜索关键词
startsAtFrom否string | undefined计划开始时间下界,包含
startsAtTo否string | undefined计划开始时间上界,不包含
actualStartedAtFrom否string | undefined实际开课时间下界
actualStartedAtTo否string | undefined实际开课时间上界
page否number | undefined页码,从 1 开始
pageSize否number | undefined单页数量

HTTP 返回字段见 ListClassroomsResult (共享类型)。

classrooms.get​

课堂详情。

GET /v1/classrooms/detail

语言调用
Node.jsc.classrooms.get(input)
Pythonc.classrooms.get(**input)
Javac.classrooms.get(input)
Goc.Classrooms.Get(ctx, input)
PHP$c->classrooms->get($input)

HTTP 字段:ClassroomIdInput。使用 URL 查询参数。

字段必填类型说明
classroomId是string课堂 ID

HTTP 返回字段见 ClassroomRecord (共享类型)。

classrooms.create​

创建课堂。

POST /v1/classrooms

语言调用
Node.jsc.classrooms.create(input)
Pythonc.classrooms.create(**input)
Javac.classrooms.create(input)
Goc.Classrooms.Create(ctx, input)
PHP$c->classrooms->create($input)

HTTP 字段:CreateClassroomPayload。使用 JSON Body。

字段必填类型说明
name是string应用或课堂名称
teacherEduUserId是string主讲老师用户 ID
startsAt是string计划开始时间,ISO 8601
durationMinutes是number持续时间,分钟;课堂创建范围 5–480
resolution否ClassroomResolution | undefined课堂视频分辨率
maxOnStage否number | undefined最大同时上台人数,1–16
maxAudience否number | undefined最大在室人数,包含台上,最大 100000
classroomType否ClassroomType | undefined实时课 realtime 或直播课 live
liveSourceKind否string | undefined课堂创建时的直播源类型
liveVideoId否string | undefined直播视频素材 ID
pullStreamUrl否string | undefined拉流源地址
recordMode否ClassroomRecordMode | undefined录制模式
avSubscribeMode否ClassroomAvSubscribeMode | undefined音视频订阅模式
defaultOnStage否boolean | undefined学生与助教进课时默认上台
allowTeacherControlDevice否boolean | undefined允许老师控制成员设备
overtimeMinutes否number | undefined允许延长分钟数,0–180
autoStartOnSchedule否boolean | undefined按计划时间自动开课
recordBackgroundUrl否string | undefined录制背景图片 URL
joinPolicy否ClassroomJoinPolicy | undefined指定成员或同应用用户开放进课策略
videoOnly否boolean | undefined纯视频课堂,不启用白板
coursewareIds否string[] | undefined课件 ID 列表,单次最多 50 项
studentEduUserIds否string[] | undefined创建时加入的学生用户 ID 列表
uiConfig否Record<string, unknown> | undefined课堂 UI 配置对象

HTTP 返回字段见 ClassroomRecord (共享类型)。

classrooms.update​

修改课堂。

PATCH /v1/classrooms/update

语言调用
Node.jsc.classrooms.update(input)
Pythonc.classrooms.update(**input)
Javac.classrooms.update(input)
Goc.Classrooms.Update(ctx, input)
PHP$c->classrooms->update($input)

HTTP 字段:UpdateClassroomInput。使用 JSON Body。

字段必填类型说明
classroomId是string课堂 ID
name是string应用或课堂名称
teacherEduUserId是string主讲老师用户 ID
resolution否ClassroomResolution | undefined课堂视频分辨率
maxOnStage否number | undefined最大同时上台人数,1–16
maxAudience否number | undefined最大在室人数,包含台上,最大 100000
classroomType否ClassroomType | undefined实时课 realtime 或直播课 live
liveSourceKind否string | undefined课堂创建时的直播源类型
liveVideoId否string | undefined直播视频素材 ID
pullStreamUrl否string | undefined拉流源地址
recordMode否ClassroomRecordMode | undefined录制模式
avSubscribeMode否ClassroomAvSubscribeMode | undefined音视频订阅模式
defaultOnStage否boolean | undefined学生与助教进课时默认上台
allowTeacherControlDevice否boolean | undefined允许老师控制成员设备
overtimeMinutes否number | undefined允许延长分钟数,0–180
autoStartOnSchedule否boolean | undefined按计划时间自动开课
recordBackgroundUrl否string | undefined录制背景图片 URL
joinPolicy否ClassroomJoinPolicy | undefined指定成员或同应用用户开放进课策略
videoOnly否boolean | undefined纯视频课堂,不启用白板
uiConfig否Record<string, unknown> | undefined课堂 UI 配置对象

HTTP 返回字段见 ClassroomRecord (共享类型)。

classrooms.start​

开始课堂。

POST /v1/classrooms/start

语言调用
Node.jsc.classrooms.start(classroomId)
Pythonc.classrooms.start(classroom_id)
Javac.classrooms.start(classroomId)
Goc.Classrooms.Start(ctx, classroomId)
PHP$c->classrooms->start($classroomId)

将 classroomId 作为独立方法参数传入,其余字段放在 input 中。

HTTP 字段:ClassroomIdInput。使用 JSON Body。

字段必填类型说明
classroomId是string课堂 ID

HTTP 返回字段见 ClassroomRecord (共享类型)。

classrooms.end​

结束课堂。

POST /v1/classrooms/end

语言调用
Node.jsc.classrooms.end(classroomId)
Pythonc.classrooms.end(classroom_id)
Javac.classrooms.end(classroomId)
Goc.Classrooms.End(ctx, classroomId)
PHP$c->classrooms->end($classroomId)

将 classroomId 作为独立方法参数传入,其余字段放在 input 中。

HTTP 字段:ClassroomIdInput。使用 JSON Body。

字段必填类型说明
classroomId是string课堂 ID

HTTP 返回字段见 ClassroomRecord (共享类型)。

classrooms.members.list​

课堂成员。

GET /v1/classrooms/members

语言调用
Node.jsc.classrooms.members.list(classroomId)
Pythonc.classrooms.members.list(classroom_id)
Javac.classrooms.members.list(classroomId)
Goc.Classrooms.Members.List(ctx, classroomId)
PHP$c->classrooms->members->list($classroomId)

将 classroomId 作为独立方法参数传入,其余字段放在 input 中。

HTTP 字段:ClassroomIdInput。使用 URL 查询参数。

字段必填类型说明
classroomId是string课堂 ID

HTTP 返回字段见 ListClassroomMembersResult (共享类型)。

classrooms.members.add​

添加课堂成员。

POST /v1/classrooms/members

语言调用
Node.jsc.classrooms.members.add(classroomId, input)
Pythonc.classrooms.members.add(classroom_id, **input)
Javac.classrooms.members.add(classroomId, input)
Goc.Classrooms.Members.Add(ctx, classroomId, input)
PHP$c->classrooms->members->add($classroomId, $input)

将 classroomId 作为独立方法参数传入,其余字段放在 input 中。

HTTP 字段:AddMemberInput。使用 JSON Body。

字段必填类型说明
eduUserId是string课堂用户 ID
role是"teacher" | "assistant" | "student" | "inspector"成员或上课码角色
classroomId是string课堂 ID

HTTP 返回字段见 MembershipResult (共享类型)。

classrooms.members.replaceStudents​

覆盖学生名单。

PUT /v1/classrooms/members/students

语言调用
Node.jsc.classrooms.members.replaceStudents(classroomId, input)
Pythonc.classrooms.members.replace_students(classroom_id, **input)
Javac.classrooms.members.replaceStudents(classroomId, input)
Goc.Classrooms.Members.ReplaceStudents(ctx, classroomId, input)
PHP$c->classrooms->members->replaceStudents($classroomId, $input)

将 classroomId 作为独立方法参数传入,其余字段放在 input 中。

HTTP 字段:ReplaceStudentsInput。使用 JSON Body。

字段必填类型说明
eduUserIds是string[]覆盖后的完整学生 ID 列表
classroomId是string课堂 ID

HTTP 返回字段见 SetClassroomStudentsResult (共享类型)。

classrooms.coursewares.list​

课堂课件列表。

GET /v1/classrooms/coursewares

语言调用
Node.jsc.classrooms.coursewares.list(classroomId)
Pythonc.classrooms.coursewares.list(classroom_id)
Javac.classrooms.coursewares.list(classroomId)
Goc.Classrooms.Coursewares.List(ctx, classroomId)
PHP$c->classrooms->coursewares->list($classroomId)

将 classroomId 作为独立方法参数传入,其余字段放在 input 中。

HTTP 字段:ClassroomIdInput。使用 URL 查询参数。

字段必填类型说明
classroomId是string课堂 ID

HTTP 返回字段见 ClassroomCoursewaresResult (共享类型)。

classrooms.coursewares.bind​

绑定课堂课件。

POST /v1/classrooms/coursewares

语言调用
Node.jsc.classrooms.coursewares.bind(classroomId, input)
Pythonc.classrooms.coursewares.bind(classroom_id, **input)
Javac.classrooms.coursewares.bind(classroomId, input)
Goc.Classrooms.Coursewares.Bind(ctx, classroomId, input)
PHP$c->classrooms->coursewares->bind($classroomId, $input)

将 classroomId 作为独立方法参数传入,其余字段放在 input 中。

HTTP 字段:BindCoursewaresInput。使用 JSON Body。

字段必填类型说明
coursewareIds是string[]课件 ID 列表,单次最多 50 项
classroomId是string课堂 ID

HTTP 返回字段见 BindCoursewaresResult (共享类型)。

classrooms.coursewares.unbind​

解绑课堂课件。

DELETE /v1/classrooms/coursewares

语言调用
Node.jsc.classrooms.coursewares.unbind(classroomId, input)
Pythonc.classrooms.coursewares.unbind(classroom_id, **input)
Javac.classrooms.coursewares.unbind(classroomId, input)
Goc.Classrooms.Coursewares.Unbind(ctx, classroomId, input)
PHP$c->classrooms->coursewares->unbind($classroomId, $input)

将 classroomId 作为独立方法参数传入,其余字段放在 input 中。

HTTP 字段:BindCoursewaresInput。 classroomId 位于 query,coursewareIds 位于 JSON Body。

字段必填类型说明
coursewareIds是string[]课件 ID 列表,单次最多 50 项
classroomId是string课堂 ID

HTTP 返回字段见 UnbindCoursewaresResult (共享类型)。

classroomMedia.listWhiteboardCoursewares​

白板课件列表。

GET /v1/classrooms/whiteboard/coursewares

语言调用
Node.jsc.classroomMedia.listWhiteboardCoursewares(input)
Pythonc.classroom_media.list_whiteboard_coursewares(**input)
Javac.classroomMedia.listWhiteboardCoursewares(input)
Goc.ClassroomMedia.ListWhiteboardCoursewares(ctx, input)
PHP$c->classroomMedia->listWhiteboardCoursewares($input)

HTTP 字段:ClassroomIdInput。使用 URL 查询参数。

字段必填类型说明
classroomId是string课堂 ID

HTTP 返回字段见 WhiteboardCoursewaresResult (共享类型)。

classroomMedia.addWhiteboardCourseware​

添加课件到白板。

POST /v1/classrooms/whiteboard/coursewares

语言调用
Node.jsc.classroomMedia.addWhiteboardCourseware(input)
Pythonc.classroom_media.add_whiteboard_courseware(**input)
Javac.classroomMedia.addWhiteboardCourseware(input)
Goc.ClassroomMedia.AddWhiteboardCourseware(ctx, input)
PHP$c->classroomMedia->addWhiteboardCourseware($input)

HTTP 字段:AddWhiteboardCoursewareInput。使用 JSON Body。

字段必填类型说明
coursewareId是string课件 ID
requestId是string本次白板课件操作标识
classroomId是string课堂 ID

HTTP 返回字段见 ClassroomWhiteboardCoursewareRecord (共享类型)。

classrooms.attendance​

课堂出勤记录。

GET /v1/classrooms/attendance

语言调用
Node.jsc.classrooms.attendance(input)
Pythonc.classrooms.attendance(**input)
Javac.classrooms.attendance(input)
Goc.Classrooms.Attendance(ctx, input)
PHP$c->classrooms->attendance($input)

HTTP 字段:AttendanceInput。使用 URL 查询参数。

字段必填类型说明
eduUserId否string | undefined课堂用户 ID
classroomId是string课堂 ID

HTTP 返回字段见 AttendanceResult (共享类型)。

classrooms.listEnteredUsers​

实际进课用户。

GET /v1/classrooms/entered-users

语言调用
Node.jsc.classrooms.listEnteredUsers(input)
Pythonc.classrooms.list_entered_users(**input)
Javac.classrooms.listEnteredUsers(input)
Goc.Classrooms.ListEnteredUsers(ctx, input)
PHP$c->classrooms->listEnteredUsers($input)

HTTP 字段:EnteredUsersInput。使用 URL 查询参数。

字段必填类型说明
classroomId是string课堂 ID
page否number | undefined页码,从 1 开始
pageSize否number | undefined单页数量

HTTP 返回字段见 ListClassroomEnteredUsersResult (共享类型)。

classrooms.listJoinAttempts​

进课尝试。

GET /v1/classrooms/join-attempts

语言调用
Node.jsc.classrooms.listJoinAttempts(input)
Pythonc.classrooms.list_join_attempts(**input)
Javac.classrooms.listJoinAttempts(input)
Goc.Classrooms.ListJoinAttempts(ctx, input)
PHP$c->classrooms->listJoinAttempts($input)

HTTP 字段:JoinAttemptsInput。使用 URL 查询参数。

字段必填类型说明
classroomId是string课堂 ID
result否string | undefined进课结果筛选
joinStatus否string | undefined进课状态筛选
failureDomain否string | undefined失败领域筛选
platform否string | undefined客户端平台
sdkVersion否string | undefinedSDK 版本
appVersion否string | undefined客户端应用版本
networkType否string | undefined网络类型
provider否string | undefined服务提供方
eduUserId否string | undefined课堂用户 ID
startedAtFrom否string | undefined尝试开始时间下界
startedAtTo否string | undefined尝试开始时间上界
cursor否string | undefined上一页返回的游标
pageSize否number | undefined单页数量

HTTP 返回字段见 ListClassroomJoinAttemptsResult (共享类型)。

classrooms.getEnteredUserTrace​

用户进课轨迹。

GET /v1/classrooms/entered-users/trace

语言调用
Node.jsc.classrooms.getEnteredUserTrace(input)
Pythonc.classrooms.get_entered_user_trace(**input)
Javac.classrooms.getEnteredUserTrace(input)
Goc.Classrooms.GetEnteredUserTrace(ctx, input)
PHP$c->classrooms->getEnteredUserTrace($input)

HTTP 字段:EnteredUserTraceInput。使用 URL 查询参数。

字段必填类型说明
classroomId是string课堂 ID
attemptId是string进课尝试 ID
cursor否string | undefined上一页返回的游标
pageSize否number | undefined单页数量
sessionsCursor否string | undefined会话分页游标
sessionsPageSize否number | undefined会话分页数量
eduUserId是string课堂用户 ID

HTTP 返回字段见 ClassroomEnteredUserTrace (共享类型)。

classroomMedia.getLiveSource​

直播源详情。

GET /v1/classrooms/live-source

语言调用
Node.jsc.classroomMedia.getLiveSource(input)
Pythonc.classroom_media.get_live_source(**input)
Javac.classroomMedia.getLiveSource(input)
Goc.ClassroomMedia.GetLiveSource(ctx, input)
PHP$c->classroomMedia->getLiveSource($input)

HTTP 字段:ClassroomIdInput。使用 URL 查询参数。

字段必填类型说明
classroomId是string课堂 ID

HTTP 返回字段见 LiveSourceRecord (共享类型)。

classroomMedia.setLiveSource​

设置直播源。

PUT /v1/classrooms/live-source

语言调用
Node.jsc.classroomMedia.setLiveSource(input)
Pythonc.classroom_media.set_live_source(**input)
Javac.classroomMedia.setLiveSource(input)
Goc.ClassroomMedia.SetLiveSource(ctx, input)
PHP$c->classroomMedia->setLiveSource($input)

HTTP 字段:SetLiveSourceInput。使用 JSON Body。

字段必填类型说明
kind是"device" | "file" | "push" | "pull"直播源类型
liveVideoId否string | undefined直播视频素材 ID
pullStreamUrl否string | undefined拉流源地址
classroomId是string课堂 ID

HTTP 返回字段见 LiveSourceRecord (共享类型)。

classroomMedia.issueLivePushCredential​

推流凭证。

POST /v1/classrooms/live-source/push-credential

语言调用
Node.jsc.classroomMedia.issueLivePushCredential(input)
Pythonc.classroom_media.issue_live_push_credential(**input)
Javac.classroomMedia.issueLivePushCredential(input)
Goc.ClassroomMedia.IssueLivePushCredential(ctx, input)
PHP$c->classroomMedia->issueLivePushCredential($input)

HTTP 字段:ClassroomIdInput。使用 JSON Body。

字段必填类型说明
classroomId是string课堂 ID

HTTP 返回字段见 LivePushCredential (共享类型)。

classroomMedia.getLivePlayCredentials​

直播播放凭证。

GET /v1/classrooms/live/play-credentials

语言调用
Node.jsc.classroomMedia.getLivePlayCredentials(input)
Pythonc.classroom_media.get_live_play_credentials(**input)
Javac.classroomMedia.getLivePlayCredentials(input)
Goc.ClassroomMedia.GetLivePlayCredentials(ctx, input)
PHP$c->classroomMedia->getLivePlayCredentials($input)

HTTP 字段:ClassroomIdInput。使用 URL 查询参数。

字段必填类型说明
classroomId是string课堂 ID

HTTP 返回字段见 LivePlayCredentials (共享类型)。

classrooms.entryCode.list​

上课码及领用记录。

GET /v1/classrooms/entry-codes

语言调用
Node.jsc.classrooms.entryCode.list(classroomId)
Pythonc.classrooms.entry_code.list(classroom_id)
Javac.classrooms.entryCode.list(classroomId)
Goc.Classrooms.EntryCode.List(ctx, classroomId)
PHP$c->classrooms->entryCode->list($classroomId)

将 classroomId 作为独立方法参数传入,其余字段放在 input 中。

HTTP 字段:ClassroomIdInput。使用 URL 查询参数。

字段必填类型说明
classroomId是string课堂 ID

HTTP 返回字段见 EntryCodeList (共享类型)。

classrooms.entryCode.issue​

签发上课码。

POST /v1/classrooms/entry-codes

语言调用
Node.jsc.classrooms.entryCode.issue(classroomId, input)
Pythonc.classrooms.entry_code.issue(classroom_id, **input)
Javac.classrooms.entryCode.issue(classroomId, input)
Goc.Classrooms.EntryCode.Issue(ctx, classroomId, input)
PHP$c->classrooms->entryCode->issue($classroomId, $input)

将 classroomId 作为独立方法参数传入,其余字段放在 input 中。

HTTP 字段:IssueEntryCodesInput。使用 JSON Body。

字段必填类型说明
role是"teacher" | "student"成员或上课码角色
maxClaims是number最多领用人数,1–500;老师码为 1
count否number | undefined签发数量,1–20;老师码按 1 张处理
remark否string | undefined备注,最多 64 字符
classroomId是string课堂 ID

HTTP 返回字段见 EntryCodeList (共享类型)。

classrooms.entryCode.update​

修改或轮换上课码。

POST /v1/classrooms/entry-codes/update

语言调用
Node.jsc.classrooms.entryCode.update(classroomId, input)
Pythonc.classrooms.entry_code.update(classroom_id, **input)
Javac.classrooms.entryCode.update(classroomId, input)
Goc.Classrooms.EntryCode.Update(ctx, classroomId, input)
PHP$c->classrooms->entryCode->update($classroomId, $input)

将 classroomId 作为独立方法参数传入,其余字段放在 input 中。

HTTP 字段:UpdateEntryCodeInput。使用 JSON Body。

字段必填类型说明
entryCodeId是string上课码记录 ID
maxClaims否number | undefined最多领用人数,1–500;老师码为 1
remark否string | undefined备注,最多 64 字符
rotate否boolean | undefined轮换上课码值
classroomId是string课堂 ID

HTTP 返回字段见 EntryCodeRecord (共享类型)。

classrooms.entryCode.revoke​

撤销上课码。

POST /v1/classrooms/entry-codes/revoke

语言调用
Node.jsc.classrooms.entryCode.revoke(classroomId, entryCodeId)
Pythonc.classrooms.entry_code.revoke(classroom_id, entry_code_id)
Javac.classrooms.entryCode.revoke(classroomId, entryCodeId)
Goc.Classrooms.EntryCode.Revoke(ctx, classroomId, entryCodeId)
PHP$c->classrooms->entryCode->revoke($classroomId, $entryCodeId)

将 classroomId、entryCodeId 作为独立方法参数传入,其余字段放在 input 中。

HTTP 字段:RevokeEntryCodeInput。使用 JSON Body。

字段必填类型说明
entryCodeId是string上课码记录 ID
classroomId是string课堂 ID

HTTP 返回字段见 EntryCodeRecord (共享类型)。

activity.list​

课堂活动列表。

GET /v1/classrooms/activity

语言调用
Node.jsc.activity.list(input)
Pythonc.activity.list(**input)
Javac.activity.list(input)
Goc.Activity.List(ctx, input)
PHP$c->activity->list($input)

HTTP 字段:ActivityQuery。使用 URL 查询参数。

字段必填类型说明
classroomId是string课堂 ID
from否string | undefined时间范围开始,ISO 8601
to否string | undefined时间范围结束,ISO 8601
deviceId否string | undefined设备标识
attemptId否string | undefined进课尝试 ID
category否"join" | "stage" | "media" | "permission" | "message" | "whiteboard" | "tool" | "connection" | "lifecycle" | "other" | undefined活动分类
relation否"initiated" | "affected" | "observed" | "system" | "server" | undefined用户与活动的关系
eduUserId是string课堂用户 ID
cursor否string | undefined上一页返回的游标
pageSize否number | undefined单页数量

HTTP 返回字段见 ActivityPage (共享类型)。

activity.tracks​

课堂活动轨道。

GET /v1/classrooms/activity/tracks

语言调用
Node.jsc.activity.tracks(input)
Pythonc.activity.tracks(**input)
Javac.activity.tracks(input)
Goc.Activity.Tracks(ctx, input)
PHP$c->activity->tracks($input)

HTTP 字段:ActivityQuery。使用 URL 查询参数。

字段必填类型说明
classroomId是string课堂 ID
from否string | undefined时间范围开始,ISO 8601
to否string | undefined时间范围结束,ISO 8601
deviceId否string | undefined设备标识
attemptId否string | undefined进课尝试 ID
category否"join" | "stage" | "media" | "permission" | "message" | "whiteboard" | "tool" | "connection" | "lifecycle" | "other" | undefined活动分类
relation否"initiated" | "affected" | "observed" | "system" | "server" | undefined用户与活动的关系
eduUserId是string课堂用户 ID
cursor否string | undefined上一页返回的游标
pageSize否number | undefined单页数量

HTTP 返回字段见 ActivityTracks (共享类型)。

activity.overview​

课堂活动概览。

GET /v1/classrooms/activity/overview

语言调用
Node.jsc.activity.overview(input)
Pythonc.activity.overview(**input)
Javac.activity.overview(input)
Goc.Activity.Overview(ctx, input)
PHP$c->activity->overview($input)

HTTP 字段:ActivityQuery。使用 URL 查询参数。

字段必填类型说明
classroomId是string课堂 ID
from否string | undefined时间范围开始,ISO 8601
to否string | undefined时间范围结束,ISO 8601
deviceId否string | undefined设备标识
attemptId否string | undefined进课尝试 ID
category否"join" | "stage" | "media" | "permission" | "message" | "whiteboard" | "tool" | "connection" | "lifecycle" | "other" | undefined活动分类
relation否"initiated" | "affected" | "observed" | "system" | "server" | undefined用户与活动的关系
eduUserId是string课堂用户 ID
cursor否string | undefined上一页返回的游标
pageSize否number | undefined单页数量

HTTP 返回字段见 ActivityOverview (共享类型)。

activity.detail​

课堂活动详情。

GET /v1/classrooms/activity/detail

语言调用
Node.jsc.activity.detail(input)
Pythonc.activity.detail(**input)
Javac.activity.detail(input)
Goc.Activity.Detail(ctx, input)
PHP$c->activity->detail($input)

HTTP 字段:ActivityDetailInput。使用 URL 查询参数。

字段必填类型说明
classroomId是string课堂 ID
from是string时间范围开始,ISO 8601
to是string时间范围结束,ISO 8601
asOf是string列表返回的查询截止时间
eduUserId是string课堂用户 ID
activityId是string活动 ID
cursor否string | undefined上一页返回的游标
pageSize否number | undefined单页数量

HTTP 返回字段见 ActivityDetail (共享类型)。

coursewares.list​

课件库列表。

GET /v1/coursewares

语言调用
Node.jsc.coursewares.list(input)
Pythonc.coursewares.list(**input)
Javac.coursewares.list(input)
Goc.Coursewares.List(ctx, input)
PHP$c->coursewares->list($input)

HTTP 字段:ListCoursewaresInput。使用 URL 查询参数。

字段必填类型说明
classroomId否string | undefined课堂 ID
ownerEduUserId否string | undefined私有课件库归属用户;上传与创建保持一致
status否CoursewareStatus | undefined状态筛选或目标状态
q否string | undefined搜索关键词
page否number | undefined页码,从 1 开始
pageSize否number | undefined单页数量

HTTP 返回字段见 ListCoursewaresResult (共享类型)。

coursewares.createUploadUrl​

课件上传地址。

POST /v1/coursewares/upload-url

语言调用
Node.jsc.coursewares.createUploadUrl(input)
Pythonc.coursewares.create_upload_url(**input)
Javac.coursewares.createUploadUrl(input)
Goc.Coursewares.CreateUploadUrl(ctx, input)
PHP$c->coursewares->createUploadUrl($input)

HTTP 字段:CreateUploadUrlPayload。使用 JSON Body。

字段必填类型说明
fileName是string文件名,含扩展名
contentHash是string文件内容 SHA-256,小写十六进制;课件要求 64 字符
contentType否string | undefined文件 MIME 类型
expiresSeconds否number | undefined上传 URL 有效期,秒,0–86400;0 使用默认
ownerEduUserId否string | undefined私有课件库归属用户;上传与创建保持一致

HTTP 返回字段见 UploadUrlResult (共享类型)。

coursewares.create​

创建并转码课件。

POST /v1/coursewares

语言调用
Node.jsc.coursewares.create(input)
Pythonc.coursewares.create(**input)
Javac.coursewares.create(input)
Goc.Coursewares.Create(ctx, input)
PHP$c->coursewares->create($input)

HTTP 字段:CreateCoursewarePayload。使用 JSON Body。

字段必填类型说明
fileName是string文件名,含扩展名
originalName是string原始文件名,含扩展名
format是string课件文件格式
sizeBytes是number文件字节数
objectKey是string上传接口返回的对象键
sourceUrl是string上传接口返回的源文件地址
contentHash是string文件内容 SHA-256,小写十六进制;课件要求 64 字符
ownerEduUserId否string | undefined私有课件库归属用户;上传与创建保持一致

HTTP 返回字段见 CoursewareRecord (共享类型)。

coursewares.get​

课件详情。

GET /v1/coursewares/detail

语言调用
Node.jsc.coursewares.get(input)
Pythonc.coursewares.get(**input)
Javac.coursewares.get(input)
Goc.Coursewares.Get(ctx, input)
PHP$c->coursewares->get($input)

HTTP 字段:CoursewareIdInput。使用 URL 查询参数。

字段必填类型说明
coursewareId是string课件 ID

HTTP 返回字段见 CoursewareRecord (共享类型)。

coursewares.getManifest​

课件页面清单。

GET /v1/coursewares/manifest

语言调用
Node.jsc.coursewares.getManifest(input)
Pythonc.coursewares.get_manifest(**input)
Javac.coursewares.getManifest(input)
Goc.Coursewares.GetManifest(ctx, input)
PHP$c->coursewares->getManifest($input)

HTTP 字段:CoursewareIdInput。使用 URL 查询参数。

字段必填类型说明
coursewareId是string课件 ID

HTTP 返回字段见 CoursewareManifest (共享类型)。

coursewares.remove​

删除课件。

DELETE /v1/coursewares/remove

语言调用
Node.jsc.coursewares.remove(input)
Pythonc.coursewares.remove(**input)
Javac.coursewares.remove(input)
Goc.Coursewares.Remove(ctx, input)
PHP$c->coursewares->remove($input)

HTTP 字段:CoursewareIdInput。使用 URL 查询参数。

字段必填类型说明
coursewareId是string课件 ID

HTTP 返回字段见 DeleteResult (共享类型)。

coursewares.retry​

重试课件转码。

POST /v1/coursewares/retry

语言调用
Node.jsc.coursewares.retry(input)
Pythonc.coursewares.retry(**input)
Javac.coursewares.retry(input)
Goc.Coursewares.Retry(ctx, input)
PHP$c->coursewares->retry($input)

HTTP 字段:CoursewareIdInput。使用 JSON Body。

字段必填类型说明
coursewareId是string课件 ID

HTTP 返回字段见 CoursewareRecord (共享类型)。

liveVideos.list​

直播素材列表。

GET /v1/live-videos

语言调用
Node.jsc.liveVideos.list(input)
Pythonc.live_videos.list(**input)
Javac.liveVideos.list(input)
Goc.LiveVideos.List(ctx, input)
PHP$c->liveVideos->list($input)

HTTP 字段:PaginationInput。使用 URL 查询参数。

字段必填类型说明
page否number | undefined页码,从 1 开始
pageSize否number | undefined单页数量

HTTP 返回字段见 ListLiveVideosResult (共享类型)。

liveVideos.createUploadUrl​

直播视频上传地址。

POST /v1/live-videos/upload-url

语言调用
Node.jsc.liveVideos.createUploadUrl(input)
Pythonc.live_videos.create_upload_url(**input)
Javac.liveVideos.createUploadUrl(input)
Goc.LiveVideos.CreateUploadUrl(ctx, input)
PHP$c->liveVideos->createUploadUrl($input)

HTTP 字段:LiveVideoUploadInput。使用 JSON Body。

字段必填类型说明
fileName是string文件名,含扩展名
contentType否string | undefined文件 MIME 类型

HTTP 返回字段见 LiveVideoUploadResult (共享类型)。

liveVideos.create​

创建直播素材。

POST /v1/live-videos

语言调用
Node.jsc.liveVideos.create(input)
Pythonc.live_videos.create(**input)
Javac.liveVideos.create(input)
Goc.LiveVideos.Create(ctx, input)
PHP$c->liveVideos->create($input)

HTTP 字段:CreateLiveVideoInput。使用 JSON Body。

字段必填类型说明
title是string视频素材标题
objectKey是string上传接口返回的对象键
contentHash否string | undefined文件内容 SHA-256,小写十六进制;课件要求 64 字符
sizeBytes否number | undefined文件字节数

HTTP 返回字段见 LiveVideoRecord (共享类型)。

liveVideos.remove​

删除直播素材。

DELETE /v1/live-videos/remove

语言调用
Node.jsc.liveVideos.remove(input)
Pythonc.live_videos.remove(**input)
Javac.liveVideos.remove(input)
Goc.LiveVideos.Remove(ctx, input)
PHP$c->liveVideos->remove($input)

HTTP 字段:LiveVideoIdInput。使用 URL 查询参数。

字段必填类型说明
liveVideoId是string直播视频素材 ID

HTTP 返回字段见 DeleteResult (共享类型)。