课中数据获取接口
课中数据获取主要包括考勤情况、网络延迟、学生老师是否在线等。
本章接口列表:
数目 | 接口名称 | 接口说明 |
---|---|---|
1 | 获取学生、老师是否在线接口 | 该接口主要获取学生老师在线列表,通过该列表反应 |
2 | 用户进出记录获取接口 | 该接口主要是提供对学生和老师进出房记录的查询,可用于用户上课时长统计和考勤相关。 |
3 | 获取关键事件接口 | 获取用户(老师/学生) 进入教室、离开教室、上课、下课等关键事件信息。 |
4 | 获取网络延迟接口 | 获取用户(老师/学生) 进入教室、离开教室、上课、下课等关键事件信息。 |
5 | 学生签到查询接口 | 该接口提供大班课老师点名后的每次签名情况 |
6 | SDK获取课程状态接口 | 获取SDK机构下课程的状态 |
7 | 获取教室内求助信息接口 | 本接口提供获取课中课堂用户提交的求助信息列表。只限于在机构后台配置直播云的求助页的课堂才能获取(一般默认配置) |
8 | 获取用户的设备检测信息 | 该接口提供某节课堂下某个用户的设备具体信息,比如摄像头、麦克风和扬声器类型信息,另外提供用户的IP等信息。 |
9 | 获取讲次上下课时间及学生上课时长 | 该接口提供某节课上下课时间及学生上课时长 |
获取学生、老师是否在线接口
接口说明: 该接口主要获取学生老师在线列表,通过该列表反应
接口URl: /institution/get/lesson/onlineinfo
接口域名: http(s)://openapi.weclassroom.com (测试环境:http://test-openapi.weclassroom.com
)
验签规则请查看附录下验签代码示例
接口访问方式: POST
接口上传参数:
参数 | 说明 | 是否必填 | 类型 |
---|---|---|---|
applicationID | 下发机构key | 是 | string |
signMsg | 加密参数字符串 | 是 | string |
signMsg包含参数:
参数 | 类型 | 必填 | 参数说明 |
---|---|---|---|
lesson_id | INT | 是 | 课堂ID,用于标识该课节,如1000 |
institution_id | INT | 是 | 机构ID,直播云下发用于标识对接机构ID,如22 |
返回参数:
参数 | 类型 | 参数说明 |
---|---|---|
status | INT | 返回状态信息:1.成功 0.失败 |
msg | STRING | 对返回的状态信息的补充说明,如调用失败原因等 |
list | JSON数组 | JSON数组中每一个元素为在线用户信息,JSON数组格式:{“uid”:””,role:1}uid代表用户id,role为用户角色,1代表老师,2代表学生 |
成功示例:
{
"status": 1,
"msg": "",
"list": [{
"uid": 1001,
"role": 1
},
{
"uid": 1002,
"role": 2
}
]
}
用户进出记录获取接口
接口说明: 该接口主要是提供对学生和老师进出房记录的查询,可用于用户上课时长统计和考勤相关
注意事项: 该接口数据产生于下课事件触发之后,异步存储到数据库当中,数据入库有一定延时,所以建议在下课后的30分钟之后获取该数据。
接口URl: v2/data/lesson/inout(小班课与一对)
接口 URL: v2/data/big/lesson/inout(大班课)
接口域名: http(s)://openapi.weclassroom.com (测试环境:http://test-openapi.weclassroom.com
)
验签规则请查看附录下验签代码示例
接口访问方式: POST
接口上传参数:
参数 | 说明 | 是否必填 | 类型 |
---|---|---|---|
applicationID | 下发机构key | 是 | string |
signMsg | 加密参数字符串 | 是 | string |
signMsg包含参数:
参数 | 说明 | 是否必填 | 类型 | 示例 |
---|---|---|---|---|
institutionId | 机构ID | 是 | int | 123 |
lessonId | 机构课节ID | 是 | int | 123 |
返回参数:
参数 | 类型 | 参数说明 |
---|---|---|
status | INT | 返回状态信息:1.成功 0.失败 |
code | INT | 返回状态码,详见附录openapi code对照表 |
msg | STRING | 响应信息 |
data | 结构体 | 返回学生和老师数据,详见data主要参数说明 |
data参数说明:
参数 | 类型 | 参数说明 |
---|---|---|
用户ID | JSON | 具体内容为用户id,例如”123123132”:{ 具体的用户进出记录 },用户记录进出为JSON格式,详细参数见用户进出记录主要说明 |
用户进出记录参数说明:
参数 | 类型 | 参数说明 |
identity | INT | 标识用户角色:0: 学生;1: 老师 |
online | INT | 判断用户是否在线:0: 离线;1: 在线 |
inout | STRING数组 | 主要为用户进出记录如: [主要为用户进出记录如: ["i\|1541484720\|/control#c--ocjbnsGuqx2FsAP1o", "o\|1541484840\|/control#c--ocjbnsGuqx2FsAP1o"],格式代码信息如下:进出类型(i:进房,o:离开房间)\|进出时间(Unix时间戳格式)\|连接ID(用来标识不同的连接),如i\|1541484720\|/control#c--ocjbnsGuqx2FsAP1o,则为该用户在UnixTime 时间戳为1541484720,即北京时间2018/11/6 14:12:00时间进入,此时连接ID为/control#c--ocjbnsGuqx2FsAP1o,可用于标识用户不同的进出记录 |
成功示例:
{
"status": 1, // 返回状态, 0表示失败,1表示成功
"code": 10000, // 返回错误码,10000表示成功
"msg": "",
"data": {
"20160329": { // 用户ID
"identity": 0, // 标识学生还是老师,学生是0,老师是1
"online": 0, // 判断是否在线,1是在线,0是离线
"inout": [
// i 表示进入教室,o表示离开教室
// 1541484720表示进入教室的时间戳
// control#c--ocjbnsGuqx2FsAP1o用来标识同一次进出
"i|1541484720|/control#c--ocjbnsGuqx2FsAP1o",
"o|1541484840|/control#c--ocjbnsGuqx2FsAP1o"
]
},
"20160401": { // 用户ID
"identity": 1,
"online": 0,
"inout": [
"i|1541484780|/control#WRO0GajZ3W4ih2cBAP1r",
"o|1541484840|/control#WRO0GajZ3W4ih2cBAP1r"
]
}
},
"ltime": {
"actualStartTime": 1607938698,
"actualEndTime": 1607941026
}
}
获取关键事件接口
接口说明: 获取用户(老师/学生) 进入教室、离开教室、上课、下课等关键事件信息。
接口URl: v2/data/critical
接口域名: http(s)://openapi.weclassroom.com (测试环境:http://test-openapi.weclassroom.com
)
验签规则请查看附录下验签代码示例
请求方法: POST
限制说明: 该接口分页,每页数据2000条; 频次限制为20次/s;仅支持获取最近三天的数据
接口上传参数:
参数 | 说明 | 是否必填 | 类型 |
---|---|---|---|
applicationID | 下发机构key | 是 | string |
signMsg | 加密参数字符串 | 是 | string |
signMsg包含参数:
参数 | 说明 | 是否必填 | 类型 | 示例 |
---|---|---|---|---|
institutionId | 机构ID | 是 | int | 123 |
lessonId | 机构课堂ID | 是 | int | 123 |
page | 分页页数 | 是 | int | "xxx" |
data参数说明:
参数 | 类型 | 参数说明 |
---|---|---|
numperpage | INT | 分页每条数据 |
page | INT | 当前数据条数 |
sumpage | INT | 总页数 |
count | INT | 数据总条数 |
list | JSON数组 | 数组每个元素都存储一个发生的关键事件具体信息 关键事件的JSON格式示例加说明为: { "time": "2018-10-28 11:48:34",// 事件发生时间 "uid": "11383", // 用户ID "critical_code": 1011, "critical_name": "进入教室成功"//关键事件名称 }, |
成功示例:
{
"status": 1, // 返回状态, 0表示失败,1表示成功
"code": 10000, // 返回错误码,10000表示成功
"msg": "",
"data": {
"numperpage": 2000, //分页,每页数据条数
"page": 1, //分页,当前数据条数
"sumpage": 1, //分页,总页数
"count": 2, //分页,数据总条数
"list": [{
"time": "2018-10-28 11:48:34", // 事件发生时间
"uid": "11383", // 用户ID
"critical_code": 1011,
"critical_name": "进入教室成功" //关键事件名称
},
{
"time": "2018-10-28 11:49:46",
"uid": "5095734",
"critical_code": 1011,
"critical_name": "进入教室成功"
}
]
}
}
获取网络延迟接口
接口说明: 获取用户(老师/学生) 进入教室、离开教室、上课、下课等关键事件信息。
接口URl: v2/data/net/delay
接口域名: http(s)://openapi.weclassroom.com (测试环境:http://test-openapi.weclassroom.com
)验签规则请查看附录下验签代码示例
请求方法: POST
限制说明: 该接口分页,每页数据2000条; 频次限制为20次/s;仅支持获取最近三天的数据
接口上传参数:
参数 | 说明 | 是否必填 | 类型 |
---|---|---|---|
applicationID | 下发机构key | 是 | string |
signMsg | 加密参数字符串 | 是 | string |
signMsg包含参数:
参数 | 说明 | 是否必填 | 类型 | 示例 |
---|---|---|---|---|
institutionId | 机构ID | 是 | int | 123 |
lessonId | 课堂ID | 是 | int | 123 |
numperpage | 每页数 | 否 | int | |
page | 分页页数 | 否 | int |
返回参数:
参数 | 类型 | 参数说明 |
---|---|---|
status | INT | 返回状态信息:1. 成功 0. 失败 |
code | INT | 返回状态码,详见附录openapi code对照表 |
msg | STRING | 响应信息 |
count | INT | 数据总条数 |
data | JSON | 返回学生和老师数据,详见data主要参数说明 |
data参数说明:
参数 | 类型 | 参数说明 |
---|---|---|
numperpage | INT | 分页每条数据 |
page | INT | 当前数据条数 |
sumpage | INT | 总页数 |
count | INT | 数据总条数 |
list | JSON数组 | 数组每个元素都存储一个发生的上报网络延迟的具体信息 关键事件的JSON格式示例加说明为: { "time": "2018-10-28 11:50:14", //数据上报时间 "uid": "5095734", //用户ID "delay_max": "19", //最大网络延时 "delay_avg": "14" //平均网络延时 } |
成功示例:
{
"status": 1, // 返回状态, 0表示失败,1表示成功
"code": 10000, // 返回错误码,10000表示成功
"msg": "",
"data": {
"count": 2, //数据总条数
"list": [
{
"id": 1,
"pic_url": "http://www.baidu.com", //真实图片地址
"created_at": "2018-10-30 17:29:57"
},
{
"id": 2,
"pic_url": "http://www.baidu.com",
"created_at": "2018-10-30 17:29:57"
}
]
}
}
学生签到查询接口
接口说明: 该接口提供大班课老师点名后的每次签名情况。
接口URl: /institution/users/checkin
接口域名: http(s)://api.weclassroom.com (测试环境:http://test-api.weclassroom.com
) (老域名,可以使用但不再更新维护)
接口域名: http(s)://openapi.weclassroom.com (测试环境:http://test-openapi.weclassroom.com
)
验签规则请查看附录下验签代码示例
api接口和openapi接口统一请求方法: GET
api接口上传参数:
参数 | 类型 | 必填 | 参数说明 | 备注 |
---|---|---|---|---|
institution_id | INT | 是 | 机构ID | |
lesson_id | INT | 是 | 课程ID | |
third_token | STRING | 是 | 对接机构用于验签的TOKEN | 通用验签token |
openapi接口上传参数:
参数 | 说明 | 是否必填 | 类型 |
---|---|---|---|
applicationID | 下发机构key | 是 | string |
signMsg | 加密参数字符串 | 是 | string |
signMsg包含参数:
参数 | 说明 | 是否必填 | 类型 | 示例 |
---|---|---|---|---|
institution_id | 机构ID | 是 | int | 123 |
lesson_id | 课堂ID | 是 | int | 123 |
data参数:
参数 | 类型 | 名称 | 备注 |
---|---|---|---|
593_13_593_1556019383 | STRING | tkey | 单次签到的tkey |
106297 | STRING | 学生ID | 数组的值是签到时间 |
成功返回:
"status": 1,
"time": 1563348360,
"msg": "",
"data": {
"593_13_593_1556019383": { //单次签到的tkey
"106297": "2019-07-17 15:13:28", //学生id: 签到时间
"200231": "2019-07-17 15:13:35"
},
"593_13_593_1556019384": {
"200232": "2019-07-17 15:13:37",
"200233": "2019-07-17 15:13:32"
}
}
}
失败返回:
{
"status": 0,
"time": 1558948243,
"msg": [
"The lesson_id field is required." //lesson_id字段必填
]
}
SDK获取课程状态接口
接口说明: 获取SDK机构下课程的状态.
接口URl: /institution/lesson/status
接口域名: http(s)://api.weclassroom.com (测试环境:http://test-api.weclassroom.com
) (老域名,可以使用但不再更新维护)
接口域名: http(s)://openapi.weclassroom.com (测试环境:http://test-openapi.weclassroom.com
)(新域名,推荐使用)
验签规则请查看附录下验签代码示例
api接口和openapi接口请求方法: GET
api接口上传参数:
参数 | 类型 | 必填 | 参数说明 |
---|---|---|---|
institution_id | INT | 是 | 机构ID |
lesson_id | INT | 是 | 课程ID |
third_token | STRING | 是 | 对接机构用于验签的TOKEN |
openapi接口上传参数:
参数 | 说明 | 是否必填 | 类型 |
---|---|---|---|
applicationID | 下发机构key | 是 | string |
signMsg | 加密参数字符串 | 是 | string |
signMsg包含参数:
参数 | 说明 | 是否必填 | 类型 | 示例 |
---|---|---|---|---|
institution_id | 机构ID | 是 | int | 123 |
lesson_id | 课堂ID | 是 | int | 123 |
data参数:
参数 | 名称 | 类型 | 备注 |
---|---|---|---|
status | 课程状态 | Int | 课程状态:0正常(上课前) 1上课 2下课 |
成功返回:
{
"status": 1,
"time": 1563430693,
"msg": "",
"data": {
"status": 1 //课程状态 0正常(上课前) 1上课 2下课
}
}
失败返回:
{
"status": 0,
"time": 1558948243,
"msg": [
"The lesson_id field is required."
]
}
{
"status": 0,
"time": 1558948243,
"msg": "课程不存在"
}
获取教室内求助信息接口
接口说明:本接口提供获取课中课堂用户提交的求助信息列表。只限于在机构后台配置直播云的求助页的课堂才能获取(一般默认配置)
接口URL: help/get/pdata
接口域名: http(s)://api.weclassroom.com (测试环境:http://test-api.weclassroom.com
) (老域名,可以使用但不再更新维护)
接口域名: http(s)://openapi.weclassroom.com (测试环境:http://test-openapi.weclassroom.com
)(新域名,验签规则请查看附录下验签代码示例)
验签规则请查看附录下验签代码示例
api接口和openapi接口请求方式: POST
api接口上传参数:
参数 | 类型 | 是否必填 | 参数说明 |
---|---|---|---|
lesson_id | INT | 是 | 课堂ID,用于标识该课节 |
institution_id | INT | 是 | 机构ID,直播云下发用于标识对接机构 |
third_token | STRING | 是 | 对接机构用于验签的TOKEN |
openapi接口上传参数:
参数 | 说明 | 是否必填 | 类型 |
---|---|---|---|
applicationID | 下发机构key | 是 | string |
signMsg | 加密参数字符串 | 是 | string |
signMsg包含参数:
参数 | 说明 | 是否必填 | 类型 | 示例 |
---|---|---|---|---|
institution_id | 机构ID | 是 | int | 123 |
lesson_id | 课堂ID | 是 | int | 123 |
返回格式: JSON
返回参数说明:
参数 | 类型 | 参数说明 |
---|---|---|
status | INT | 返回状态信息:1.成功 0.失败 |
time | STRING | 接口返回时间 |
msg | STRING | 对返回的状态信息的补充说明,如调用失败原因等 |
data | JSON数组 | 返回,成功为JSON,具体参数详见下表 |
data JSON格式说明
参数 | 类型 | 参数说明 |
---|---|---|
id | INT | 求助项ID |
lesson_id | INT | 课节ID |
user_id | INT | y用户ID |
user_role | INT | 用户角色: 1 学生 2 老师 |
created_at | STRING | 提交求助时间,时间格式示例:2018-03-26 11:31:47 |
help_item_name | STRING | 求助项类别编号,一般为001,002等 |
help_item_text | STRING | 具体求助内容 |
note | STRING | 求助内容备注 |
item_info | STRING | 问题类型中文描述 |
item_info_eng | STRING | 问题类型英文描述 |
成功示例
{
"status": "1",
"time": "2019-07-12 17:22:39",
"data": [
{
"id": 10200,
"lesson_id": 219343926,
"user_id": 111800,
"user_role": 2,
"created_at": "2018-03-26 11:31:47",
"help_item_name": "002",
"help_item_text": "",
"note": "cavcdsv",
"help_item": "002",
"item_info": "网络问题",
"item_info_eng": "Internet problem"
},
{
"id": 10201,
"lesson_id": 219343926,
"user_id": 111800,
"user_role": 2,
"created_at": "2018-03-26 17:37:41",
"help_item_name": "006",
"help_item_text": "",
"note": "dwfdewf",
"help_item": "006",
"item_info": "涂鸦显示/操作异常",
"item_info_eng": "Graffiti display/operation exception"
}
]
}
获取用户的设备检测信息
接口说明: 该接口提供某节课堂下某个用户的设备具体信息,比如摄像头、麦克风和扬声器类型信息,另外提供用户的IP等信息。
接口URL: client/get/uidInfo
接口域名: http(s)://openapi.weclassroom.com (测试环境:http://test-openapi.weclassroom.com
)(新域名,推荐使用)
验签规则请查看附录下验签代码示例
接口请求方式: POST
接口上传参数:
参数 | 说明 | 是否必填 | 类型 |
---|---|---|---|
applicationID | 下发机构key | 是 | string |
signMsg | 加密参数字符串 | 是 | string |
signMsg包含参数:
参数 | 类型 | 是否必填 | 参数说明 |
---|---|---|---|
lesson_id | INT | 是 | 机构课堂ID, |
institution_id | INT | 是 | 机构ID,直播云下发用于标识对接机构 |
user_id | INT或者STRING | 是 | 要查询的用户ID |
返回格式: JSON
返回参数说明:
参数 | 类型 | 参数说明 |
---|---|---|
status | INT | 返回状态信息:1.成功 0.失败 |
time | STRING | 接口返回时间 |
msg | STRING | 对返回的状态信息的补充说明,如调用失败原因等 |
data | JSON数组 | 返回,成功为JSON,具体参数详见下表 |
data JSON参数格式说明
参数 | 类型 | 参数说明 |
---|---|---|
camera | JSON数组 | 用户摄像头信息 json参数实例说明: { "time": "2019-07-15 17:51:04",//数据上报时间 "device_name": "FaceTime 高清摄像头",//设备名称 "res": "正常",//设备状态简略描述 "res_detail": "摄像头设备可用"//设备状态具体描述 } |
mic | JSON数组 | 用户麦克风信息 json参数实例说明 { "time": "2019-07-15 17:51:04", "device_name": "内建麦克风", "res": "正常", "res_detail": "麦克风设备可用" } |
sk | JSON数组 | 用户扬声器信息 json参数实例说明 { "time": "2019-07-15 17:45:26", "device_name": "内建输出", "res": "正常", "res_detail": "扬声器或耳机设备可用" } |
camera_status | INT | 摄像头状态信息 |
mic_status | INT | 麦克风状态信息 |
sk_status | INT | 扬声器状态信息 |
device_info | JSON | 用户设备信息,包含用户的IP,客户端版本号等详见下表 |
device_info JSON格式说明
参数 | 类型 | 参数说明 |
---|---|---|
os | STRING | 操作系统 |
osv | STRING | 操作系统版本号 |
cpu | STRING | 用户CPU信息 |
mem | INT | 用户内存信息 |
cv | STRING | 当前软件版本号 |
device_type | INT | 设备类型编号 2 或者 5 - 电脑; 其他 - 手机 |
mv | STRING | 移动端机型版本号,仅限使用微信小程序用户获取 |
net | STRING | 网络类型,示例:WIFI |
ip | STRING | 用户IP |
cam | STRING | 摄像头信息 |
mic | STRING | 麦克风信息 |
sk | STRING | 扬声器信息 |
updated_at | STRING | 数据最后一次更新时间 |
成功示例:
{
"status":"1",
"time":1563184632,
"data":{
"camera":[
{
"time":"2019-07-15 17:51:04",
"device_name":"FaceTime 高清摄像头",
"res":"正常",
"res_detail":"摄像头设备可用"
}
],
"mic":[
{
"time":"2019-07-15 17:51:04",
"device_name":"内建麦克风",
"res":"正常",
"res_detail":"麦克风设备可用"
}
],
"sk":[
{
"time":"2019-07-15 17:51:04",
"device_name":"内建输出",
"res":"正常",
"res_detail":"扬声器或耳机设备可用"
}
],
"camera_status":1,
"mic_status":1,
"sk_status":1,
"device_info":{
"os":"mac",
"cpu":"Intel(R) Core(TM) i5-5350U CPU @ 1.80GHz",
"mem":"8192",
"osv":"18.2.0darwin_18.2.0_x86_64",
"cv":"1.6.6.24",
"mv":"",
"device_type":2,
"net":"WIFI",
"ip":"182.48.103.5",
"cam":"FaceTime 高清摄像头",
"mic":"内建麦克风",
"sk":"内建输出",
"updated_at":"2019-07-15 17:40:30"
}
}
}
获取讲次上下课时间及学生上课时长
接口说明: 该接口提供某节课上下课时间及学生上课时长。
接口URL: data/lesson/time
接口域名: http(s)://openapi.weclassroom.com (测试环境:http://test-openapi.weclassroom.com
)(新域名,推荐使用)
验签规则请查看附录下验签代码示例
接口请求方式: POST
接口上传参数:
参数 | 说明 | 是否必填 | 类型 |
---|---|---|---|
applicationID | 下发机构key | 是 | string |
signMsg | 加密参数字符串 | 是 | string |
signMsg包含参数:
参数 | 类型 | 是否必填 | 参数说明 |
---|---|---|---|
lessonId | INT | 是 | 课堂ID,用于标识该课节 |
institution_id | INT | 是 | 机构ID,直播云下发用于标识对接机构 |
返回格式: JSON
返回参数说明:
参数 | 类型 | 参数说明 |
---|---|---|
status | INT | 状态 |
code | INT | code码 详情见附录 |
msg | STRING | 提示语 |
start_time | STRING | 上课时间 |
end_time | STRING | 下课时间 |
lesson_id | STRING | 课节ID |
user_id | INT | 学生ID |
listen_time | INT | 该学生听课时长 |
成功示例:
"status": 1,
"code": 10000,
"msg": "",
"data": {
"start_time": "2018-07-25 15:49:34",
"end_time": "2018-07-25 23:59:59",
"lesson_id": "191817114",
"list": [
{
"user_id": 100078,
"listen_time": 35
}
]
}
}