百家云双师课堂
产品文档 双师技术文档 双师课堂设备管理&排课接口

双师设备管理&排课API接口文档

说明

本文档主要用于双师课堂,包括给账号添加区域、指定教室和设备绑定关系等API接口。

请求域名

以下接口请求地址中的${private_domin}部分需要换成客户的专属域名,具体请参考 专属域名说明

接口

API-1: 添加校区

【功能描述】

给账号添加校区

【请求地址】

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/addZone

【请求参数】

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
zone_unique int 校区唯一编码,必须是数字
area_id int 校区所属城市ID
name string 校区名称,长度不能超过100个字符
address string 校区地址,长度不可超过255个字符
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

【返回参数】

参数 类型 示例 描述
zone_id int 123 校区ID

【返回示例】

{
    "code": 0,
    "data": {
        "zone_id": 4
    },
    "msg": "",
    "ts": 1516270753
}

API-2: 获取校区列表

【功能描述】

获取校区列表

【请求地址】

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/listZone

【请求参数】

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
page int 1 页码,从1开始
page_size int 10 每一页返回的条数,不得超过1000
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

【返回参数】

参数 类型 示例 描述
zone_id int 123 校区ID

【返回示例】

{
    "code": 0,
    "data": {
        "total": 2,
        "list": [
            {
                "zone_id": 5,
                "zone_unique": 131,
                "name": "北京网校",
                "address": "北京海淀区",
                "create_time": "2018-01-18 18:35:41"
            },
            {
                "zone_id": 1,
                "zone_unique": 1,
                "name": "湖北校区",
                "address": "清和广场",
                "create_time": "2018-01-18 11:05:06"
            }
        ]
    },
    "msg": "",
    "ts": 1516273179
}

API-3: 更新校区

【功能描述】

更新校区信息

【请求地址】

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/updateZone

【请求参数】

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
zone_id int 123 校区ID
area_id int 校区所属城市ID
name string 校区名称,长度不能超过100个字符
address string 校区地址,长度不可超过255个字符
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

【返回参数】

参数 类型 示例 描述
zone_id int 123 校区ID

【返回示例】

{
    "code": 0,
    "data": {
        "zone_id": 2
    },
    "msg": "",
    "ts": 1516279076
}

API-4: 删除校区

【功能描述】

删除校区,如果校区下有录入设备,则不能删除。

【请求地址】

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/deleteZone

【请求参数】

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
zone_id int 123 校区ID
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

【返回参数】

参数 类型 示例 描述
zone_id int 123 校区ID

【返回示例】

{
    "code": 0,
    "data": {
        "zone_id": 2
    },
    "msg": "",
    "ts": 1516279076
}

API-5: 获取设备列表

【功能描述】

获取设备列表

【请求地址】

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/listDevice

【请求参数】

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
zone_id int 校区ID,如果不传则是获取所有校区的设备
page int 1 页码,从1开始
page_size int 10 每一页返回的条数,不得超过1000
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

【返回参数】

参数 类型 示例 描述
device_id int 123 设备ID
device_unique string ADLK-EKJS-KLJA-AFDL 设备唯一标志
zone_id int 123 校区ID
user_role int 1 身份 0:学生 1:老师
class_name string 双师试讲教室 设备安装的教室名称
address string 湖北省武汉市洪山区 设备安装地址
create_time string 2018-01-19 13:00:23 添加时间
install_date string 2018-01-19 安装日期
first_active_date string 2018-01-19 初次激活日期
max_user int 10 最大人数
confirm_pic string 现场施工确认单
class_spot array 教室施工现场
province string 省份
city string 城市

【返回示例】

{
    "code": 0,
    "data": {
        "total": 1,
        "list": [
            {
                "device_id": 4,
                "device_unique": "AEFOIJ-23FKJ-23KJA-213",
                "zone_id": 3,
                "user_role": 0,
                "class_name": "湖北华图中禹厅",
                "address": "清河广场4楼",
                "create_time": "2018-01-19 10:34:56",
                "install_date": "2018-01-19",
                "first_active_date": "2018-01-19",
                "max_user": 10,
                "confirm_pic": "http://test-img.baijiayun.com/baijiacloud/1092645_xtor6wkq.jpg",
                "class_spot": [
                    "http://test-img.baijiayun.com/baijiacloud/1092645_xtor6wkq.jpg",
                    "http://test-img.baijiayun.com/baijiacloud/1092645_xtor6wkq.jpg",
                ],
                "province": "湖北",
                "city": "武汉"
            }
        ]
    },
    "msg": "",
    "ts": 1516332055
}

API-6: 更新双师设备信息

【功能描述】

更新双师设备信息

【请求地址】

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/updateDeviceInfo

【请求参数】

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
device_id int 123 设备号
class_name string 教室1 教室名
zone_id int 123 设备所在校区id
address string 武汉 设备安装地址
user_role int 1 身份 0:学生 1:老师
use_type int 1 1:使用排课系统 2:不使用排课系统
status int 1 设备禁用 0:正常 1:禁用
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

【返回参数】

参数 类型 示例 描述
device_id int 123 设备号

【返回示例】

{
    "code": 0,
    "data": {
        "device_id": 3
    },
    "msg": "",
    "ts": 1516270146
}

API-7: 给课程绑定设备

【功能描述】

给课程指定相关的老师或学生设备

【请求地址】

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/bindDevice

【请求参数】

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
room_id int 123234567124414 直播教室号
device_id int 123 设备号
user_role int 0 角色 0:学生 1:老师
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

【返回参数】

参数 类型 示例 描述
bind_id int 123 绑定成功的id号,用户可不用保存该值

【返回示例】

{
    "code": 0,
    "data": {
        "bind_id": 3
    },
    "msg": "",
    "ts": 1516270146
}

API-8: 批量给课程绑定学员设备

【功能描述】

批量给课程指定学员设备

【请求地址】

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/bindStudentDeviceBatch

【请求参数】

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
room_id int 123234567124414 直播教室号
device_ids string 123,456 设备号,多个设备号以英文逗号分隔
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

【返回参数】

参数 类型 示例 描述
succ_list array 123 绑定成功的设备id号,用户可不用保存该值

【返回示例】

{
    "code": 0,
    "data": {
        "succ_list": [
            11,
            13,
            12
        ]
    },
    "msg": "",
    "ts": 1516876352
}

API-9: 设备绑定多个课程

【功能描述】

批量给设备绑定多个课程

【请求地址】

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/bindRoomBatch

【请求参数】

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
room_ids string 1234,5678,4567 直播教室号
device_id int 1234 设备id
user_role int 0/1 0:学生端 1:老师端
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

【返回参数】

参数 类型 示例 描述
succ_list array [123,233] 成功的教室号

【返回示例】

{
    "code": 0,
    "data": {
        "succ_list": [
            123456789,
            232423424,
        ]
    },
    "msg": "",
    "ts": 1539064696
}

API-10: 解除课程与设备关联

【功能描述】

解除课程与设备的关联

【请求地址】

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/unbindDevice

【请求参数】

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
room_id int 123234567124414 直播教室号
device_id int 123 设备号
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

【返回参数】

参数 类型 示例 描述
bind_id int 123 绑定成功的id号,用户可不用保存该值

【返回示例】

{
    "code": 0,
    "data": {
        "bind_id": 3
    },
    "msg": "",
    "ts": 1516270146
}

API-11: 批量解除课程与设备关联

【功能描述】

解除课程与设备的关联

【请求地址】

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/unbindDeviceBatch

【请求参数】

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
room_id int 123234567124414 直播教室号
device_ids int 123 设备号
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

【返回参数】

参数 类型 示例 描述
bind_id int 123 绑定成功的id号,用户可不用保存该值

【返回示例】

{
    "code": 0,
    "data": {
        "count": 3
    },
    "msg": "",
    "ts": 1516270146
}

API-12: 更新课程绑定的全部学生端

【功能描述】

更新全部的学生端设备。相当于把之前的绑定关系清除掉,设置成当前这一批。

【请求地址】

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/setAllStudentDevice

【请求参数】

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
room_id int 123234567124414 直播教室号
device_ids string 123,456 设备号,多个设备号以英文逗号分隔
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

【返回参数】

参数 类型 示例 描述
count int 123 总共的学生端数量

【返回示例】

{
    "code": 0,
    "data": {
        "count": 3
    },
    "msg": "",
    "ts": 1516876352
}

API-13: 获取直播房间关联的设备信息

【功能描述】

获取直播房间关联的设备信息

【请求地址】

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/getRoomDeviceInfo

【请求参数】

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
room_id int 123 直播教室号
page int 1 页码,从1开始
page_size int 10 每一页返回的条数,不得超过1000
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

【返回参数】

参数 类型 示例 描述
device_id int 123 设备号
device_unique string AAAAA8BD7A3DF5C5869015854703D7F5 设备码
zone_id int 123 设备所在校区id
class_name string 教室1 教室名
address string 武汉 设备安装地址
user_role int 1 身份 0:学生 1:老师
use_type int 1 1:使用排课系统 2:不使用排课系统
status int 0 设备禁用 0:正常 1:禁用

【返回示例】

{
    "code": 0,
    "data": {
        "room_device_list": [
            {
                "device_id": 18,
                "device_unique": "F3CC854E3AB174DCC0EE2B1C17392F02",
                "zone_id": 12,
                "class_name": "教室",
                "address": "北京",
                "user_role": 0,
                "use_type": 2,
                "status": 0
            },
            {
                "device_id": 19,
                "device_unique": "FC986991E4C54C70E9796660D53EA9B4",
                "zone_id": 12,
                "class_name": "老师教室",
                "address": "武汉",
                "user_role": 1,
                "use_type": 1,
                "status": 0
            }
        ],
        'total':2
    },
    "msg": "",
    "ts": 1539064696
}

API-14: 获取设备最近一次激活记录

【功能描述】

获取设备列表

【请求地址】

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/getRecentActivateRecord

【请求参数】

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
device_id int 123 设备号
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

【返回参数】

参数 类型 示例 描述
device_id int 123 设备ID
device_unique string ADLK-EKJS-KLJA-AFDL 设备唯一标志
activate_record array 激活码激活记录

【返回示例】

{
    "code": 0,
    "data": {
            "device_id": 4,
            "device_unique": "AEFOIJ-23FKJ-23KJA-213",
            "activate_record":{
                 "activate_time": "2020-02-09 16:27:36",
                 "activate_length": 123,
            }
    },
    "msg": "",
    "ts": 1516332055
}

排课信息接口

排课信息接口,主要用于设置在双师教室里面显示的排课信息。回放的生成和裁剪加依据此排课信息进行。

每个课节需要有一个自己的序列号serial_number,每个课程下课节序列号需要唯一。

回放生成后会自动按排课信息来裁剪,裁剪后的回放与课节的关联,是通过room_id + serial_number来关联。

设备课程基本信息

设置/更新课程的标题、老师信息

请求地址

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/setRoomScheduleInfo

请求参数

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
room_id int 123 直播教室号
title string 英语 课程标题
teacher_name string 英语 课程老师
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

返回参数

{
    "code": 0,
    "data": null
}

更新教室课节信息(全量)

设置/更新课程整体的排课信息,该操作会覆盖课程下所有的课节

请求地址

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/setRoomSchedules

请求参数

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
room_id int 123 直播教室号
title string 英语 课程标题
teacher_name string 英语 课程老师
schedule string json格式的课节信息表
schedule[].serial_number string 课节编号,同一课程同一天的课节编号不可重复,更新排课信息时需要此编号
schedule[].date string 2018-11-15 日期,格式如:2018-01-03
schedule[].title string 课节标题
schedule[].start_time string 开始时间
schedule[].end_time string 结束时间
schedule[].teacher_name string 主讲老师姓名(非必填)
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

其中schedule是json格式的字符串,格式如下:

[
    {
        "date": "2018-11-19",
        "serial_number": 123,
        "title": "课节标题",
        "start_time": "09:00",
        "end_time": "09:45",
        "teacher_name": "老师名称"
    },
    {
        "date": "2018-11-19",
        "serial_number": 124,
        "title": "课节标题",
        "start_time": "10:00",
        "end_time": "10:45",
        "teacher_name": "老师名称"
    }
]

返回参数

{
    "code": 0,
    "data": null
}

添加单个课节

添加单个课节,同一教室同一天的serial_number不能与之前已存在的重复

请求地址

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/addSchedule

请求参数

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
room_id int 123 直播教室号
serial_number string 课节编号,同一课程同一天的课节编号不可重复,更新排课信息时需要此编号
date string 2018-11-15 日期,格式如:2018-01-03
title string 课节标题
start_time string 开始时间
end_time string 结束时间
teacher_name string 主讲老师姓名(非必填)
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

返回参数

返回示例

{
    "code": 0,
    "data": null,
    "msg": "",
    "ts": 1539064696
}

更新单个课节

更新单个课节,根据room_id + serial_number来唯一确定更新记录

请求地址

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/updateSchedule

请求参数

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
room_id int 123 直播教室号
serial_number int 课节编号,同一课程同一天的课节编号不可重复,更新排课信息时需要此编号
date string 2018-11-15 日期,格式如:2018-01-03
title string 课节标题
start_time string 开始时间
end_time string 结束时间
teacher_name string 主讲老师姓名(非必填)
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

删除课节(批量)

批量删除课节,根据room_id + serial_number来唯一确定删除的课节,serial_numbers可以传多个课节编号,以英文逗号分隔。

请求地址

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/deleteScheduleBatch

请求参数

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
room_id int 123 直播教室号
serial_numbers string 课节编号,同一课程同一天的课节编号不可重复,更新排课信息时需要此编号
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

返回参数

返回示例

{
    "code": 0,
    "data": null,
    "msg": "",
    "ts": 1539064696
}

清除指定教室下所有的课节

删除指定教室所有课节信息

请求地址

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/deleteAllSchedule

请求参数

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
room_id int 123 直播教室号
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

返回参数

返回示例

{
    "code": 0,
    "data": null,
    "msg": "",
    "ts": 1539064696
}

获取教室下所有的课节

获取指定教室下的所有课节信息

请求地址

https://${private_domain}.at.baijiayun.com/openapi/double_teacher/getAllSchedule

请求参数

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
room_id int 123 直播教室号
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

返回参数

返回示例

{
    "code": 0,
    "data": {
        "list": [
            {
                "id": 11,
                "partner_id": 37102096,
                "room_id": 18020796069152,
                "date": "2018-11-20",
                "title": "英文",
                "serial_number": 1,
                "start_time": "2018-11-20 20:20:00",
                "end_time": "2018-11-20 21:20:00",
                "teacher_name": "老虎",
                "create_time": "2018-11-20 20:23:24",
                "update_time": "2018-11-20 20:23:24"
            },
            {
                "id": 12,
                "partner_id": 37102096,
                "room_id": 18020796069152,
                "date": "2018-11-21",
                "title": "日语",
                "serial_number": 2,
                "start_time": "2018-11-21 10:00:00",
                "end_time": "2018-11-21 11:00:00",
                "teacher_name": "猴子",
                "create_time": "2018-11-20 20:32:36",
                "update_time": "2018-11-20 20:32:36"
            }
        ]
    },
    "msg": "",
    "ts": 1542717158
}

回调接口

新增设备回调

接口描述

新增设备后,百家云会回调通知客户,回调信息里包含新增的设备ID等信息。

如果回调失败,会在间隔5秒、60秒后分别重试两次,之后不再重试。

客户记录设备信息时因根据设备ID去重。

回调地址

需要联系百家云技术配置

回调参数

参数 类型 是否必填 示例 描述
type string add_device 添加设备:add_device
device_id int 123 设备号
device_unique string 设备唯一标志
zone_id int 123 校区ID
class_name string 0 设备安装的教室名
address string 0 设备安装地址
user_role int 0 角色 0:学生 1:老师
qid string 0 请求唯一标志,字符串
timestamp int 1460426400 当前时间,unix时间戳
sign string 签名

返回标准

合作方接收后应返回一段json,包含一个code,0表示成功,非0表示失败。

  • 成功示例
{
    "code": 0,
    "msg": ""
}
  • 失败示例
{
    "code": 1,
    "msg": "错误信息"
}

回放自动匹配回调

接口描述

该接口用于按排课信息自动匹配后的回调。

回调地址

需要联系百家云技术配置

请求参数

参数 类型 是否必填 示例 描述
partner_id int 123456 账号ID
room_id int 123 直播教室号
serial_number string 课节编号,同一课程同一天的课节编号不可重复,更新排课信息时需要此编号
session_id int 123132313 回放的session_id
video_id int 123 回放视频ID
status int 20 回放状态(30:转码失败 100:转码成功)
preface_url string 封面url,(转码成功回调才有)
total_size int 123 视频大小,单位是字节
total_transcode_size int 123 总视频大小(源文件+所有转码后文件)单位:字节(转码成功回调才有)
length int 123 视频时长,单位为秒(转码成功回调才有)
file_md5 string abcdefagea 视频文件md5值
now_definition string 当前已转出的清晰度,多种清晰度以英文逗号分隔 low/std/high/super/1080p(转码成功回调才有)
origin_definition string 原始视频清晰度 low/std/high/super/1080p(转码成功回调才有)
qid string 123456789 标记一次请求的唯一ID
timestamp int 1234567 unixstamp时间戳,秒数
sign string abcdefagea 签名字段

返回标准

合作方接收后应返回一段json,包含一个code,0表示成功,非0表示失败。

  • 成功示例
{
    "code": 0,
    "msg": ""
}
  • 失败示例
{
    "code": 1,
    "msg": "错误信息"
}