回调接口是一个URL地址,通过HTTP/HTTPS协议访问,强烈建议使用HTTPS以增强安全性。 在回调接口开始开发前就可以约定好接口的URL发给伯索对接人进行配置。联系伯索业务人员 zyjtool系统中完成配置。
配置参数: liveEventCallBackUrl
填写 完整回调接口地址
HTTP头的状态码为200
HTTP头的Content-Type值为"application/json;charset=utf-8"异常返回
HTTP头的状态码为200
HTTP头的Content-Type值为"application/json;charset=utf-8"
HTTP消息体为json对象,格式为:{"code":404, "msg":"error reason"}
2.
回调消息的返回结果如果不符合预期,比如HTTP头状态码为400,503等,将自动在24小时内以不断递增的时间间隔重试5次。 5次发送回调都不成功,回调将不再重试。
3.
伯索的回调数据使用Json格式,包装在Post Body中以Post方式发送, HTTP头的Content-Type值为"application/json;charset=utf-8"
安全签名信息:
appId : 在申请接入时,伯索平台给予的appId
validBegin: 发送方发送请求时的Unix Epoch 时间戳,单位秒
validTime: 取固定值1200,单位秒
signature: 按照 签名加密 提供的方法返回的签名字符串
忽略安全签名信息,直接处理业务字段,也可以跑通业务流程。但是由于回调接口是暴露在公网上,为了防止欺诈攻击,在此强烈建议第三方的回调接口,对signature字段的签名进行强制认证:凡是签名不正确,或者当前 Unix Epoch 时间已超出validBegin + validTime有效期,都认为非法,返回400。
{
"eventInfo": "{\"eventType\":\"attendance\",\"meetingId\":26225987,\"events\":{\"teacherId\":\"0_19035\",\"users\":[{\"eventTime\":1778125370654,\"eventType\":1,\"userId\":\"0_19035\"}]}}"
}
eventInfo 本质上是一个Json字符串。通常转换为对象后,会有三个固定的结构体。events: 数组,事件详细内容 (需要参考下面三个不同的事件类型, 做区分)
一. 课堂出勤上下台事件 (eventType = "attendance")#
课堂开始后,一旦有成员加入/离开课堂,会触发出勤数据的回调。1.
事件报文格式说明 ( events可以转换的结构体)
teacherId: 字符串类型,主讲老师的Id
users:
[
{
"eventTime": int类型 时间时间戳,
"eventType": int类型 事件类型 1:进入 2:离开,
"userId": 字符串类型,学生/老师的用户Id值
}
]
{
"eventInfo": "{\"eventType\":\"attendance\",\"meetingId\":26225987,\"events\":{\"teacherId\":\"0_19035\",\"users\":[{\"eventTime\":1778125370654,\"eventType\":1,\"userId\":\"0_19035\"}]}}"
}
二. 一键召回事件 (eventType = "recall")#
1.
事件报文格式说明 ( events可以转换的结构体)
teacherId: 字符串类型,主讲老师的Id
operatorId: 字符串类型,发起召回的用户Id
content: 字符串类型,发起召回的内容
students:
[
{
"userId": 字符串类型,学生/老师的用户Id值
"attendStatus": int类型, 是否出勤过 1:出勤过 2:未出勤过
}
]
{
"appId": "zk",
"eventInfo": "{\"eventType\":\"recall\",\"meetingId\":26226039,\"events\":{\"teacherId\":\"0_19035\",\"operatorId\":\"19036\",\"content\":\"召回信息内容你好吗\",\"students\":[{\"userId\":\"10001\",\"attendStatus\":1},{\"userId\":\"10002\",\"attendStatus\":2}]}}"
}
三. 课堂缺勤事件 (eventType = "absence")#
1.
事件报文格式说明 ( events可以转换的结构体)
teacherId: 字符串类型,主讲老师的Id
users:
[
{
"groupId": int类型,课堂绑定班级id,
"assistantIds": 数组, 助教用户Id值ids,
"students": 数组
[
{
"userId": 字符串类型,学生的用户Id值
"attendStatus": int类型, 是否出勤过 1:出勤过 2:未出勤
}
]
}
]
{
"eventInfo":"{\"eventType\":\"absence\",\"meetingId\":26226072,\"events\":{\"teacherId\":\"0_19035\",\"users\":[{\"groupId\":1003104257,\"assistantIds\":[],\"students\":[{\"userId\":\"1_32662548\",\"attendStatus\":2},{\"userId\":\"1_32670490\",\"attendStatus\":1}]}]}}"
}