在线授课接口定义.md 7.94 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_"
  },
...

1.显示学生、课程等信息

说明:授课客户端需要获取在线授课必备消息听课学生基本信息

显示学生信息,课程信息,饼图,柱状图

返回值里的course_type_ratio(饼图) 信息还未确定,暂返回空

接口地址:/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": 209
      },
      "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"
}
  1. 工单无效
{
  "data": {},
  "returnCode": 100,
  "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"
}

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:

{
  "data": {
    "group_id": "@TGS#2SMUBTAER",
    "chat_room_id": 359755386104019
  },
  "returnCode": 200,
  "returnMsg": "success"
}

7.获取课程所有资源列表

说明: 学生端调用,从学生端的课程列表可以获取到lesson_id

接口地址:/teaching/resource/lesson

请求方式:GET

Request params:

参数名 是否必须 说明 参数类型
lesson_id 课程id String

Response :

{
  "data": [
    "0a29673921a26ffb5e5ee81ffed45a9e",
    "0c8a151d1b5eb95bd435e2e1af23ea15",
    "2156d9b3f571381b3eca40d6e9d6e1cc",
    "22af685410291e76df2e0b515179bb93",
    "23dc1178bf9b5f813911f4e798949233",
    "2505c58ed415594b0962a02cc855ce7b",
    "280cb2c169eff53cd04dbc4caed663d7",
    "2b52068688fb49310ee65792fa80f23a",
    "2c23291d72ee1a458074c6e04a2111da",
    "2e09ea4a8505794d349c1b1e7c2279d6",
    "2e5bd36f36408a39357b90639705f924",
    "2f0869f7c35019d761213ee0d34422a6",
    "33abc4332ecbe980a7da3cc1f28e76e9",
    "3a42e6bb2eb602690fd51becb2ba6302",
    "4f11737d5c7562da8d2893bd64d9f303",
    "68e1850fc54e7b8a14eeedb18ce3a972",
    "6de6cb2ecaf671d6807ff028597b0706",
    "7590904c949e02bca26895905bc5682b",
    "7bbf27ff9373428efb30f8e59b0eec4d",
    "9e296b09b2a108b0c4dcc4e6a9d84c5b",
    "af6574194dffcaeb79b56adecb25d72f",
    "b0d670cc3c402f0dc4dfefde993ea4f4",
    "b36c3460d331effb69a082cf4314289d",
    "bdc788984f1f6aea411d9f143effe67e",
    "ca22f58a0149ce9de5a1d8b61995be9b",
    "ccc94e9cfa8647cbc01e2bca228811c7",
    "d484ebee3ce09c1218786aab008050c8",
    "d5152cd996886ee58008f7fc76eef751",
    "d99393b6cd1bd8d522f3d98fd46c7bd3",
    "e49d614b00d9f474b030e924c3ff05a8",
    "e77a984dc4cbf889c081f8a53a36f859"
  ],
  "returnCode": 200,
  "returnMsg": "success"
}