增加聊天室禁言ip

接口URL

http://api.polyv.net/live/v2/chat/{channelId}/addBannedIP

接口说明

1、设置聊天室禁言ip
2、接口支持https协议
3、接口URL中的{channelId}为 频道ID

支持格式

JSON

请求方式

GET,POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
ip ip格式string 禁言IP
timestamp string 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,32位大写MD5值

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": [
        "192.156.1.4",
        "192.156.1.3",
        "192.156.1.2",
        "192.168.1.3"
    ]
}

响应失败JSON示例:

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId is required.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

频道号错误

{
    "code": 400,
    "status": "error",
    "message": "channel not found.",
    "data": ""
}

ip输入错误(正确格式例如:113.103.14.195)

{
    "code": 400,
    "status": "error",
    "message": "ip is wrong.",
    "data": ""
}

其他错误

{
    "code": 400,
    "status": "error",
    "message": "无法访问聊天室数据",
    "data": ""
}

字段说明

参数名 说明
code 请求状态响应码
status 请求状态
message 错误信息
data 请求失败时为空,请求成功为当前设置的禁言ip列表

php请求示例

<?php

//引用config.php
include 'config.php';

//接口需要的参数(非sign)赋值
$channelId = "127075";
$ip = "192.112.1.2";

$params = array(
    'appId'=>$appId,
    'ip'=>$ip,
    'timestamp'=>$timestamp
  );

//生成sign
$sign = getSign($params); //详细查看config.php文件的getSign方法

//接口请求url
$url = "http://api.live.polyv.net/v2/chat/$channelId/addBannedIP?appId=$appId&timestamp=$timestamp&sign=$sign&ip=$ip";

//输出接口请求结果
echo file_get_contents($url);

?>

签名规则(config.php文件代码查看)

http://dev.polyv.net/2018/liveproduct/l-api/rule/sign/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

撤销禁言IP/严禁词

接口URL

http://api.polyv.net/live/v2/chat/{channelId}/delBanned

接口说明

1、取消被禁言的ip或者删除严禁词,其返回结果为当前频道号被禁言ip列表或者严禁词名单,注:如删除失败,则返回的结果与接口"获得禁言IP/严禁词列表"内容相同
2、接口支持https协议
3、接口URL中的{channelId}为 频道ID

支持格式

JSON

请求方式

GET,POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
type string 请求类型:ip(取消已禁言IP),badword(删除严禁词)
content string 要取消的ip或者严禁词
appId string 从API设置中获取,在直播系统登记的appId
timestamp string 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,32位大写MD5值

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": "123.123.12.1,192.168.1.123"
}

响应失败JSON示例:

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId not found.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

频道号错误

{
    "code": 400,
    "status": "error",
    "message": "channel not found.",
    "data": ""
}

类型输入错误

{
    "code": 400,
    "status": "error",
    "message": "type is wrong.",
    "data": ""
}

content输入错误

{
    "code": 400,
    "status": "error",
    "message": "输入错误,请重试.",
    "data": ""
}

其他错误

{
    "code": 400,
    "status": "error",
    "message": "无法访问聊天室数据",
    "data": ""
}

字段说明

参数名 说明
code 请求状态响应码
status 请求状态
message 错误信息
data 已禁言名单或严禁词名单

php请求示例

<?php

//引用config.php
include 'config.php';

//接口需要的参数(非sign)赋值
$channelId = "137720";
$type = "ip";
$content = "192.168.1.2";

$params = array(
    'appId'=>$appId,
    'type' => $type,
    'content' => $content,
    'timestamp'=>$timestamp
  );

//生成sign
$sign = getSign($params); //详细查看config.php文件的getSign方法

$data = array(
    'appId' => $appId,
    'content' => $content,
    'timestamp' => $timestamp,
    'type' => $type,
    'sign' => $sign,
);

$url = "http://api.live.polyv.net/v2/chat/$channelId/delBanned";
$ch = curl_init() or die ( curl_error() );
curl_setopt( $ch, CURLOPT_URL, $url);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $data);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 360);
$reponse = curl_exec ( $ch );
curl_close ( $ch );
print_r($reponse);

?>

签名规则(config.php文件代码查看)

http://dev.polyv.net/2018/liveproduct/l-api/rule/sign/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

获得禁言IP/严禁词列表

接口URL

http://api.polyv.net/live/v2/chat/{channelId}/bannedList

接口说明

1、根据请求接口的类型type(取值为ip或badword)分别获取被禁言的IP以及设置的严禁词列表,注:无法获取系统默认的严禁词。
2、接口支持https协议
3、接口URL中的{channelId}为 频道ID

支持格式

JSON

请求方式

GET,POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
type string 请求类型:ip(获取已禁言IP),badword(获取设置的严禁词)
appId string 从API设置中获取,在直播系统登记的appId
timestamp string 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,32位大写MD5值

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": "123.123.12.1,192.168.1.123"
}

响应失败JSON示例:

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId not found.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

频道号错误

{
    "code": 400,
    "status": "error",
    "message": "channel not found.",
    "data": ""
}

类型输入错误

{
    "code": 400,
    "status": "error",
    "message": "type is wrong.",
    "data": ""
}

其他错误

{
    "code": 400,
    "status": "error",
    "message": "无法访问聊天室数据",
    "data": ""
}

字段说明

参数名 说明
code 请求状态响应码
status 请求状态
message 错误信息
data 已禁言名单或严禁词名单

php请求示例

<?php

//引用config.php
include 'config.php';

//接口需要的参数(非sign)赋值
$channelId = "127075";
$type = "ip";

$params = array(
    'appId'=>$appId,
    'type'=>$type,
    'timestamp'=>$timestamp
  );

//生成sign
$sign = getSign($params); //详细查看config.php文件的getSign方法

//接口请求url
$url = "http://api.live.polyv.net/v2/chat/$channelId/bannedList?appId=$appId&timestamp=$timestamp&sign=$sign&type=$type";

//输出接口请求结果
echo file_get_contents($url);

?>

签名规则(config.php文件代码查看)

http://dev.polyv.net/2018/liveproduct/l-api/rule/sign/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

获取历史聊天信息

接口URL

http://api.polyv.net/live/v2/chat/{channelId}/getHistory

接口说明

1、作用:查询一段时间内的聊天记录,时间格式为yyyy-MM-dd 或 yyyy-MM-dd HH:mm:ss。
如未提交具体时间,只提交了日期,开始时间默认为日期当天的 00:00:00,结束时间为日期当天的23:59:59
2、接口支持https协议
3、接口URL中的{channelId}为 频道ID

支持格式

JSON

请求方式

GET,POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
startDay String 聊天记录的开始时间,格式要求为yyyy-MM-dd(如:2017-08-01)或者 yyyy-MM-dd HH:mm:ss (如:2017-08-01 16:30:12)
endDay string 聊天记录的结束时间,要求同上
appId string 从API设置中获取,在直播系统登记的appId
page int 获取第几页聊天记录,默认为1
limit int 每页记录数,默认为1000
timestamp string 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,32位大写MD5值
userType string 用户类型,可以选择多个类型,用英文逗号隔开

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": [
        {
            "clientIP": "",
            "content": "你好,这是测试聊天",
            "id": "b14a05a0-88a1-11e7-9b6c-b5f4f2197652",
            "image": "",
            "roomId": "108888",
            "time": 1503561370362,
            "user": {
                "clientIp": "",
                "nick": "测试",
                "pic": "//livestatic.videocc.net/v_69/assets/wimages/missing_face.png",
                "roomId": "108888",
                "uid": "diRdMsz0VZ6rivf6ARIt",
                "userId": "1503561347640",
                "userType": "student"
            }
        },
        {
            "clientIP": "",
            "content": "欢迎使用保利威视!",
            "id": "bf9c8e70-88a1-11e7-9b6c-b5f4f2197652",
            "image": "",
            "roomId": "108888",
            "time": 1503561394391,
            "user": {
                "clientIp": "",
                "nick": "测试",
                "pic": "//livestatic.videocc.net/v_69/assets/wimages/missing_face.png",
                "roomId": "108888",
                "uid": "diRdMsz0VZ6rivf6ARIt",
                "userId": "1503561347640",
                "userType": "student"
            }
        }
    ]
}

响应失败JSON示例:

未输入appId

{
    "code": 400,
    "status": "error",
    "message": "appId not found.",
    "data": ""
}

appId不正确

{
    "code": 400,
    "status": "error",
    "message": "application not found.",
    "data": ""
}

时间戳错误

{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

签名错误

{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}

频道号错误

{
    "code": 400,
    "status": "error",
    "message": "channel not found.",
    "data": ""
}

开始时间为空

{
    "code": 400,
    "status": "error",
    "message": "startDay can not be empty.",
    "data": ""
}

结束时间为空

{
    "code": 400,
    "status": "error",
    "message": "endDay can not be empty.",
    "data": ""
}

开始时间格式不正确 (正确格式为yyyy-MM-dd)

{
    "code": 400,
    "status": "error",
    "message": "the startDay is no right.",
    "data": ""
}

开始时间格式不正确 (正确格式为yyyy-MM-dd)

{
    "code": 400,
    "status": "error",
    "message": "the endDay is no right.",
    "data": ""
}

结束时间晚于开始时间

{
    "code": 400,
    "status": "error",
    "message": "the endDay can not be earlier than the startDay.",
    "data": ""
}

其他错误

{
    "code": 400,
    "status": "error",
    "message": "无法访问聊天室数据",
    "data": ""
}

字段说明

参数名 说明
code 请求状态响应码
status 请求状态
message 错误信息
clientIP 用户IP
content 聊天内容
id 聊天消息id
image 图片消息的图片地址
roomId 频道号
time 发送消息时的时间戳
clientIp 用户IP
nick 观众昵称
pic 观众头像
roomId 频道号
uid socket分配的id,其中 uid=1 表示打赏、uid=2 表示自定义消息、uid=3 表示红包
userId 用户唯一标示
userType 用户类型,目前有teacher(老师)、assistant(助教)、manager(管理员)、slice(云课堂学员)

php请求示例

<?php
//引用config.php
include 'config.php';

//接口需要的参数(非sign)赋值
$channelId = "127075";
$startDay = "2017-08-24";
$endDay = "2018-08-24";

$params = array(
    'appId'=>$appId,
    'startDay'=>$startDay,
    'endDay'=>$endDay,
    'timestamp'=>$timestamp
  );

//生成sign
$sign = getSign($params); //详细查看config.php文件的getSign方法

//接口请求url
$url = "http://api.live.polyv.net/v2/chat/$channelId/getHistory?appId=$appId&timestamp=$timestamp&sign=$sign&startDay=$startDay&endDay=$endDay";

//输出接口请求结果
echo file_get_contents($url);

?>

签名规则(config.php文件代码查看)

http://dev.polyv.net/2018/liveproduct/l-api/rule/sign/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

直播聊天室API接口

一、聊天室接口文档 

聊天室socket消息收发

1、地址(支持https)

聊天室服务器域名:

http://chat.polyv.net

聊天室接口域名:

http://apichat.polyv.net

2、连接聊天室服务器

var supportsWebSockets = 'WebSocket' in window || 'MozWebSocket' in window;
var chatHost = 'http://chat.polyv.net';
var chatToken;
var socket = io.connect(chatHost, {
    query: 'token=' + chatToken,
    transports : [supportsWebSockets ? 'websocket' : 'polling']
});

说明:

a) chatHost为聊天室服务器域名,支持https

b) chatToken为令牌,目前可以设置为空

c) 优先使用websocket的方式连接聊天室

3、监听消息

socket.on(msg,callbak)
msg主要有:connect,disconnect,messgae
socket.on('connect', function() {
    //TODO
})
socket.on('disconnect', function() {
    //TODO
})
socket.on('message' , function(data) {
    var mData = JSON.parse(data);
    if (mData && mData.EVENT) {
        switch (mData.EVENT) {
            //TODO
        }
    }
})

注:'message'消息回调函数参数data为JSON字符串,需要先转换为JSON对象,每个data都会包含一个'EVENT'属性

4、'EVENT'属性

注:下面所列消息,如果只说明监听回调返回的数据,而没有说明发送的消息,页面均不可主动发送给服务器

LOGIN:

登录消息,登录房间的时候服务器会广播这一消息

发送:

socket.emit('message', JSON.stringify({
    EVENT: 'LOGIN',
    values: [userNick, userPic, userId], //登录用户信息,不可为空
    roomId: roomId, //当前房间号
    type: userType,//用户类型,可为空,teacher(教师)、assistant(助教)、manager(管理员)、slice(云课堂学员)
}));

监听回调返回的数据(此次省略处理数据的步骤,后面同):

{
    "EVENT":"LOGIN",
    "onlineUserNumber":3,
    "user": {
        "clientIp":"59.42.43.28",
        "nick":"广州观众/32199",
        "pic":"//livestatic.videocc.net/v_60/assets/wimages/missing_face.png",
        "roomId":"100781",
        "uid":"CxJj8Ap3C9jN1UHKAJ_V",    
        "userId":"1499917692338" 
        "userType": "" 
    }
}

说明

名称 类型 说明
onlineUserNumber number 当前房间在线总人数
clientIp 用户IP
nick string 用户昵称
pic 用户头像
roomId 房间号
uid socket分配的id
userId 用户唯一标识
userType teacher、assistant、manager、slice 用户类型,目前有teacher(老师)、assistant(助教)、manager(管理员)、slice(云课堂学员)

LOGOUT

说明:登出消息,有人离开房间(包括刷新页面)时服务器会广播这一消息

监听回调返回数据:

EVENT: "LOGOUT",
onlineUserNumber: 3,
uid: "I_o3f4sHDzAHM4LVAJTX"
名称 类型 说明
onlineUserNumber number 当前房间在线总人数
uid string 离开人的socket.id

SPEAK:

说明:发言,接收别人的发言消息(不包括自己)

发送:

socket.emit('message', JSON.stringify({
    EVENT: 'SPEAK',
    values: [value],                //发言内容
    roomId: roomId                //当前房间号
}));

监听回调返回的数据:

{
    "EVENT": "SPEAK",
    "id": "f1e4a960-6abc-11e7-ac0a-379e251bb30e",
    "time": 1500274540278,
    "user": {
        "clientIp": "59.42.40.89",
        "nick": "rururu",
        "pic":"//livestatic.videocc.net/v_60/assets/wimages/missing_face.png",
        "roomId": "100781",
        "uid": "yP-HnXTEZyToxP0TAGCS",
        "userId": "1500274526077",
        "userType": "" 
    },
    "values": ["sadasd"]
}
名称 说明
id 消息唯一标志
time 时间戳
user 发言人
values 消息内容

GONGGAO:

说明:公告消息,此公告消息页面不主动发送,当管理员发言时,服务器会将管理员的消息做为公告处理,当重新进入页面时,如有公告,服务器会广播这一消息。

监听回调返回的数据:

{
    "EVENT": "GONGGAO",
    "content": "POLYV保利威视" 
}
名称 说明
content 公告内容

BULLETIN

说明:公告消息,此公告消息页面可主动发送,区别于“GONGGAO”消息。当重新进入页面时,如有公告,服务器会广播这一消息。

发送

socket.emit('message', JSON.stringify({
    EVENT: 'BULLETIN',
    roomId: roomId,    //当前房间号
    content: content,  //公告内容
}));

监听回调返回的数据:

EVENT: "BULLETIN",
content: "???/",
roomId: "105240"
名称 类型 说明
content string 公告内容
roomId number/string 当前房间号(重新进入房间收到这一消息不会带roomId)

SET_NICK:

说明: 昵称设置,当观众进入房间昵称为xx/观众+数字类型时才会提示设置,设置的昵称存在时间为5个小时

发送:

socket.emit('message', JSON.stringify({
    EVENT: 'SET_NICK',
    roomId: roomId, //当前房间号
    userId: userId, //用户唯一标识
    nick: nick//要设置的昵称
}));

监听回调返回的数据:

错误消息1:

{
    "EVENT":"SET_NICK",
    "message":"昵称已存在",
    "nick":"林林林",
    "status":"error",
    "userId":"1500285799522" 
}

错误消息2:

{
    "EVENT":"SET_NICK",
    "message":"您的昵称中含有违规词",
    "nick":"管理员",
    "status":"error",
    "userId":"1500285799522" 
}

错误消息3:

{
    "EVENT":"SET_NICK",
    "message":" 找不到该用户",
    "nick":"林林林",
    "status":"error",
    "userId":"1" 
}

错误消息4:

{
    "EVENT":"SET_NICK",
    "message":"缺少相关参数",
    "status":"error" 
}

设置成功消息:

{
    "EVENT":"SET_NICK",
    "message":"设置成功",
    "nick":"林林林",
    "status":"success",
    "userId":"1500285799522" 
}
名称 说明
message 消息内容
status 设置状态
nick 设置昵称
userId 用户id

FLOWERS:

说明:送花事件

发送:

socket.emit('message', JSON.stringify({
    EVENT: 'FLOWERS',
    roomId: roomId,//当前房间号
    nick: userNick,//送花人昵称
    uimg: userPic //送花人头像,为新增的属性,可不传
}));

监听回调返回的数据:

{
    "EVENT":"FLOWERS",
    "nick":"广州观众/81366",
    "uimg":"//livestatic.videocc.net/v_60/assets/wimages/missing_face.png" 
}
名称 说明
nick 送花人昵称
uimg 送花人头像(新增)

LIKES:

说明: 点赞事件

发送:

socket.emit('message', JSON.stringify({
    EVENT: 'LIKES',
    nick: userNick, //点赞人昵称
    count: likesnum, //当前点赞数,可不传
    roomId: roomId //当前房间号
}));

监听回调返回的数据:

{
    "EVENT":"LIKES",
    "count":160,
    "nick":"广州观众/81366" 
}
名称 说明
count 当前点赞总数,若发生消息的时候没传此属性,则不返回这个属性
nick 点赞人昵称

KICK:

说明: 踢人事件

发送:

var data = JSON.stringify({
    EVENT: 'KICK',
    values: [userName], //被踢出人昵称
    roomId: roomId,
    sign:sign //md5校验字符串
});
socket.emit('message',data);

监听回调返回的数据:

{
    "EVENT":"KICK",
    "user": {
        "clientIp":"59.42.40.89",
        "nick":"林林林",
        "pic":"//livestatic.videocc.net/v_60/assets/wimages/missing_face.png",
        "roomId":"100781",
        "uid":"118GWVRA24PR14coA3bz",
        "userId":"1500275476199",
        "userType":"" 
    }
}
名称 说明
user 被踢用户对象

REMOVE_CONTENT:

说明:删除某条聊天记录,目前需要通过HTTP接口调用

监听回调返回的数据:

{
    "EVENT":"REMOVE_CONTENT",
    "content":"asd",
    "id":"54b04e90-6acd-11e7-abcd-a985dda00975",
    "roomId":"100781" 
}
名称 说明
content 删除的内容
id 删除内容对应的id
roomId 房间号

REMOVE_HISTORY:

说明:清空聊天记录

发送:

var data=JSON.stringify({
    EVENT:'REMOVE_HISTORY',
    roomId: roomId,
    sign:sign
});
socket.emit('message',data);

监听回调返回的数据:

{
    "EVENT":"REMOVE_HISTORY" 
}

CLOSEROOM:

说明:关闭聊天室

发送:

var data = JSON.stringify({
    EVENT:'CLOSEROOM',
    roomId:roomId,
    sign:sign    //md5校验字符串
});
socket.emit('message',data);

监听回调返回的数据:

{
    "EVENT":"CLOSEROOM",
    "value": {
      "closed":true,    
      "roomId":"100781" 
    }
}
名称 说明
closed true为关闭,false为开启
roomId 房间号

CLOSE_DANMU:

说明:关闭弹幕

监听回调返回的数据:

{
    "EVENT": "CLOSE_DANMU",
    "isClose": true
}
名称 说明
isClose true为关闭,false为开启

CUSTOMER_MESSAGE:

说明:自定义消息接收事件,目前只能通过后台管理员调用HTTP接口发送消息,可参考http://dev.polyv.net/2016/12/send-chat/

监听回调返回的数据:

{
    "EVENT" : "CUSTOMER_MESSAGE",
    "roomId" : 100781,
    "image":"http://livestatic.videocc.net/assets/wimages/pc_images/logo.png",
    "content" : "这是一条自定义消息" 
}
名称 说明
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

说明:发送答案

请求:

socket.emit('message', JSON.stringify({
    EVENT: 'ANSWER_TEST_QUESTION',
    roomId: channelId,
    nick: nick,
    userId: userId,
    option: result,
    questionId: questionId
}));

字段说明:

名称 说明
EVENT 事件名
roomId 房间号
nick 昵称
userId 学生ID
option 选择的答案,多选时直接将多个答案拼接。如,选A和B,则option为AB
questionId 问题ID

咨询提问

S_QUESTION

说明:学生提问内容

发送:

socket.emit('message', JSON.stringify({
    EVENT: 'S_QUESTION',
    roomId: roomId,
    user: {
        nick: nick,
        pic: pic,
        userId: userId,
        userType: 'student'
    },
    content: value
}));

字段说明:

名称 说明
EVENT 事件名
roomId 房间号
user 用户信息
content 提问内容

用户信息说明:

名称 说明
nick 昵称
pic 头像
userId 学员id
userType 类型

响应:

同发送字段内容一致

T_ANSWER

说明:老师/管理员/助教回复提问

发送:

socket.emit('message', JSON.stringify({
    EVENT: 'T_ANSWER',
    roomId: roomId,
    user: {
        nick: nick,
        pic: pic,
        userId: userId,
        userType: 'teacher',
        actor: actor
    },
    s_userId: s_userId
    content: value
}));

字段说明:

名称 说明
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 13位时间戳 问卷创建时间
status String 问卷状态,saved:保存,published:已发布,forbidden:禁止
questions Array 问题信息,为一个对象数组

问题信息说明:

名称 类型 说明
questionId String 题目ID
name String 题目标题
type String 题目类型,R:单选,C:多选,Q:问答
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

说明:学生提交问卷答案

请求:

socket.emit('message', JSON.stringify({
    EVENT: 'ANSWER_QUESTIONNAIRE',
    roomId: roomId,
    nick: nick,
    userId: userId,
    questionnaireId: questionnaireId,
    answer: [
        {
            questionId: 'f8bbo3rhrq',
            answer: 'A'
        },
        {
            questionId: 'f8bbo3rhlw',
            answer: "BC"
        },
        {
            questionId: 'f8bbo3rhht',
            answer: 'polyv'
        }
    ]
}));

字段说明:

名称 类型 说明
roomId String 房间ID
nick String 学生昵称
userId String 学生对应的userId
questionId String 题目ID
answer Array 学生的答案,为一个对象数组

答案字段说明:

名称 类型 说明
questionId String 题目ID
answer String 答案,如果为选择题,则为ABCD,如果为问答题,为学生填写输入框的内容

STOP_QUESTIONNAIRE

说明:老师停止问卷

响应:

名称 类型 说明
questionnaireId String 问卷ID

自定义消息

说明:客户可以根据自己的业务需求,自己定义想要的消息去广播。

请求

socket.emit('customMessage', JSON.stringify({
    EVENT: 'myMessage',
    version: '1.0',
    emitMode: 1,
    roomId: roomId,
    data: {
        company: 'polyv'
    },
    tip: '我的自定义消息',
}));

字段说明:

名称 类型 说明 是否必填 默认值
EVENT String 自定义消息类型,事件字符长度不大于20
version Number 自定义消息版本
emitMode Number 是否广播给自己,0表示广播所有人包括自己,1表示广播给所有人除了自己,2表示只发送给自己 0
roomId Number 对应的频道id
data Object 自定义消息内容,由客户定义
tip String 提示语

响应:

名称 类型 说明
EVENT String 自定义消息类型,事件字符长度不大于20
version Number 自定义消息版本
emitMode Number 是否广播给自己,0表示广播所有人包括自己,1表示广播给所有人除了自己,2表示只发送给自己
roomId Number 对应的频道id
id String 消息id
user Object 用户信息
time Number 时间戳
data Object 自定义消息内容,由客户定义
tip String 提示语

签到

SIGN_IN

说明:发起签到,只支持在线人数少于1000人的情景

请求参数:

名称 类型 说明
EVENT String 值为SIGN_IN
roomId String 频道号
data Object 包含三个属性:message:签到文案;limitTime:签到时间(单位秒);sessionId:直播场次ID,可不传

示例:

const data = {
    EVENT: 'SIGN_IN',
    roomId: roomId,
    data: {
        message: '各位同学开始签到了',
        limitTime: 30,
        sessionId: sessionId
    }
};
socket.emit('message', JSON.stringify(data));

响应:

名称 类型 说明
EVENT String 值为SIGN_IN
roomId String 频道号
data Object 包含四个属性:message:签到文案;limitTime:签到时间(单位秒);sessionId:直播场次ID;checkinId:签到场次ID

STOP_SIGN_IN

说明:结束签到

请求参数:

名称 类型 说明
EVENT String 值为STOP_SIGN_IN
roomId String 频道号

示例:

const data = {
    EVENT: 'STOP_SIGN_IN',
    roomId: roomId
};
socket.emit('message', JSON.stringify(data));

响应:

名称 类型 说明
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

示例:

const data = {
    EVENT: 'TO_SIGN_IN',
    roomId: roomId,
    checkinId: checkinId,
    user: {
        userId: 12345,
        nick: 'polyv'
    }
};
socket.emit('message', JSON.stringify(data));

响应:

名称 类型 说明
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。若没中奖为空数组

示例:

{
    "EVENT":"LotteryEnd",
    "channelId":"",
    "sessionId":"fajrsh0uqj",
    "lotteryId":"fapcpw06l2",
    "prize":"耳机",
    "data":[
        {
            "banned":false,
            "channelId":"",
            "clientIp":"",
            "nick":"广州观众/97375",
            "pic":"//livestatic.videocc.net/v_268/assets/wimages/missing_face.png",
            "roomId":"",
            "uid":"lbcCDoikWTniMk1pAMkI",
            "userId":"1553597220784",
            "userType":"student",
            "winnerCode":"xXYMNZJR"
        }
    ]
}

其他

提交中奖者信息需要调用http接口,详见抽奖-提交中奖者信息

打赏

注:打赏需通过http接口触发,详见打赏-发送打赏消息

REWARD

说明:打赏

响应:

名称 类型 说明
EVENT String 值为REWARD
roomId String 房间号
content Object 打赏内容

打赏内容说明:

名称 类型 说明
unick String 打赏者昵称
uimg String 打赏者头像
rewardContent String 打赏内容:礼物打赏为礼物名称,现金打赏为金额
gimg String 礼物打赏为礼物图片,现金打赏为空
以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

清除频道聊天记录

接口URL

http://api.polyv.net/live/v2/chat/{channelId}/cleanChat

接口说明

1、作用:清除聊天室的聊天记录
2、接口支持https协议
3、接口URL中的{channelId}为 频道ID

支持格式

JSON

请求方式

GET

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
sign string 签名,32位大写MD5值
timestamp string 当前13位毫秒级时间戳,3分钟内有效

响应成功JSON示例:

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": 101385
}

响应异常JSON示例:

{
    "code":403,
    "status":"error",
    "message":"invalid signature.",
    "data":""
}

字段说明

参数名 说明
status 响应状态
data 请求成功时,返回值是频道号,请求失败则返回错误信息
code 异常错误代码
message 异常错误信息

php请求示例

<?php

//引用config.php
include 'config.php';

//接口需要的参数(非sign)赋值
$channelId = "127075";

$params = array(
    'appId'=>$appId,
    'timestamp'=>$timestamp
  );

//生成sign
$sign = getSign($params); //详细查看config.php文件的getSign方法

//接口请求url
$url = "http://api.live.polyv.net/v2/chat/$channelId/cleanChat?appId=$appId&timestamp=$timestamp&sign=$sign";

//输出接口请求结果
echo file_get_contents($url);

?>

签名规则(config.php文件代码查看)

http://dev.polyv.net/2018/liveproduct/l-api/rule/sign/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

批量导入频道严禁词

接口URL

http://api.polyv.net/live/v2/chat/{userId}/addBadWords

接口说明

1、作用:批量导入频道严禁词
2、接口URL中的{userId}为 直播账号ID
3、接口支持https协议

请求方式

POST

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
sign string 签名,32位大写MD5值
timestamp string 当前13位毫秒级时间戳,3分钟内有效
words string 严禁词,json的数组格式,例如["forbiddenWords1"]
channelId int 频道ID,非必填,不填添加该用户所有的频道ID的严禁词

响应成功JSON示例

{
  code: 200,
  status: "success",
  message: "",
  data: {
     userId: "eh4yoozloc",
     count: 2
   }
}

响应异常JSON示例

{
  code: 400,
  status: "error",
  message: "invalid timestamp.",
  data: ""
}

响应参数

参数名 说明
status 响应状态
data 响应结果
code http响应状态码
msg 异常错误信息
userId 用户Id
count 为该频道严禁词的数量,如果修改全部频道,count为该该账户严禁词的全部数量

PHP请求示例

<?php

//引用config.php
include 'config.php';

//接口需要的参数(非sign)赋值
$userId="XXXXXXXX";
$channelId = 127075;
$words ='["forbiddenWords1","forbiddenWords2"]';

$params = array(
    'appId'=>$appId,
    'channelId'=>$channelId,
    'words'=>$words,
    'timestamp'=>$timestamp
  );

//生成sign
$sign = getSign($params); //详细查看config.php文件的getSign方法

$url="http://api.polyv.net/live/v2/chat/$userId/addBadWords?appId=$appId&channelId=$channelId&sign=$sign&timestamp=$timestamp&words=$words";

$ch = curl_init() or die ( curl_error() );
curl_setopt( $ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 360);
$response = curl_exec ( $ch );
curl_close ( $ch );
echo $response;

?>

签名规则(config.php文件代码查看)

http://dev.polyv.net/2018/liveproduct/l-api/rule/sign/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...

聊天室的自定义消息

接口URL

http://api.polyv.net/live/v1/channelSetting/{channelId}/send-chat

接口说明

1、作用:使用聊天室API发送图文信息
2、接口支持https协议
3、接口URL中的{channelId}为 频道ID

支持格式

JSON

请求方式

POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
userId string 直播账号ID
appId string 从API设置中获取,在直播系统登记的appId
sign string 签名,为32位大写的MD5值
timestamp string 当前13位毫秒级(兼容10位秒级)时间戳,3分钟内有效
content/imgUrl string 需要发送的图片或是文字,二者不能同时为空,可以同时提交, content需要进行base64编码,编码规则参下
url安全的base64编码规则

php:

function urlsafe_b64encode($string) {
        $data = base64_encode($string);
        $data = str_replace(array('+','/','='), array('-','_',''), $data);
        return $data;
}

java:

    public static String encodeBase64URLSafeString(String text) {
        byte[] data = org.apache.commons.codec.binary.Base64.encodeBase64URLSafe(text.getBytes(StandardCharsets.UTF_8));
        return new String(data, StandardCharsets.UTF_8);
    }

响应成功JSON示例:

{
  status: "success",
  result: ""
}

php请求示例

<?php

//引用config.php
include 'config.php';

// URL安全的字符串base64编码
function urlsafe_b64encode($string) {
        $data = base64_encode($string);
        $data = str_replace(array('+','/','='), array('-','_',''), $data);
        return $data;
}

//接口需要的参数(非sign)赋值
$userId = "XXXXXXXX";
$channelId = "127075";
$content = urlsafe_b64encode("&^(&*^(*&~!@#432 sadfas 中文《《");
$imgUrl = "http://demo.polyv.net/t/test/cu/polyvlogo.png";

$params = array(
  'appId' => $appId,
  'timestamp' => $timestamp,
  'userId' => $userId,
  'content' => $content,
  'imgUrl' => $imgUrl
);

//生成sign
$sign = getSign($params); //详细查看config.php文件的getSign方法

//接口请求url
$url="http://api.live.polyv.net/v1/channelSetting/$channelId/send-chat?appId=$appId&timestamp=$timestamp&userId=$userId&sign=$sign&content=$content&imgUrl=$imgUrl";

$ch = curl_init() or die ( curl_error() );
curl_setopt( $ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 360);
$response = curl_exec ( $ch );
curl_close ( $ch );
echo $response;

?>

签名规则(config.php文件代码查看)

http://dev.polyv.net/2018/liveproduct/l-api/rule/sign/

以上内容是否对您有帮助?根本没有帮助文档较差文档一般文档不错文档很好
Loading...