接口定义
名词定义
- 在线授课必备消息
在线授课必须的公用群名、群Id(授课指令用)以及聊天室Room的Id(音视频聊天用)
听课学生基本信息 Id、头像、昵称、目标、学习统计(词汇量、阅读量、听力时长、口语时长)
授课教师基本信息 Id,头像,昵称
获取用户访问Qcloud的identifier和签名
/user/me接口中增加返回值:
...
"qcloud": {
"identifier": "5de6f7a36339ef5bedc3dc8741a1e222",
"sign": "eJxFkN1ugkAQRt*F2zZ12R8Xe4doG9BGjZLaK4K7g6yUFWElYNN3LxJMb8*ZLzPf-Fi75fYlLgolo9hEpJTWq4Ws5x5DU6gSojgxUHbYZoxhhB62hrJSZ90JjGxmY4LQv1QStFGJ6oNMwjjhMRkTMoGEHUAKIoXDqR3bgDEeMpU6dsMf8y-P38xWp0nwbXahDg*e66U34be6qjd1VmdN6gZzAQ5-aszeXI9*6i7eQK3VjE61TZcB359QkKD3URhePqdbslq3eSBu-LLw89Fjmcyivva9GL1fTgljgzQqh54zh3DGKB94LMT5qk1k2gL6P-3*AfZQX20_"
},
...
0.统一状态码
- 设备未绑定成功 错误码:101 描述:设备未绑定成功
- deprecate
工单校验失败 错误码:102 描述:工单校验失败- 进入房间回调失败 错误码: 103 描述: 进入房间回调失败
1.显示学生、课程等信息
说明:授课客户端需要获取在线授课必备消息和听课学生基本信息
显示学生信息,课程信息,饼图,柱状图
接口地址:/teaching/student/info
请求方式:GET
Request params:
参数名 | 是否必须 | 说明 | 参数类型 |
---|---|---|---|
work_order_id | 是 | 工单id | Long |
腾讯云的用户identifier 为盒子鱼用户id的小写md5值
Response:
{
"data": {
"student_detail": {
"student_info": {
"real_name": "Mmm",
"figure_url": "http://avatars.boxfish.cn/user/12938/figure/1423708364.jpg",
"level": 6,
"level_name": "滔滔6级"
},
"lesson_info": {
"id": "L3NoYXJlL3N2bi_nvo7lm73or63mlocyLTEvMDAxLkV2ZW5pbmcgYXQgSG9tZS54bHN4",
"name": "Evening at Home",
"lastModified": 1448379647022,
"type": "全面提高",
"difficulty": "1.5",
"cover": "73dcb39a42bbfd6b3cc83b2569cf4bce"
},
"achievement_info": {
"read_word_count": "0词",
"listening_time": "0秒",
"record_time": "0秒",
"word_count": "3词"
},
"course_type_info": {
"course_type_ratio": [
{
"course_type": "Conversation",
"ratio": 0.1
},
{
"course_type": "Passage",
"ratio": 0.05
},
{
"course_type": "Function",
"ratio": 0.15
},
{
"course_type": "Phonics",
"ratio": 0.1
},
{
"course_type": "Examination",
"ratio": 0.1
},
{
"course_type": "Words",
"ratio": 0.1
},
{
"course_type": "Grammar",
"ratio": 0.2
},
{
"course_type": "Textbook",
"ratio": 0.1
},
{
"course_type": "Music",
"ratio": 0.1
}
],
"course_count": 324
}
},
"group_room_info": {
"group_name": "BOXFiSH Online Teaching Group",
"group_id": "@TGS#2SMUBTAER",
"chat_room_id": 359755386104019
}
},
"returnCode": 200,
"returnMsg": "success"
}
2.发推送 - 通知学生开始上课
说明:通知某次课程相应的学生准备上课,通过发送推送信息的方式通知给学生。推送的通知中应该包括在线授课必备消息和授课教师的基本信息
接口地址:/teaching/student/push
请求方式:GET
Request params:
参数名 | 是否必须 | 说明 | 参数类型 |
---|---|---|---|
work_order_id | 是 | 工单id | Long |
推送json:
{
"figure_url": "http://wx.qlogo.cn/mmopen/PiajxSqBRaEJrztQnGAk8X1G2A0AfjvPRBdgLFOjxsM9AoicoOUrH3Yia3qY9uic5ibQO6wMkJ6bPUx15IN4Vrxv8CA/0",
"teacher_name": "喜洋洋老师",
"teacher_id": "5",
"work_order_id": 34,
"group_name": "boxfish-class001",
"group_id": "@TGS#2AA4BQAEN",
"chat_room_id": "100001"
}
Response:
1.工单有效
{
"data": {
"msg_id": 3385486500,
"sendno": 1380240050,
"originalContent": "{\"sendno\":\"1380240050\",\"msg_id\":\"3385486500\"}",
"resultOK": true,
"rateLimitQuota": 600,
"rateLimitRemaining": 599,
"rateLimitReset": 60
},
"returnCode": 200,
"returnMsg": "success"
}
2.工单无效
(1) 未到上课时间
{
"data": {},
"returnCode": 10,
"returnMsg": "未到上课时间"
}
(2) 迟到未在上课时间
{
"data": {},
"returnCode": 20,
"returnMsg": "迟到未在上课时间"
}
(3) 不存在对应的工单
{
"data": {},
"returnCode": 1,
"returnMsg": "不存在对应的工单"
}
3.课程正常结束接口
接口地址:/teaching/student/finish
请求方式: POST
Request params:
参数名 | 是否必须 | 说明 | 参数类型 |
---|---|---|---|
work_order_id | 是 | 工单id | Long |
返回值:
{
"data": {},
"returnCode": 200,
"returnMsg": "success"
}
4.房间进入状态回调接口
说明:老师进入房间、学生进入房间各回调一次
接口地址:/teaching/callback/chat_room
请求方式:POST
Request body:
{
"userId":12938,
"type":"TEACHER",
"workOrderId": 34,
"chatRoomId":12345
}
Response
回调成功:
{
"data": {},
"returnCode": 200,
"returnMsg": "success"
}
回调失败:
{
"data": {},
"returnCode": 103,
"returnMsg": "进入房间回调失败"
}
5.客户端断线重连获取课程状态
说明:
接口地址:/teaching/course/status
请求方式:GET
Request params:
参数名 | 是否必须 | 说明 | 参数类型 |
---|---|---|---|
work_order_id | 是 | 工单id | Long |
Response:
{
"data": {
"recover": true
},
"returnCode": 200,
"returnMsg": "success"
}
6.学生端未收到上课推送主动发起上课接口
说明:
接口地址:/teaching/student/enter_class
请求方式:GET
Request params:
参数名 | 是否必须 | 说明 | 参数类型 |
---|---|---|---|
work_order_id | 是 | 工单id | Long |
Response:
1.工单有效
{
"data": {
"group_id": "@TGS#2SMUBTAER",
"chat_room_id": 359755386104019
},
"returnCode": 200,
"returnMsg": "success"
}
2.工单无效
(1) 未到上课时间
{
"data": {},
"returnCode": 10,
"returnMsg": "未到上课时间"
}
(2) 迟到未在上课时间
{
"data": {},
"returnCode": 20,
"returnMsg": "迟到未在上课时间"
}
(3) 不存在对应的工单
{
"data": {},
"returnCode": 1,
"returnMsg": "不存在对应的工单"
}
7.获取课程所有资源列表
说明: 学生端调用,从学生端的课程列表可以获取到lesson_id
接口地址:/teaching/resource/lesson
请求方式:GET
Request params:
参数名 | 是否必须 | 说明 | 参数类型 |
---|---|---|---|
lesson_id | 是 | 课程id | String |
Response :
{
"data": [
"0a29673921a26ffb5e5ee81ffed45a9e",
"0c8a151d1b5eb95bd435e2e1af23ea15",
"2156d9b3f571381b3eca40d6e9d6e1cc"
"23dc1178bf9b5f813911f4e798949233",
...
"e77a984dc4cbf889c081f8a53a36f859"
],
"returnCode": 200,
"returnMsg": "success"
}