跳到主要内容

课堂管理与诊断

控制台客户端配置 · 返回值与共享类型

课堂支持实时课与直播课。创建课堂传入名称、老师、计划开始时间和 durationMinutes。计划结束时间由服务端计算。update 在开课前修改课堂配置,必填 classroomId、name、teacherEduUserId;开始时间、课时时长和课件绑定不通过该接口修改。

replaceStudents 覆盖学生名单。bindCoursewares 将课件绑定到课堂,addWhiteboardCourseware 将已就绪且已绑定的课件添加到白板;requestId 标识该操作。unbindCoursewares 只解除绑定。

listEnteredUsers 查询实际进课用户。listJoinAttempts 使用游标分页;getEnteredUserTrace 分别返回事件分页 eventPage 与会话分页 sessionsPage,下一页分别使用 cursor 与 sessionsCursor。attemptId 用于指定一次进课尝试。导出轨迹时收集两类分页并将结果写为 JSON。

出勤记录按成员和时间段返回。课堂仍在进行时,未闭合区间以 open=true 标识,不计入累计时长。直播源 kind 包括 device、file、push、pull。播放凭证返回 status、relayVersion、streams,无就绪流时流列表为空。

应用后端使用应用业务接口和应用凭证。本页描述独立的租户管理调用。

classrooms.list​

课堂列表。

GET /v1/classrooms

鉴权:租户 Bearer Token 与 x-app-id。

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

输入: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单页数量

返回:ListClassroomsResult。嵌套字段见共享类型。

classrooms.get​

课堂详情。

GET /v1/classrooms/detail

鉴权:租户 Bearer Token 与 x-app-id。

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

输入:ClassroomIdInput。 字段放在 URL 查询参数中。

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

返回:ClassroomRecord。嵌套字段见共享类型。

classrooms.create​

创建课堂。

POST /v1/classrooms

鉴权:租户 Bearer Token 与 x-app-id。

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

输入: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 配置对象

返回:ClassroomRecord。嵌套字段见共享类型。

classrooms.update​

修改课堂。

PATCH /v1/classrooms/update

鉴权:租户 Bearer Token 与 x-app-id。

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

输入: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 配置对象

返回:ClassroomRecord。嵌套字段见共享类型。

classrooms.start​

开始课堂。

POST /v1/classrooms/start

鉴权:租户 Bearer Token 与 x-app-id。

语言调用
Node.jsc.classrooms.start(appId, input)
Pythonc.classrooms.start(app_id, **input)
Javac.classrooms.start(appId, input)
Goc.Classrooms.Start(ctx, appID, input, &result)
PHP$c->classrooms->start($appId, $input)

输入:ClassroomIdInput。 字段放在 JSON Body 中。

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

返回:ClassroomRecord。嵌套字段见共享类型。

classrooms.end​

结束课堂。

POST /v1/classrooms/end

鉴权:租户 Bearer Token 与 x-app-id。

语言调用
Node.jsc.classrooms.end(appId, input)
Pythonc.classrooms.end(app_id, **input)
Javac.classrooms.end(appId, input)
Goc.Classrooms.End(ctx, appID, input, &result)
PHP$c->classrooms->end($appId, $input)

输入:ClassroomIdInput。 字段放在 JSON Body 中。

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

返回:ClassroomRecord。嵌套字段见共享类型。

classrooms.listMembers​

课堂成员。

GET /v1/classrooms/members

鉴权:租户 Bearer Token 与 x-app-id。

语言调用
Node.jsc.classrooms.listMembers(appId, input)
Pythonc.classrooms.list_members(app_id, **input)
Javac.classrooms.listMembers(appId, input)
Goc.Classrooms.ListMembers(ctx, appID, input, &result)
PHP$c->classrooms->listMembers($appId, $input)

输入:ClassroomIdInput。 字段放在 URL 查询参数中。

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

返回:ListClassroomMembersResult。嵌套字段见共享类型。

classrooms.addMember​

添加课堂成员。

POST /v1/classrooms/members

鉴权:租户 Bearer Token 与 x-app-id。

语言调用
Node.jsc.classrooms.addMember(appId, input)
Pythonc.classrooms.add_member(app_id, **input)
Javac.classrooms.addMember(appId, input)
Goc.Classrooms.AddMember(ctx, appID, input, &result)
PHP$c->classrooms->addMember($appId, $input)

输入:AddMemberInput。 字段放在 JSON Body 中。

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

返回:MembershipResult。嵌套字段见共享类型。

classrooms.replaceStudents​

覆盖学生名单。

PUT /v1/classrooms/members/students

鉴权:租户 Bearer Token 与 x-app-id。

语言调用
Node.jsc.classrooms.replaceStudents(appId, input)
Pythonc.classrooms.replace_students(app_id, **input)
Javac.classrooms.replaceStudents(appId, input)
Goc.Classrooms.ReplaceStudents(ctx, appID, input, &result)
PHP$c->classrooms->replaceStudents($appId, $input)

输入:ReplaceStudentsInput。 字段放在 JSON Body 中。

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

返回:SetClassroomStudentsResult。嵌套字段见共享类型。

classrooms.listCoursewares​

课堂课件列表。

GET /v1/classrooms/coursewares

鉴权:租户 Bearer Token 与 x-app-id。

语言调用
Node.jsc.classrooms.listCoursewares(appId, input)
Pythonc.classrooms.list_coursewares(app_id, **input)
Javac.classrooms.listCoursewares(appId, input)
Goc.Classrooms.ListCoursewares(ctx, appID, input, &result)
PHP$c->classrooms->listCoursewares($appId, $input)

输入:ClassroomIdInput。 字段放在 URL 查询参数中。

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

返回:ClassroomCoursewaresResult。嵌套字段见共享类型。

classrooms.bindCoursewares​

绑定课堂课件。

POST /v1/classrooms/coursewares

鉴权:租户 Bearer Token 与 x-app-id。

语言调用
Node.jsc.classrooms.bindCoursewares(appId, input)
Pythonc.classrooms.bind_coursewares(app_id, **input)
Javac.classrooms.bindCoursewares(appId, input)
Goc.Classrooms.BindCoursewares(ctx, appID, input, &result)
PHP$c->classrooms->bindCoursewares($appId, $input)

输入:BindCoursewaresInput。 字段放在 JSON Body 中。

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

返回:BindCoursewaresResult。嵌套字段见共享类型。

classrooms.unbindCoursewares​

解绑课堂课件。

DELETE /v1/classrooms/coursewares

鉴权:租户 Bearer Token 与 x-app-id。

语言调用
Node.jsc.classrooms.unbindCoursewares(appId, input)
Pythonc.classrooms.unbind_coursewares(app_id, **input)
Javac.classrooms.unbindCoursewares(appId, input)
Goc.Classrooms.UnbindCoursewares(ctx, appID, input, &result)
PHP$c->classrooms->unbindCoursewares($appId, $input)

输入:BindCoursewaresInput。 classroomId 放在查询参数中,其余字段放在 JSON Body 中。

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

返回:UnbindCoursewaresResult。嵌套字段见共享类型。

classrooms.listWhiteboardCoursewares​

白板课件列表。

GET /v1/classrooms/whiteboard/coursewares

鉴权:租户 Bearer Token 与 x-app-id。

语言调用
Node.jsc.classrooms.listWhiteboardCoursewares(appId, input)
Pythonc.classrooms.list_whiteboard_coursewares(app_id, **input)
Javac.classrooms.listWhiteboardCoursewares(appId, input)
Goc.Classrooms.ListWhiteboardCoursewares(ctx, appID, input, &result)
PHP$c->classrooms->listWhiteboardCoursewares($appId, $input)

输入:ClassroomIdInput。 字段放在 URL 查询参数中。

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

返回:WhiteboardCoursewaresResult。嵌套字段见共享类型。

classrooms.addWhiteboardCourseware​

添加课件到白板。

POST /v1/classrooms/whiteboard/coursewares

鉴权:租户 Bearer Token 与 x-app-id。

语言调用
Node.jsc.classrooms.addWhiteboardCourseware(appId, input)
Pythonc.classrooms.add_whiteboard_courseware(app_id, **input)
Javac.classrooms.addWhiteboardCourseware(appId, input)
Goc.Classrooms.AddWhiteboardCourseware(ctx, appID, input, &result)
PHP$c->classrooms->addWhiteboardCourseware($appId, $input)

输入:AddWhiteboardCoursewareInput。 字段放在 JSON Body 中。

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

返回:ClassroomWhiteboardCoursewareRecord。嵌套字段见共享类型。

classrooms.attendance​

课堂出勤记录。

GET /v1/classrooms/attendance

鉴权:租户 Bearer Token 与 x-app-id。

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

输入:AttendanceInput。 字段放在 URL 查询参数中。

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

返回:AttendanceResult。嵌套字段见共享类型。

classrooms.listEnteredUsers​

实际进课用户。

GET /v1/classrooms/entered-users

鉴权:租户 Bearer Token 与 x-app-id。

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

输入:EnteredUsersInput。 字段放在 URL 查询参数中。

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

返回:ListClassroomEnteredUsersResult。嵌套字段见共享类型。

classrooms.listJoinAttempts​

进课尝试。

GET /v1/classrooms/join-attempts

鉴权:租户 Bearer Token 与 x-app-id。

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

输入: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单页数量

返回:ListClassroomJoinAttemptsResult。嵌套字段见共享类型。

classrooms.getEnteredUserTrace​

用户进课轨迹。

GET /v1/classrooms/entered-users/trace

鉴权:租户 Bearer Token 与 x-app-id。

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

输入:EnteredUserTraceInput。 字段放在 URL 查询参数中。

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

返回:ClassroomEnteredUserTrace。嵌套字段见共享类型。

classrooms.getLiveSource​

直播源详情。

GET /v1/classrooms/live-source

鉴权:租户 Bearer Token 与 x-app-id。

语言调用
Node.jsc.classrooms.getLiveSource(appId, input)
Pythonc.classrooms.get_live_source(app_id, **input)
Javac.classrooms.getLiveSource(appId, input)
Goc.Classrooms.GetLiveSource(ctx, appID, input, &result)
PHP$c->classrooms->getLiveSource($appId, $input)

输入:ClassroomIdInput。 字段放在 URL 查询参数中。

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

返回:LiveSourceRecord。嵌套字段见共享类型。

classrooms.setLiveSource​

设置直播源。

PUT /v1/classrooms/live-source

鉴权:租户 Bearer Token 与 x-app-id。

语言调用
Node.jsc.classrooms.setLiveSource(appId, input)
Pythonc.classrooms.set_live_source(app_id, **input)
Javac.classrooms.setLiveSource(appId, input)
Goc.Classrooms.SetLiveSource(ctx, appID, input, &result)
PHP$c->classrooms->setLiveSource($appId, $input)

输入:SetLiveSourceInput。 字段放在 JSON Body 中。

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

返回:LiveSourceRecord。嵌套字段见共享类型。

classrooms.issueLivePushCredential​

推流凭证。

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

鉴权:租户 Bearer Token 与 x-app-id。

语言调用
Node.jsc.classrooms.issueLivePushCredential(appId, input)
Pythonc.classrooms.issue_live_push_credential(app_id, **input)
Javac.classrooms.issueLivePushCredential(appId, input)
Goc.Classrooms.IssueLivePushCredential(ctx, appID, input, &result)
PHP$c->classrooms->issueLivePushCredential($appId, $input)

输入:ClassroomIdInput。 字段放在 JSON Body 中。

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

返回:LivePushCredential。嵌套字段见共享类型。

classrooms.getLivePlayCredentials​

直播播放凭证。

GET /v1/classrooms/live/play-credentials

鉴权:租户 Bearer Token 与 x-app-id。

语言调用
Node.jsc.classrooms.getLivePlayCredentials(appId, input)
Pythonc.classrooms.get_live_play_credentials(app_id, **input)
Javac.classrooms.getLivePlayCredentials(appId, input)
Goc.Classrooms.GetLivePlayCredentials(ctx, appID, input, &result)
PHP$c->classrooms->getLivePlayCredentials($appId, $input)

输入:ClassroomIdInput。 字段放在 URL 查询参数中。

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

返回:LivePlayCredentials。嵌套字段见共享类型。