Chat Js Sdk Api
创建实列
相关参数说明
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
roomId | true | string | 频道号 |
userId | true | string | 用户唯一id,生成建议 |
pic | true | string | 用户头像,须以 'http' 或者 'https' 开头的绝对地址 |
nick | false | string | 用户昵称,默认为‘游客’ |
actor | false | string | 用户头衔,默认‘学生’ |
userType | false | string | 用户类型,默认为student,三分屏场景下学员需设置为slice 普通学员:student 云课堂学员:slice 讲师:teacher 管理员:manager 助教:assistant 嘉宾:guest |
accountId | false | string | 直播账号userId,用于开启全局严禁词和图片表情消息功能 |
token | true | string | 校验码 |
mediaChannelKey | true | string | 连麦相关参数 |
version | false | string | 版本号,默认为2.0 |
roomMessage | false | function | 聊天室消息回调函数 |
enableReplay | false | boolean | 开启内容回复,默认为false |
enableRedpack | false | boolean | 是否展示红包消息 |
handlerEvent | false | function | 点击红包消息的回调,(type, data) type: '', 红包事件类型,可选:clickRedpacket data: '' 当前点击的红包数据 |
customRedpackLabel | false | object | 红包文案配置 { passwordTitle: '输入口令,领取红包(custom)', noReceive: '领取红包(custom)', normalType: '普通红包(custom)', passwordType: '口令红包(custom)', rainType: '红包雨(custom)', } |
customRedpackImg | false | object | 红包图片配置 { normalEntranceImg: '', 普通红包封面图片 passwordEntranceImg: '', 口令红包封面图片 rainEntranceImg: '', 红包雨封面图片 } |
container | false | string | DOM选择器,HTML元素,用于嵌入默认聊天室样式 |
isMobile | false | boolean | 是否使用移动端样式, 默认值根据当前UA判断是否为移动端 |
注:以下参数只有在传了container参数时才生效
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
width | false | number | container宽度,默认300px |
height | false | number | container高度,默认600px |
showUserList | false | boolean | 是否显示在线列表。PC端默认开启,移动端默认关闭。当关闭时,tabData若含有在线列表对象也不显示 |
enableSetNickname | false | boolean | 是否开启设置昵称功能,默认为false |
enableWelcome | false | boolean | 是否开启欢迎语,默认为true |
enableFlower | false | boolean | 是否开启送花功能,默认为true |
enableLike | false | boolean | 是否开启点赞,默认为true |
enableOnlyTeacher | false | boolean | 是否开启只看讲师功能,默认为true |
enableBulletin | false | boolean | 是否开启公告,默认为true |
enableAsk | false | boolean | 是否开启提问,默认为true |
tabData | false | array | 自定义菜单栏 |
customChatColor | false | object | 自定义消息颜色 |
apiPrefix | false | object | 自定义域名 |
enableRewardAnimation | false | boolean | 是否开启打赏动画效果,默认为true |
enableUpdatePageviews | false | boolean | 是否开启热度更新,默认为true |
getChatRecordBySessionIdOptions | false | object | 根据传入的sessionId获取聊天记录说明 |
getChatRecordByTimeOptions | false | object | 根据传入的时间获取聊天记录说明 |
showOwnInfo | false | boolean | 是否显示自己的聊天消息的头像、头衔、昵称,默认为false |
enableViewBigPicture | false | boolean | 是否支持查看大图,默认为false |
customViewPicture | false | function | 自定义查看大图方法,需要开启enableViewBigPicture |
customMessageRender | false | object | 自定义消息渲染函数对象说明 |
enableBadWordsTip | false | boolean | 是否开启严禁词提示,默认false |
enableCustomMessage | false | boolean | 是否显示http接口发送的自定义消息,默认false |
enableFontSize | false | boolean | 是否开启字体设置功能,默认false,可设置三种字体大小,sm:12px, md:14px,lg:16px |
enableReplay | false | boolean | 是否开启引用回复,默认false |
newMsgTipText | false | string | 新消息提示自定义中文文案 |
newMsgTipTextEn | false | string | 新消息提示自定义英文文案 |
lang | false | string | 中英文,可选 |
param4 | false | string | POLYV系统参数 |
param5 | false | string | POLYV系统参数 |
### userId 生成建议 |
userId
是聊天室中的用户唯一标识,两个相同的 userId
登入聊天室后,后者会将前者踢出聊天室,因此不同的聊天室用户的 userId
需要具有唯一性,生成建议如下:
如果您有用户系统,则使用用户系统中的用户 id 作为登入聊天室的
userId
。如果您没有用户系统,则在后端生成高度随机的值作为登入聊天室的
userId
,如:「时间戳 +5 位随机数」、uuid 等,并将该userId
保存到 cookie 或本地存储(localStorage 或 sessionStorage)中,避免每次刷新页面后重新生成userId
。
自定义菜单栏
tabData: 对象数组,每个对象包含两个属性name,type,默认包含聊天tab
name: 菜单栏名称
type: 菜单栏类型,若不是已有内置类型,会嵌入一个不包含任何内容的div元素到页面
已有内置类型
type | 说明 |
---|---|
chat | 互动聊天 |
user-list | 在线列表 |
ask | 提问 |
自定义消息颜色
说明:修改消息字体/背景颜色,可针对自己/普通用户/管理员/讲师/助教/嘉宾修改
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
selfBgColor | false | string | 自己消息背景颜色,默认为 #8bc34a |
selfColor | false | string | 自己消息颜色,默认为 #fff |
otherBgColor | false | string | 普通用户消息背景颜色,默认为 #fff |
otherColor | false | string | 普通用户消息颜色,默认为 #546e7a |
specialBgColor | false | string | 特殊用户消息背景颜色,可以统一设置管理员/讲师/助教/嘉宾的背景颜色,默认为 #fff |
specialColor | false | string | 特殊用户消息颜色,可以统一设置管理员/讲师/助教/嘉宾的消息颜色,默认为 #2196f3 |
managerBgColor | false | string | 管理员消息背景颜色 |
managerColor | false | string | 管理员消息颜色 |
teacherBgColor | false | string | 讲师消息背景颜色 |
teacherColor | false | string | 讲师消息颜色 |
assistantBgColor | false | string | 助教消息背景颜色 |
assistantColor | false | string | 助教消息颜色 |
guestBgColor | false | string | 嘉宾消息背景颜色 |
guestColor | false | string | 嘉宾消息颜色 |
自定义域名
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
socketHost | false | string | 聊天室域名,默认为chat.polyv.net |
chatApi | false | string | 聊天室接口域名,默认为apichat.polyv.net |
getChatRecordBySessionIdOptions对象说明
属性名 | 必选 | 类型 | 说明 |
---|---|---|---|
enable | false | boolean | 是否开启根据sessionId获取聊天记录并显示,默认为false |
sessionId | - | string | 场次ID,当enable为true时,必传 |
connect | false | boolean | 是否连接聊天室,默认为false,此时提问等需要聊天室的功能也无法使用 |
page | false | string | 当前页码,默认为1 |
size | false | string | 每页显示的数据条数,默认每页显示10条数据 |
getChatRecordByTimeOptions对象说明
属性名 | 必选 | 类型 | 说明 |
---|---|---|---|
enable | false | boolean | 是否开启根据传入的起始时间获取聊天记录并显示,默认为false |
startTime | - | number | 13位时间戳。开始时间,当enable为true时,必传 |
endTime | - | number | 13位时间戳。结束时间,当enable为true时,必传 |
connect | false | boolean | 是否连接聊天室,默认为false,此时提问等需要聊天室的功能也无法使用 |
page | false | string | 当前页码,默认为1 |
size | false | string | 每页显示的数据条数,默认每页显示10条数据 |
customMessageRender对象说明
格式:{[type]: function(data){/** 将要渲染的内容返回给sdk内部进行渲染 */}}
type为渲染的消息类型,取值有:'custom'|'flowers'|'other'|'own'|'redpack'|'redpackResult'|'reward'|'system'
data为消息数据
属性名 | 说明 |
---|---|
custom | 自定义消息 |
flowers | 送花消息 |
other | 他人的消息 |
own | 自己的消息 |
redpack | 红包消息 |
redpackResult | 红包领取消息 |
reward | 打赏消息 |
system | 系统消息 |
例子
实例方法
发送引用回复消息:reply(id, content)
说明:回复某一条消息
例子
参数
id
: String
类型,要回复的消息id content
:String
类型, 回复的内容
返回值
返回一个Promise
对象
踢出某人:kickUser(userId, sign)
说明:将某个人踢出聊天室
例子
参数
userId
: String
类型,要踢出的用户的userId sign
:String
类型, 签名(规则)
返回值
返回一个Promise
对象
取消踢出某人:unKickUser(userId, sign)
说明:取消踢出某人
例子
参数
userId
: String
类型,要取消踢出的用户的userId sign
:String
类型, 签名(规则)
返回值
返回一个Promise
对象
其他
获取chat对象
获取socket对象
发送聊天消息
获取聊天历史记录
根据消息索引位置等选项获取聊天历史记录
参数说明
参数名 | 必选 | 可选值 | 说明 |
---|---|---|---|
start | false | - | 开始下标,默认为 0 |
end | false | - | 结束下标,默认为 10 |
getSpecialMessage | false | 0/1 | 是否只获取特殊身份的消息,传入 1 表示只获取特殊身份的消息,默认为 0 |
根据场次ID(sessionId)获取聊天历史记录
根据起始时间获取聊天历史记录
参数说明
参数名 | 必选 | 说明 |
---|---|---|
start | false | 开始下标,默认为0 |
end | false | 结束下标,默认为10 |
结果说明
data为一个对象数组,具体内容如下
参数名 | 类型 | 说明 |
---|---|---|
content | string | 发言消息文本内容 |
id | string | 该条记录ID |
time | number | 发言时间戳,13位毫秒时间戳 |
user | object | 发言人 |
user说明
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
nick | true | string | 昵称 |
pic | true | string | 头像 |
userId | true | string | 唯一标识 |
clientIp | true | string | IP地址 |
banned | true | boolean | 是否被禁言 |
userType | true | string | 类型 |
userSource | false | string | 来源 |
actor | false | string | 头衔 |
roomId | true | string | 房间号 |
channelId | true | string | 频道号 |
uid | true | string | socket连接唯一id |
注:
1、clientIp默认为空,暂不支持返回内容值;
2、userType包含值可能有:空/student/slice/teacher/manager/assistant/guest/viewer等;
获取在线列表
参数说明
参数名 | 必选 | 说明 |
---|---|---|
page | false | 页码,默认为1 |
len | false | 条数,默认为100 |
结果说明
data为一个对象,具体内容如下
参数名 | 类型 | 说明 |
---|---|---|
count | number | 在线人数 |
userlist | array | 在线学员对象数组 |
userlist说明
userlist对象数组元素具体说明请参考“获取聊天历史记录”方法user说明
sendMessage
说明:自己发言之后会触发此消息,会在roomMessage返回,也可以通过chat对象监听 例如:
返回数据:
互动功能socket消息说明
登入消息
LOGIN:
监听回调返回的数据:
说明
参数名 | 类型 | 说明 |
---|---|---|
onlineUserNumber | number | 当前房间在线总人数 |
clientIp | string | 用户IP |
nick | string | 用户昵称 |
pic | string | 用户头像 |
roomId | string | 房间号 |
uid | string | socket分配的id |
userId | string | 用户唯一标识 |
userType | string | 用户类型。目前有: 'teacher' 老师 'assistant' 助教 'manager' 管理员 'slice' 云课堂学员 |
登出消息
LOGOUT
监听回调返回数据:
参数名 | 类型 | 说明 |
---|---|---|
onlineUserNumber | number | 当前房间在线总人数 |
uid | string | 离开人的socket.id |
接收别人发言消息
SPEAK:
发送:
字段说明:
名称 | 必须 | 类型 | 说明 |
---|---|---|---|
EVENT | 是 | string | 事件名 |
values | 是 | array | 发言内容,提交的发言是数组的第一个元素 |
roomId | 是 | string | 对应的频道号 |
监听回调返回的数据:
参数名 | 说明 |
---|---|
id | 消息唯一标志 |
time | 时间戳 |
user | 发言人 |
values | 消息内容 |
系统公告
GONGGAO:
监听回调返回的数据:
参数名 | 说明 |
---|---|
content | 公告内容 |
普通公告
BULLETIN
监听回调返回的数据:
参数名 | 类型 | 说明 |
---|---|---|
content | string | 公告内容 |
roomId | number/string | 当前房间号(重新进入房间收到这一消息不会带roomId) |
送花消息
FLOWERS:
监听回调返回的数
名称 | 说明 |
---|---|
nick | 送花人昵称 |
uimg | 送花人头像(新增) |
点赞消息
LIKES:
监听回调返回的数据:
参数名 | 说明 |
---|---|
count | 当前点赞总数,若发生消息的时候没传此属性,则不返回这个属性 |
nick | 点赞人昵称 |
禁言
SHIELD:
监听回调返回的数据:
注:userId或ip只会返回一个
解除禁言
REMOVE_SHIELD:
监听回调返回的数据:
踢人
KICK:
监听回调返回的数据:
参数名 | 说明 |
---|---|
user | 被踢用户对象 |
解除踢人
UNKICK:
监听回调返回的数据:
参数名 | 说明 |
---|---|
kickType | 踢出方式 |
ip | 踢出IP |
userId | 踢出userId |
删除某条聊天记录
REMOVE_CONTENT:
监听回调返回的数据:
参数名 | 说明 |
---|---|
content | 删除的内容 |
id | 删除内容对应的id |
roomId | 房间号 |
清空聊天记录
REMOVE_HISTORY:
监听回调返回的数据:
关闭聊天室
CLOSEROOM:
监听回调返回的数据:
参数名 | 说明 |
---|---|
closed | true为关闭,false为开启 |
roomId | 房间号 |
关闭弹幕
CLOSE_DANMU:
监听回调返回的数据:
参数名 | 说明 |
---|---|
isClose | true为关闭,false为开启 |
接口发送自定义消息
说明:通过api接口 发送自定义消息
自定义消息接收事件
CUSTOMER_MESSAGE:
说明:自定义消息接收事件
监听回调返回的数据:
参数名 | 说明 |
---|---|
roomId | 房间号 |
image | 消息图片(根据发送的消息是否有图片决定) |
content | 消息内容 |
答题卡
说明:答题卡包含”快速问答“和”答题卡“两个功能
GET_TEST_QUESTION_CONTENT
说明:获取答题卡题目和选项内容
响应:
参数名 | 类型 | 说明 |
---|---|---|
questionId | string | 问题ID |
itemType | string | 答题类型,1表示快速问答,0表示答题卡 |
type | string | 题目类型,(快速问答无此类型题目) R表示单选 C表示多选 S表示评分 |
answer | string | 题目答案,多个答案则直接拼接,如选A和B,则返回AB |
option1 | string | 选择项1,选项最少2个,最多5个。注:当使用”导入题库“导入题目时,会多出5个选项(option6~option10),值都为null |
option2 | string | 选择项2 |
option3 | string | 选择项3 |
option4 | string | 选择项4 |
option5 | string | 选择项5 |
title | string | 题目标题 |
hash | string | 校验码 |
ts | string | 时间戳 |
tips1 | string | 提示语1,提示语只有在题目类型为评分时才有 |
tips2 | string | 提示语2 |
tips3 | string | 提示语3 |
tips4 | string | 提示语4 |
tips5 | string | 提示语5 |
GET_TEST_QUESTION_RESULT
说明:获取答题卡答题结果
响应:
参数名 | 类型 | 说明 |
---|---|---|
questionId | string | 问题ID |
result | object | 答题结果 |
content | object | 题目详情 |
答题结果属性说明:
参数名 | 类型 | 说明 |
---|---|---|
singleResult | array | 各个选项被选次数 |
total | number | 回答总人数 |
answer | string | 答案 |
rightUser | array | 答对学员 |
faultUser | array | 答错学员 |
itemType | string | 答题类型,1表示快速问答,0表示答题卡 |
type | string | 题目类型,(快速问答无此类型题目) R表示单选 C表示多选 S表示评分 |
ANSWER_TEST_QUESTION
说明:发送答案
请求:
字段说明:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
EVENT | true | string | 事件名 |
roomId | true | string | 房间号 |
nick | true | string | 昵称 |
userId | true | string | 学生ID |
option | true | string | 选择的答案,多选时直接将多个答案拼接。如,选A和B,则option为AB |
questionId | true | string | 问题ID |
咨询提问
S_QUESTION
说明:学生提问内容
响应:
字段说明:
参数名 | 说明 |
---|---|
EVENT | 事件名 |
roomId | 房间号 |
user | 用户信息 |
content | 提问内容 |
用户信息说明:
参数名 | 说明 |
---|---|
nick | 昵称 |
pic | 头像 |
userId | 学员id |
userType | 类型 |
T_ANSWER
说明:老师/管理员/助教回复提问
响应:
字段说明:
参数名 | 说明 |
---|---|
EVENT | 事件名 |
roomId | 房间号 |
user | 用户信息 |
s_userId | 被回复学员的id |
content | 回复内容 |
用户信息说明:
参数名 | 说明 |
---|---|
nick | 昵称 |
pic | 头像 |
userId | 讲师/助教/管理员id |
userType | 类型:teacher/assistant/manager |
actor | 头衔 |
问卷
START_QUESTIONNAIRE
说明:开始问卷调查
响应:
参数名 | 类型 | 说明 |
---|---|---|
questionnaireId | string | 问卷ID |
content | object | 问卷内容 |
问卷内容说明:
参数名 | 类型 | 说明 |
---|---|---|
questionnaireId | string | 问卷ID |
questionnaireTitle | string | 问卷标题 |
createdTime | number | 问卷创建时间,13位毫秒级时间戳 |
status | string | 问卷状态,saved:保存,published:已发布,forbidden:禁止 |
questions | array | 问题信息,为一个对象数组 |
问题信息说明:
参数名 | 类型 | 说明 |
---|---|---|
questionId | string | 题目ID |
name | string | 题目标题 |
type | string | 题目类型,R:单选,C:多选,Q:问答,X 评星题(五星),S:评分题(10分),J:判断题 |
answer | string | 题目答案 |
required | string | 是否必填,Y:是,N:否 |
scoreEnabled | string | 是否为得分题,Y:是,N:否 |
score | number | 分数 |
option1 | string | 题目选项 |
option2 | string | 题目选项 |
option3 | string | 题目选项 |
option4 | string | 题目选项 |
option5 | string | 题目选项 |
option6 | string | 题目选项 |
option7 | string | 题目选项 |
option8 | string | 题目选项 |
option9 | string | 题目选项 |
option10 | string | 题目选项 |
ANSWER_QUESTIONNAIRE
说明:学生提交问卷答案
请求:
字段说明:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
EVENT | true | string | 事件名 |
roomId | true | string | 房间ID |
nick | true | string | 学生昵称 |
userId | true | string | 学生对应的userId |
questionId | true | string | 题目ID |
answer | true | array | 学生的答案,为一个对象数组 |
答案字段说明:
参数名 | 类型 | 说明 |
---|---|---|
questionId | string | 题目ID |
answer | string | 答案,如果为选择题,则为ABCD,如果为问答题,为学生填写输入框的内容 |
补充:更多题目类型-答案格式请请参考
STOP_QUESTIONNAIRE
说明:老师停止问卷
响应:
参数名 | 类型 | 说明 |
---|---|---|
questionnaireId | string | 问卷ID |
QUESTIONNAIRE_ACHIEVEMENT
说明:讲师点击发送问卷结果按钮,如果学员有回答问卷,则该学员在观看端会收到问卷排名结果事件。
响应:
名称 | 类型 | 说明 |
---|---|---|
EVENT | string | 值为QUESTIONNAIRE_ACHIEVEMENT |
roomId | string | 房间号 |
totalScore | number | 该学员回答该问卷的总分数 |
userId | string | 该学员的userId |
timestamp | number | 该学员提交问卷答案时的时间戳 |
questionnaireId | string | 问卷id |
ranking | number | 该学员在本次问卷中分数的排名,从1开始计 |
自定义消息
说明:客户可以根据自己的业务需求,自己定义想要的消息去广播。
请求
字段说明:
参数名 | 必选 | 类型 | 说明 |
---|---|---|---|
EVENT | true | string | 自定义消息类型,事件字符长度不大于20 |
version | true | number | 自定义消息版本 |
emitMode | false | number | 是否广播给自己,0:表示广播所有人包括自己,1:表示广播给所有人除了自己,2:表示只发送给自己 |
roomId | true | number | 对应的频道号 |
data | true | object | 自定义消息内容,由客户定义 |
tip | true | string | 提示语 |
响应:
参数名 | 类型 | 说明 |
---|---|---|
EVENT | string | 自定义消息类型,事件字符长度不大于20 |
version | number | 自定义消息版本 |
emitMode | number | 是否广播给自己,0:表示广播所有人包括自己,1:表示广播给所有人除了自己,2:表示只发送给自己 |
roomId | number | 对应的频道号 |
id | string | 消息id |
user | object | 用户信息 |
time | number | 时间戳 |
data | object | 自定义消息内容,由客户定义 |
tip | string | 提示语 |
签到
SIGN_IN
说明:发起签到
响应:
参数名 | 类型 | 说明 |
---|---|---|
EVENT | string | 值为SIGN_IN |
roomId | string | 频道号 |
data | object | 包含四个属性:message:签到文案;limitTime:签到时间(单位秒);sessionId:直播场次ID;checkinId:签到场次ID |
STOP_SIGN_IN
说明:结束签到
响应:
参数名 | 类型 | 说明 |
---|---|---|
EVENT | string | 值为STOP_SIGN_IN |
roomId | string | 频道号 |
TO_SIGN_IN
说明:学员签到
响应:
名称 | 类型 | 说明 |
---|---|---|
EVENT | string | 值为TO_SIGN_IN |
roomId | string | 频道号 |
checkinId | string | 签到场次ID |
user | object | 签到学员信息,包含两个属性:nick:学员昵称,userId:学员ID |
抽奖
说明:抽奖是通过http接口发起的,以下消息是服务器广播给页面的
LotteryStart
说明:开始抽奖
响应:
参数名 | 类型 | 说明 |
---|---|---|
EVENT | string | 值为LotteryStart |
channelId | string | 频道号 |
sessionId | string | 当前直播场次ID |
lotteryId | string | 当前抽奖场次id |
LotteryEnd
说明:结束抽奖
响应:
参数名 | 类型 | 说明 |
---|---|---|
EVENT | string | 值为LotteryEnd |
channelId | string | 频道号 |
sessionId | string | 当前直播场次ID |
lotteryId | string | 当前抽奖场次id |
prize | string | 礼物名称 |
data | array | 中奖人员,包含中奖人员基本信息以及中奖码winnerCode。若没中奖为空数组 |
示例:
其他
提交中奖者信息需要调用http接口,详见抽奖-提交中奖者信息
打赏
注:打赏需通过http接口触发,详见打赏-发送打赏消息
REWARD
说明:打赏
响应:
参数名 | 类型 | 说明 |
---|---|---|
EVENT | string | 值为REWARD |
roomId | string | 房间号 |
content | object | 打赏内容 |
打赏内容说明:
参数名 | 类型 | 说明 |
---|---|---|
unick | string | 打赏者昵称 |
uimg | string | 打赏者头像 |
rewardContent | string | 打赏内容:礼物打赏为礼物名称,现金打赏为金额 |
gimg | string | 礼物打赏为礼物图片,现金打赏为空 |
签名生成规则
md5(key+roomId)
key的取值请咨询客服
Last updated