在线授课接口定义.md 7.82 KB

接口定义

名词定义

  • 在线授课必备消息

在线授课必须的公用群名、群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"
}