创建课节(单个)
创建课节,创建单个课节,需要提供 SID,safekey,timeStamp,课程 ID,课节名称,上课时间,下课时间,老师账号,老师姓名,云盘目录 ID,学生上台人数和录播等各部分详情,联席教师,教学模式,是否自动上台,是否开启第二摄像头、是否高清、唯一标识、课节简介、老师UID、联席教师UID、网页直播回放、允许未登录用户参与直播聊天和点赞。其中 SID、safeKey、timeStamp、courseId、className、beginTime、endTime、teacherUid 为必填项。返回创建成功后的课节 ID 和执行后的说明。
注意:目前仅支持 1v1 或者 1v6 高清、全高清,所以选择高清(即isHd等于1或者2)时,上台人数seatNum只能传1或者6 。当选择双摄模式时,即启用第二摄像头(即副摄像头,isDc等于3)时,只能选择1V1全高清(即seatNum只能传1。如果seatNum不等于1的话,则会返回错误码808)。
机构传入唯一标识courseUniqueIdentity后,该接口会校验机构下所有已创建课节中是否有此唯一标识,如果有,则返回之前创建成功的课节 ID及课节more_data。如果没有,则正常执行。
删除课节时,唯一标识courseUniqueIdentity也会被删除,如果您创建该课节时传了唯一标识courseUniqueIdentity的话。
注意事项:
- 如果课节设置录课(没有设置网页直播),则more_data返回 课节直播播放器地址 ,拉流地址为空;
- 如果课节设置录播、网页直播,则会给该课节绑定3个拉流地址(RTMP,HLS ,FLV),more_data返回课节直播播放器地址和拉流地址(不论该课节后续是否取消直播,这3个地址仍然存在且与该课节绑定);
- 如果课节没有设置录课,则more_data里的课节直播播放器地址和拉流地址均为空。
- 如果要设置录制现场,则必须设置录课,否则无法开启录制现场
附拉流地址优缺点对比,以下对比仅供参考。
RTMP | HLS | FLV(HTTP-FLV) | |
---|---|---|---|
全称 | Real Time Message Protocol | HTTP Liveing Streaming | RTMP over HTTP |
协议 | TCP 长连接 | HTTP 短连接 | HTTP 长连接 |
原理 | 每个时刻的数据收到后立刻转发 | 集合一段时间的数据,生成 ts 切片文件(三片),并更新 m3u8 索引 | 同 RTMP,使用 HTTP 协议(80 端口) |
延时 | 1-3s | 5-20s(依切片情况) | 1-3s |
Web 支持 | H5 中需要使用插件 | 支持 H5 | H5 中需要使用插件 |
其他 | 跨平台支持较差,需要 Flash 技术支持 | 播放时需要多次请求,对于网络质量要求高 | 需要 Flash 技术支持,不支持多音频流、多视频流,不便于 seek(即拖进度条) |
在返回的课节直播播放器页面我们植入了聊天室功能。为了方便您搜集潜在客户信息,所有用户需要填写手机号登陆后才可以聊天,如下图。当然,为了您更便捷的使用此功能,我们提供了您机构下所有学生免登陆的操作,请参考下方的 直播播放器中聊天室免二次登录。
直播播放器中聊天室免二次登录
- 当您通过本接口获得播放器链接之后
- 例:
https://www.eeo.cn/live.php?lessonKey=1ca102d29e61175f
- 您需要增加 account、nickname、checkCode 拼接在
https://live.eeo.cn/live_partner.html?lessonKey=00d1c98a91c52568
地址后边。 注意:这个免二次登录地址与直播播放器地址不是同一个地址
- 例:
- 具体参数及规则如下
- 具体参数有 secret、lessonKey、account、nickname、checkCode
- secret 为SECRET,在 EEO.cn API 对接密钥处可获得
- 从直播器地址中可以获得 lessonKey
- account 为学生账号(长度小于32个字符),nickname 为学生昵称(长度小于24个字符)
- checkCode = md5(secret+lessonKey+account+nickname)
- URL 拼接示例
https://live.eeo.cn/live_partner.html?lessonKey=00d1c98a91c52568&account=13700000000&nickname=classin&checkCode=d8c57caf088529b4ddd15b0f694d847b
URL
https://root_url/partner/api/course.api.php?action=addCourseClass
HTTP Request Methods
- POST
编码格式
- UTF-8
请求参数
key | 必填 | 更多限制 | 说明 | 规则说明 |
---|---|---|---|---|
SID | 是 | 无 | 机构认证 ID | 通过 eeo.cn 申请机构认证可获得 |
safeKey | 是 | 固定 32 位全小写字符 | 机构认证安全密钥 | safeKey=MD5(SECRET+timeStamp) |
timeStamp | 是 | 无 | 当前调用接口20分钟以内的 Unix Epoch 时间戳 | Unix Epoch 时间戳是 1970年1月1日 00:00:00 (世界标准时间) 起经过的秒数 |
courseId | 是 | 无 | 课程 ID | 无 |
className | 是 | 1-50个字符,不区分中英文,超过50会自动截取为50字 | 课节名称 | 无 |
beginTime | 是 | 开课时间须在3年以内 | 上课时间 | Unix Epoch 时间戳(秒单位) |
endTime | 是 | 无 | 下课时间 | Unix Epoch 时间戳(秒单位) |
teacherUid | 是 | 无 | 教师 UID | 注册用户接口返回的用户 UID |
folderId | 否 | 默认为课程的 folderId | 云盘目录ID | 无 |
teachMode | 否 | 默认为1,不传使用默认值,传错报100错误 | 教学模式,1=在线教室,2=智慧教室 | 当teachMode=2时,isAutoOnstage会始终被设置为1(也就是说,teachMode=2时,API会忽略传参isAutoOnstage的值) |
isAutoOnstage | 否 | 0=自动,1=不自动,默认为0,所有非1的数字,都会当成0处理 | 学生进入教室是否自动上台 | 无 |
seatNum | 否 | 默认为6,最大上限值调整为12 | 学生上台数 传0时为1V0课节(即台上只显示老师) |
无 |
isHd | 否 | 0=非高清,1=高清,2=全高清,默认为0,除了1和2,所有非0的数字,都会当成0处理 | 是否高清 | 目前仅支持 1V1 或 1V6 高清、全高清 |
isDc | 否 | 默认为0,不传或传错,都使用默认值 | 双摄模式,是否开启副摄像头,0=不开启,3=开启全高清副摄像头 | 如果isDc等于3,课节的台上人数不是1v1(即seatNum不等于1),则返回808错误 如果isDc等于3,且seatNum等于1的话,则isHd一定会被设置为2(即这种情况API会忽略isHd的传参值) |
assistantUid | 否 | 与assistantUids参数不能同时传。此参数传空时为删除助教。 | 联席教师 UID | 注册用户接口返回的用户 UID |
assistantUids | 否 | 与assistantUid 参数不能同时传。此参数为整型数组;如果传空数组时为删除助教 | 联席教师 UID 数组[1001002,1001003] | 注册用户接口返回的用户 UID |
record | 否 | 默认为 0 ,所有非 1 的数字,都会当成 0 处理 | 录课(0 关闭,1 开启) | 打开录课,classin会将教室互动直播场景录制下来,可用于网页直播或者网页回放。 若需要网页直播或者网页回放,则必须选择录课,否则无法开启网页直播、网页回放 |
recordScene | 否 | 默认为 0 ,所有非 1 的数字,都会当成 0 处理 | 录制现场(0 关闭,1 开启) | 打开录制现场,classin会将授课老师摄像头场景录制下来,可用于网页直播或者网页回放。 若需要现录制现场,则必须先打开录课,否则无法开启录制现场 |
live | 否 | 默认为 0 ,所有非 1 的数字,都会当成 0 处理 | 网页直播(0 关闭,1 开启) | 若需要网页直播,则必须开启录课 |
replay | 否 | 默认为 0 ,所有非 1 的数字,都会当成 0 处理 | 网页回放(0 关闭,1 开启) | 若需要网页回放,则必须开启录课 |
watchByLogin | 否 | 默认为 0 ,不传或传错,都使用默认值 | 只允许登录ClassIn账号后才可观看,未登录不可观看,0=未开启,1=开启 | 未开启录课、网页直播、网页回放中的两项及以上,此参数设置了也用不到 |
allowUnloggedChat | 否 | 默认为 1 ,不传或传错,都使用默认值 | 允许未登录用户参与直播聊天和点赞,0=不允许,1=允许 | 未开启录课和直播,此参数设置了也用不到 |
courseUniqueIdentity | 否 | 例如:45s8d5a6asaa1ssf(1-32 位字符,不符合规则的值接口会返回 100 错误) | 唯一标识 | 机构可传唯一标识,传入此值后,我们会检验机构下所有已创建课节中是否有该唯一标识 |
classIntroduce | 否 | 0-1000字,不区分中英文,超过1000会自动截取为1000字。 | 课节简介 | 无 |
响应参数
参数名 | 类型 | 示例值 | 含义 |
---|---|---|---|
data | number | 1340801 | 创建成功返回的课节 ID |
└ more_data | array | [] | 返回 Data 信息数组 |
└ live_url | string | https://www.eeo.cn/live.php?lessonKey=0fdc12bc3558164d | 课节直播播放器地址 |
└ live_info | array | [] | 返回 Data 信息数组 |
└ RTMP | string | "rtmp://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cd" | 直播拉流地址 |
└ HLS | string | "https://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96.m3u8?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cd" | 直播拉流地址 |
└ FLV | string | "https://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96.flv?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cd" | 直播拉流地址 |
error_info | object | 返回信息对象 | |
└ errno | number | 1 | 错误代码 |
└ error | string | "程序正常执行" | 错误详情 |
示例
- HTTP 请求
POST /partner/api/course.api.php?action=addCourseClass HTTP/1.1
Host: www.eeo.cn
Content-Type: application/x-www-form-urlencoded
Cache-Control: no-cache
SID=2339736&safeKey=e2f53f7a1b51bc86e52bbd080d8bf0f0&timeStamp=1493350659&courseId=490583&className=Chinese-10&beginTime=1493607694&endTime=1493609694&teacherUid=1001001&folderId=&seatNum=6&record=1&live=0&replay=1&assistantUids=[1001002,100004]&isAutoOnstage=0&isHd=0&courseUniqueIdentity=54421&classIntroduce=ClassIn,真正的在线教室&watchByLogin=0&allowUnloggedChat=1
- Shell cURL模拟请求指令
curl -H "Content-Type: application/x-www-form-urlencoded" -X "POST" \
-d "SID=1234567" \
-d "safeKey=0f7781b3033527a8cc2b1abbf45a5fd2" \
-d "timeStamp=1484719085" \
-d "courseId=442447" \
-d "className=测试课节-1" \
-d "beginTime=1492506000" \
-d "endTime=1492507800" \
-d "teacherUid=1001001" \
-d "folderId=22418" \
-d "isDc=0" \
-d "seatNum=6" \
-d "record=1" \
-d "recordScene=1" \
-d "live=1" \
-d "replay=1" \
-d "assistantUids=[1001002,1001003]" \
-d "isAutoOnstage=0" \
-d "isHd=0" \
-d "courseUniqueIdentity=4565234" \
-d "classIntroduce=ClassIn,真正的在线教室" \
-d "watchByLogin=0" \
-d "allowUnloggedChat=1" \
"https://root_url/partner/api/course.api.php?action=addCourseClass"
响应示例(正常时返回的 json
数据包示例)
{
"data": 23623,
"more_data": {
"live_url": "https://www.eeo.cn/live.php?lessonKey=0fdc12bc3558164d",
"live_info": {
"RTMP": "rtmp://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cd",
"HLS": "https://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96.m3u8?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cd",
"FLV": "https://liveplay.eeo.cn/eeolive/576f5a8c97d9-183291632119a96.flv?txSecret=f4bfe1afcf2592de61c11af9e0954c00&txTime=7d8d37cd",
}
},
"error_info": {
"errno": 1,
"error": "程序正常执行"
}
}
错误码说明
错误码 | 说明 |
---|---|
1 | 表示成功执行 |
100 | 表示参数不全或错误 |
102 | 表示无权限(安全验证没通过) |
104 | 表示操作失败(未知错误) |
114 | 表示服务器异常 |
119 | 表示结束时间须晚于开课时间 |
120 | 表示开课时间至少一分钟以后 |
136 | 表示机构下面没有该老师,请在机构下添加该老师 |
144 | 表示机构下无此课程 |
147 | 表示没有此课程信息 |
149 | 表示课程已删除 |
153 | 表示课程已过期 |
160 | 表示机构下无此云盘目录 |
165 | 表示单节课不能少于15分钟且不能超过24小时 |
172 | 表示课程下的学生不能添加为老师 |
173 | 表示课程下的旁听不能添加为老师 |
259 | 表示上台人数设置超出最大限制 |
268 | 表示课节开始时间超出允许范围(课节开始时间须在3年以内) |
280 | 表示课节创建成功,录课参数设置错误,录课开启失败 |
281 | 表示课节创建成功,视频服务有问题,录课开启失败 |
318 | 表示联席教师不是本机构老师 |
319 | 表示课程下的学生不能添加为联席教师 |
320 | 表示课程下的旁听不能添加为联席教师 |
322 | 表示课节老师不能添加为联席教师 |
323 | 表示联席教师购买课节失败 |
324 | 表示课节老师加入教师列表失败 |
326 | 表示课节联席教师加入教师列表失败 |
330 | 表示联席教师账号格式不正确(2022年4月去除此错误码) |
368 | 当前学生上台数不支持高清 |
369 | 该课程/课节类型暂不支持该操作 |
387 | 表示老师已被停用 |
388 | 表示联席教师已被停用 |
398 | 表示数据已经存在(唯一标识已存在) |
400 | 表示请求数据不合法 |
454 | 课节起止时间与系统维护时间有重叠 |
460 | 表示课程或课节正在被其他请求创建(并发创建会遇到) |
800 | 表示老师被停用中 |
804 | 表示联席教师被停用中 |
824 | 表示课节添加成功,课节简介设置失败 |
808 | 表示该设置不支持双摄 |
884 | 老师帐号已注销 |
885 | 联席教师帐号已注销 |
21316 | 联席教师数据有重复 |
21317 | 联席教师数量超出限制 |
121601001 | 存在当前版本不支持的设置项 |
121601002 | 操作成功,[在线教室]资源已超出用量,为防止业务受影响,请尽快联系客户经理 |
121601003 | 您当月累计创建课节已达当月上限,无法继续创建,升级账号获取更多权益 |
121601004 | 您当月累计创建课节已达当月上限,无法继续创建 |
121601005 | 不支持设网页直播 |
121601006 | 不支持设置录制现场 |
121601007 | 台上人数参数错误 |
121601008 | 不支持设置联席教师 |
121601009 | 不支持设置网页回放 |
121601010 | 不支持设置录课 |
121601011 | 不支持设置双摄模式 |
121601012 | 清晰度超出限制 |