Comment 评论
获取评论页数
// 返回评论页数,类型为int
var commentPage = Mudu.Room.Comment.GetPage()
发送评论
Mudu.Room.Comment.Send(
// 要发送的评论文本,类型为string
'活动很赞很给力',
// 发送完成的回调函数,参数为response对象
function (response) {
response = JSON.parse(response)
if (response.status === 'y') {
console.log('发送成功')
}
if (response.status === 'n') {
console.log('发送失败,错误码为:' + response.flag)
}
}
)
- response对象说明
{
// 成功状态,类型为string,成功时为'y',失败时为'n'
status: 'y',
// 状态码码,类型为int,成功时为0,失败不为0
flag: 100,
// 信息,类型为string,成功时为'发送消息成功!',失败时为'发送消息失败!'
info: "发送消息成功!/失败!"
}
- flag状态码码对照表
| flag | info | status |
|---|---|---|
| 100 | 发送消息成功 | y |
| 101 | 管理员禁止了聊天 | n |
| 102 | 观众被禁言 | n |
| 104 | 禁止匿名聊天 | n |
| 105 | 发送聊天内容过长 | n |
| 106 | 频繁发送 | n |
| 107 | 发送聊天内容中包含敏感词 | n |
| 135 | 系统不允许观众使用匿名身份 | n |
| 136 | 昵称中包含敏感词 | n |
| 103 | 其他错误,发送失败 | n |
获取评论
Mudu.Room.Comment.Get(
// 要获取评论的页码,类型为int
2,
// 评论获取成功的回调函数,参数为response对象
function (response) {
response = JSON.parse(response)
if (response.status === 'y') {
console.log('获取评论成功,数据为:', response.data)
}
if (response.status === 'n'){
console.log('获取评论失败')
}
}
)
- response返回结果说明
{
// 状态
"status": 'y',
// 返回的数据
"data": {
// 还剩下多少页
page: 70,
// 获取到的评论
comments: [
{
"id": 3438056,
"visitor_id": "1493401897797743654_api",
"username": "小白白",
"message": "这个真不错",
"avatar": "http://cdn12.mudu.tv/thumbnails/uploads/9/b5ed4ba472bbaa27e092be7594a2e31d.jpg",
"dateline": 1493693178,
"pushed": 1,
"checked": 1,
"top": 0,
"msg_type": 10,
"is_admin": 0
},
......
]
},
}
- comments说明
| 名称 | 说明 | 类型 |
|---|---|---|
| id | 评论id | int |
| visitor_id | 观众标志 | string |
| username | 评论者的观众名 | string |
| message | 评论的文本 | string |
| avatar | 评论这个的头像 | string |
| dateline | 评论的时间戳 | int |
| pushed | 是否已经发送了弹幕,0未发送,1已发送 | int |
| checked | 是否审核 ,0 已审核,1未审核 | int |
| top | 是否置顶 ,0 不置顶,1置顶 | int |
| msg_type | 消息来源类型, 10为普通文本消息...,详情见下表 | int |
| is_admin | 是否为管理员发送, 1是, 0不是 | int |
- msg_type 和 message之间的映射关系
| 类型 | 标志位(msg_type) | 存储类型 | 示例(message) | 备注 |
|---|---|---|---|---|
| 普通评论 | 10 | 字符串 | "真香" | 表情替换 |
| 发送普通红包 | 20 | 字符串json | '{"id":"nm4dk9jm", "type":1, "name":"恭喜发财!大吉大利!", }' | type 2:钉钉 |
| 发送口令红包 | 21 | 字符串json | '{"id":"nm4dk9jm", "type":1, "name":"恭喜发财!大吉大利!"}' | type 2:钉钉 |
| 发送竞答红包 | 22 | 字符串json | '{"id":"nm4dk9jm", "name":"参与竞答领取红包!"}' | |
| 发送竞答红包(自定义) | 23 | 字符串json | '{"id":"nm4dk9jm", "name":"参与竞答领取红包!"}' | |
| 抢口令红包评论 | 31 | 字符串 | "大吉大利,今晚吃鸡" | |
| 免费道具打赏 | 40 | 字符串json | '{"src":"https://xxx.com/a.jpg". "name":"免费道具", "number":1 }' | |
| 付费道具打赏 | 41 | 字符串json | '{"src":"https://xxx.com/c.jpg". "name":"付费道具", "number":88 }' | |
| 现金打赏 | 42 | 字符串json | '{"name":"赏赐", "amount":88.99 }' | |
| 图片评论 | 50 | 字符串 | "https://xxx.com/abc.jpg" | |
| 系统自定义消息 | 60 | 字符串 | "欢迎大家参与讨论" | |
| 观众匿名消息 | 11 | 字符串 | "猜猜我是谁" |
若控制台中配置了聊天文字颜色或者是回复消息,SDK 使用方需要在收到消息后自行解析消息内容,参考此页底部的说明。
获取当前用户使用匿名身份聊天相关配置
var anonymousCommentConfig = Mudu.Room.Comment.GetAnonymousCommentConfig()
- anonymousCommentConfig 说明
| 属性 | 描述 | 类型 |
|---|---|---|
| allowed | 系统是否开启了允许观众使用匿名身份聊天 | boolean |
| inUse | 用户是否使用了匿名身份 | boolean |
| nickname | 观众匿名名称 | string |
| avatar | 观众匿名头像地址 | string |
设置用户匿名身份
说明:
- 如果设置开启用户匿名身份成功,用户之后发送聊天时将会使用匿名身份发送;
- 当次设置仅在本次sdk生命周期内有效,下次初始化sdk时需要重新设置聊天匿名身份;
- 为避免与默认的“匿名观众”身份混淆,建议在对观众Assign实名身份之后再允许其使用匿名身份聊天
const param = {
// 设置当前用户是否使用匿名身份聊天
inUse: true,
// 设置当前用户匿名身份的昵称,最大长度 60
nickname: '匿名用户',
// 设置当前用户匿名身份的头像
avatar: 'https://static.mudu.tv/assets/anonymized-user-avatar.png'
}
Mudu.Room.Comment.SetAnonymousCommentConfig(
// 要设置的匿名配置
param,
// 设置结果
function (response) {
response = JSON.parse(response)
if (response.status === 'y') {
console.log('设置用户匿名聊天身份成功')
}
if (response.status === 'n') {
console.log('设置用户匿名聊天身份失败:', response)
}
}
)
- response 返回结果说明
{
// 是否设置成功标志
status: 'y',
errcode: 1000
}
- errcode 说明
| errcode | 说明 | 对应status |
|---|---|---|
| 1000 | 成功 | 'y' |
| 1406 | 设置昵称过长(可设置长度不超过60的字符串) | 'n' |
| 4935 | 系统不允许观众使用匿名身份 | 'n' |
| 4936 | 昵称中包含敏感词 | 'n' |
Comment.New事件
Comment.New事件会在评论新增的时候被触发
Mudu.MsgBus.On(
// 事件名,值为Comment.New
'Comment.New',
// 事件处理函数,参数为新的评论,类型为object
function (newComment) {
newComment = JSON.parse(newComment)
console.log(newComment.username + '发送了一条新评论: ' + newComment.message)
}
)
- 事件处理函数参数newComment对象说明
| 名称 | 说明 | 类型 |
|---|---|---|
| id | 评论id | int |
| visitor_id | 观众标志 | string |
| username | 评论者的观众名 | string |
| message | 评论的文本 | string |
| avatar | 评论这个的头像 | string |
| dateline | 评论的时间戳 | int |
| pushed | 是否已经发送了弹幕,0未发送,1已发送 | int |
| checked | 是否审核 ,1 已审核,0未审核 | int |
| top | 是否置顶 ,0 不置顶,1置顶 | int |
| msg_type | 消息来源类型, 10为普通文本消息...,详情见上表 | int |
| is_admin | 是否为管理员发送, 1是, 0不是 | int |
Comment.Top事件
Comment.Top事件会在评论被置顶或者取消置顶的时候被触发
Mudu.MsgBus.On(
// 事件名,值为Comment.Top
'Comment.Top',
// 事件处理函数,参数为被置顶或取消置顶评论,类型为object
function (topComment) {
topComment = JSON.parse(topComment)
console.log(topComment.top == 1 ? '被置顶的评论为' : '被取消置顶的评论为', topComment)
}
)
Comment.Avaliable.Changed事件
Comment.Avaliable.Changed事件会在后台聊天设置 -> 允许观众聊天切换时被触发。
Mudu.MsgBus.On(
// 事件名, 值为Comment.Avaliable.Changed
'Comment.Avaliable.Changed',
// 事件处理函数
function (res) {
res = JSON.parse(res)
var msg = res.open == 0 ? '聊天已关闭' : '聊天已开启'
console.log(msg)
}
)
res 参数说明:
| 属性 | 描述 | 类型 |
|---|---|---|
| open | 开启状态,1为开启,0为关闭 | number |
Visitor.Mute事件
Visitor.Mute事件会在某一个观众被禁言或者取消禁言的时候被触发
Mudu.MsgBus.On(
// 事件名,值为Visitor.Mute
'Visitor.Mute',
// 事件处理函数,参数为禁言或者解禁的观众,类型为object
function (user) {
user = JSON.parse(user)
var msg = user.mute == 1 ? '被禁言' : '被解除禁言'
console.log(user.user + msg + ', 该观众的id为' + user.visitorId)
}
)
user 参数说明:
| 属性 | 描述 | 类型 |
|---|---|---|
| mute | 禁言状态,1为被禁言, 2 为被取消禁言 |
number |
| visitorId | 被禁言或者取消禁言的观众id | string |
| user | 被禁言或者取消禁言的观众名 | string |