配置学员提问客户回调地址
更新时间:2026-05-12 09:49:50
接口描述
按账号维度保存或更新「学员提问」成功后,服务端异步 POST 通知的客户地址(Webhook URL)。 学员在聊天室通过 WebSocket 发送 S_QUESTION 且服务端完成入库与广播后,会向该 URL 推送一条 JSON(含签名);客户可在收到后自行调用讲师 HTTP 回复等能力。 接口支持 HTTPS 协议。
接口URL
https://api.polyv.net/live/v5/chat/redirect/channel/student-question-webhook/post
请求方式
POST
接口约束
1、接口同时支持 HTTP、HTTPS,建议使用 HTTPS。
3、**callbackUrl** 须为合法 http / https 完整地址(校验规则与站内 url 类型一致),且需能被聊天服务所在网络访问;保存成功后,同账号下会失效 Redis 缓存,下一次读取走数据库再回写缓存。
4、同一账号仅保留一条配置;重复调用本接口为覆盖更新。
请求参数描述
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| appId | true | String | 账号appId【详见获取密钥】 |
| timestamp | true | Long | 当前13位毫秒级时间戳,3分钟内有效 |
| sign | true | String | 签名,为32位大写的MD5值,生成签名的appSecret密钥作为通信数据安全的关键信息,严禁保存在客户端直接使用,所有API都必须通过客户自己服务器中转调用POLYV服务器获取响应数据【详见签名生成规则】 |
| roomId | true | String | 频道号,用于校验该频道是否属于当前账号 |
| callbackUrl | true | String | 客户接收学员提问通知的完整 URL(http 或 https) |
示例
请求体 JSON:
{
"roomId": "412738",
"callbackUrl": "https://your-server.example.com/api/polyv/student-question"
}
响应体 JSON(成功):
{
"code": 200,
"status": "success",
"message": "保存成功",
"data": ""
}
响应参数描述
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | Integer | 200 成功;400 参数校验失败;500 业务或服务异常 |
| status | String | success / fail / error |
| message | String | 如「保存成功」或错误说明 |
| data | String | 成功时多为空字符串 |
配置生效后:服务端对客户的 POST 说明(非本接口,供联调)
当学员 S_QUESTION 成功后,服务端会向已保存的 callbackUrl 发起 POST,**Content-Type: application/json**,主要字段包括:
| 字段名 | 说明 |
|---|---|
| accountId | 频道所属账号 ID |
| roomId | 频道号 |
| questionId | 提问记录 ID |
| sessionId | 场次 ID |
| viewerUserId | 提问观众 userId |
| content | 提问正文(与站内编码规则一致) |
| msgType | 消息类型,文本可为空字符串等 |
| askUser | 对象,含 userId、nick、pic 等展示字段 |
| timestamp | 毫秒时间戳,参与签名 |
| sign | 签名:规则与站内 polyvChatSign 一致(首尾拼接密钥,中间为按 key 字典序的 key+value,对象 JSON.stringify),密钥为 **polyvlog**,算法 MD5 大写(与 createApiSign('polyvlog', data) 一致) |
客户接口须在响应 JSON 中返回 **code: 200**(number),否则服务端记为通知失败并打错误日志,不重试。
异常示例
参数校验失败(如 callbackUrl 非法):
{
"code": 400,
"status": "fail",
"message": "…(与 checkDataType 返回一致)"
}
roomId 与账号不匹配:
{
"code": 400,
"status": "fail",
"message": "roomId非法"
}
未传 x-auth-user-id:
{
"code": 400,
"status": "fail",
"message": "accountId is required"
}
服务端异常:
{
"code": 500,
"status": "error",
"message": "unknown error"
}
(具体 message 以实际为准。)
