用户禁言和解除禁言

接口URL

https://api.polyv.net/live/v3/channel/chat/banned-user

接口说明

(接口调用有频率限制,详细请查看)

1、根据登录聊天室的userId禁言、解禁用户
2、接口支持https协议

返回结果支持格式

JSON

请求方式

POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp string 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,32位大写MD5值
channelId int 频道号
userIds string 聊天室用户ID(非直播账号ID),多个用户用半角逗号,隔开
toBanned string Y表示禁言,N表示解除禁言

响应成功JSON示例:

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

响应失败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": 403,
    "status": "error",
    "message": "illegal channel id: %s",
    "data": ""
}

频道号不能为空

{
    "code": 400,
    "status": "error",
    "message": "param should not be empty: %s",
    "data": ""
}

用户ID不能为空

{
    "code": 400,
    "status": "error",
    "message": "param should not be empty: %s",
    "data": ""
}

字段说明

参数名 说明
code 请求状态响应码
status 请求状态
message 错误信息
data 响应数据

Java请求示例

@Test
public void testBannedChatUser() {
    String url = "https://api.polyv.net/live/v3/channel/chat/banned-user";
    // appId和加密串
    String appId = "xxxxxxxxxx";
    String appSecret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    int channelId = 1234567;
    Map<String, String> params = new HashMap<>();
    params.put("channelId", String.valueOf(channelId));
    params.put("userIds", "xxxxxxxx,yyyyyyy");
    params.put("toBanned", "Y");
    // 调用Polyv的工具类方法设置sign
    PolyvTool.setLiveSign(params, appId, appSecret);
    String content = HttpClientUtil.getInstance().sendHttpPost(url, params);
    System.out.println(content);
}

签名规则(PolyvTool.java文件代码查看)

https://dev.polyv.net/2020/liveproduct/l-api/rule/live-api-java-detail/

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

查询频道禁言列表

接口URL

https://api.polyv.net/live/v3/channel/chat/get-banned-list

接口说明

(接口调用有频率限制,详细请查看)

获取禁言列表

返回结果支持格式

JSON

请求方式

GET

请求参数

参数名 必选 类型及范围 说明
sign true string 签名
appId true string 开发者账号下的appId
timestamp true string 13位当前时间的时间戳
channelId true int32 频道号
type true string 禁言类型,ip/userId
toGetSubRooms false int 是否获取子频道,0:不获取,1:获取

返回错误结果JSON示例

签名错误:
{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}
时间戳错误:
{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

返回正确结果JSON示例

1、type为userId时,返回禁言用户userId
{
    "code": 200,
    "status": "success",
    "message": "",
    "data": [
        "1574927917080"
    ]
}
2、type为ip时,返回禁言列表ip
{
    "code": 200,
    "status": "success",
    "message": "",
    "data": [
        "59.41.162.172"
    ]
}

字段说明

字段 类型及范围 说明
code int32 返回码
status string 返回状态
message string 返回信息
data string[] 操作结果:ip数组或userId数组

PHP请求示例

<?php

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

//接口需要的参数(非sign)赋值
$appId = "XXXXXXXX";
$channelId = "127075";
$timestamp = "123123123123";
$type = "ip";
$params = array(
        'appId'=>$appId,
        'channelId'=>$channelId,
        'timestamp'=>$timestamp,
        'type'=>$type
    );

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

$url = "https://api.polyv.net/live/v3/channel/chat/get-banned-list?appId=$appId&channelId=$channelId&type=$type&sign=$sign&timestamp=$timestamp"

$ch = curl_init() or die ( curl_error() );
curl_setopt( $ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "GET");
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

https://api.polyv.net/live/v3/channel/chat/list-kicked

接口说明

(接口调用有频率限制,详细请查看)

获取踢人列表

返回结果支持格式

JSON

请求方式

POST

请求参数

参数名 必选 类型及范围 说明
sign true string 签名
appId true string 开发者账号下的appId
timestamp true string 13位当前时间的时间戳
channelId true int-32 频道号

返回错误结果JSON示例

签名错误:
{
    "code": 403,
    "status": "error",
    "message": "invalid signature.",
    "data": ""
}
时间戳错误:
{
    "code": 400,
    "status": "error",
    "message": "invalid timestamp.",
    "data": ""
}

返回正确结果JSON示例

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": [
        {
            "banned": false,
            "channelId": "358106",
            "clientIp": "59.41.162.172",
            "kickRefer": "userId",
            "nick": "45",
            "pic": "//livestatic.videocc.net/v_462/assets/wimages/missing_face.png",
            "roomId": "358106",
            "uid": "ozoWBbESU33dIYO7AABH",
            "userId": "1574927917080",
            "userType": "slice"
        }
    ]
}

字段说明

字段 类型及范围 说明
code int32 返回码
status string 返回状态
message string 返回信息
data object 操作结果
banned boolean 是否禁言
channelId int32 频道号
clientIp string 用户ip
kickRefer string 踢人方式:userId, ip
nick string 昵称
pic string 头像图片地址
roomId int32 房间号
uid string 聊天室socketid
userId string 用户userId
userType string 用户身份:管理员 manager,讲师 teacher, 助教 assistant, 嘉宾 guest,参与者 viewer,观看者 slice/student

PHP请求示例

<?php

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

//接口需要的参数(非sign)赋值
$appId = "XXXXXXXX";
$channelId = "127075";
$timestamp = "123123123123";
$params = array(
        'appId'=>$appId,
        'channelId'=>$channelId,
        'timestamp'=>$timestamp
    );

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

$url = "https://api.polyv.net/live/v3/channel/chat/list-kicked?".http_build_query($params);

$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...

查询频道严禁词/禁言IP列表

点击这里查看旧版

接口URL

http://api.polyv.net/live/v3/channel/badword/list

接口说明

(接口调用有频率限制,详细请查看)

1、接口用于获取频道的严禁词或者禁言IP列表
2、接口支持https

请求方式

GET

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,为32位大写的MD5值
channelId int 频道ID
type string 查询类型: ip 禁言ip,badword 严禁词,不传默认为badword

响应成功JSON示例:

{
  "code": 200, 
  "status": "success", 
  "message": "", 
  "data": [
    "2222", 
    "5555", 
    "yyyy", 
    "7777"
  ]
}

响应失败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": "param is not digit: dsadasd", 
  "data": ""
}

字段说明

参数名 说明
code 响应代码,成功为200,失败为400,签名错误为401,异常错误500
status 成功为success,失败为error
message 错误时为错误提示消息
data 成功响应时为严禁词数组

php请求示例

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

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

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

$url = "http://api.polyv.net/live/v3/user/badword/list?".http_build_query($params);

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 0);
$res = curl_exec($curl);
curl_close($curl);

echo $res;
?>

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

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

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

设置讲师信息

接口URL

http://api.polyv.net/live/v3/channel/account/updateTeacher

接口说明

(接口调用有频率限制,详细请查看)

1、作用:修改频道的讲师相关信息
2、接口支持https协议

返回结果支持格式

JSON

请求方式

POST

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp string 当前13位毫秒级时间戳,3分钟内有效
channelId string 频道ID
nickname string 讲师昵称
actor string 讲师头衔
passwd string 频道密码
avatar string 头像图片地址
如果为空,则使用默认头像
sign string 签名,为32位大写的MD5值

响应成功JSON示例:

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

响应异常JSON示例:

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

字段说明

参数名 类型 说明
code int http code值
status string 状态值
message string 提示的信息
data string 相应的结果

php请求示例

<?php
//接口需要的参数(非sign)赋值
$channelId = "127075";
$nickname = "王老师";
$actor = "这是头衔";
$passwd = "qwsa21";

$params = array(
    'appId'=>$appId,
    'timestamp'=>$timestamp,
    'channelId'=>$channelId,
    'nickname'=>$nickname,
    'actor'=>$actor,
    'passwd'=>$passwd
  );
//生成sign
$sign = getSign($params); //详细查看config.php文件的getSign方法

//加上sign参数一起提交post
$data = array(
    'appId'=>$appId,
    'timestamp'=>$timestamp,
    'sign'=>$sign,
    'nickname'=>$nickname,
    'actor'=>$actor,
    'passwd'=>$passwd,
    'channelId'=>$channelId
);
print_r($data);
$uri = "http://api.polyv.net/live/v3/channel/account/updateTeacher";
$ch = curl_init() or die ( curl_error() );
curl_setopt( $ch, CURLOPT_URL, $uri);
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...

通过HTTP接口发送聊天消息

接口URL

http://api.polyv.net/live/v3/channel/chat/send-admin-msg

接口说明

(接口调用有频率限制,详细请查看)

可指定发言者的头像、头衔、昵称,无需连接聊天室,通过HTTP接口发送聊天文本内容

返回结果支持格式

JSON

请求方式

POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp string 当前时间的秒级时间戳(13位)
sign string 签名,为32位大写的MD5值
channelId int 频道号
adminIndex int 管理员索引,可以指定多个管理员发送消息,默认只有一个管理员
msg string 发送的文本消息
pic string 管理员头像
nickName string 昵称,最大为8个长度,超出会被截断
actor string 头衔,最大为4个长度,超出会被截断,不传参数则表示无头衔
freeReview string 当频道开启审核后消息是否需要经过审核,Y表示不需要,N表示需要,默认为N
apiVersion string 接口版本,不填将使用默认版本,目前可选版本(3.1),不同的版本返回数据会有细微差异,详情查看响应示例

操作成功响应示例

默认接口版本

{
  "code": 200,
  "status": "success",
  "message": "",
  "data": "发送成功"
}

接口版本3.1

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "msgId": "2a2e25a0-fcbc-11ea-8731-ffd27a1e2668"
    }
}

操作失败响应示例

签名错误

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

缺少参数 channelId

{
    "code": 400,
    "status": "error"
    "message": "param should not be empty: channelId",
    "data": ""
}

响应字段说明

名称 类型 说明
code string 响应代码,成功为200,失败为400,签名错误为403,异常错误500
status string 成功为success,失败为error
message string 错误时为错误提示消息
data object 响应数据
data.msgId string 消息ID, 版本3.1包含此字段

php请求示例

<?php
//引用config.php
include 'config.php';
$channelId = '123456';
$pic = 'http://xxxx.jpg';
$nickName = 'tom';
$msg = 'test';
$actor = 'admin';
$params = array(
  'appId' => $appId,
  'timestamp' => $timestamp,
  'channelId' => $channelId,
  'msg' => $msg,
  'pic' => $pic,
  'nickName' => $nickName,
  'actor' => $actor
);

//生成sign
$sign = getSign($params); //详细查看config.php文件的getSign方法
$url="http://api.polyv.net/live/v3/channel/chat/send-admin-msg?appId=$appId&timestamp=$timestamp&channelId=$channelId&sign=$sign&msg=$msg&pic=$pic&nickName=$nickName&actor=$actor";

$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);
$output = curl_exec ( $ch );
curl_close ( $ch );
print_r($output);
?>

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

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

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

查询账号严禁词列表

接口URL

https://api.polyv.net/live/v3/user/badword/list

接口说明

(接口调用有频率限制,详细请查看)

1、接口用于获取账号下通用设置的严禁词列表
2、接口支持https

返回结果支持格式

JSON

请求方式

GET

请求数限制

TRUE

请求参数

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

响应成功JSON示例:

{
  "code": 200, 
  "status": "success", 
  "message": "", 
  "data": [
    "2222", 
    "5555", 
    "yyyy", 
    "7777"
  ]
}

响应失败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": "param is not digit: dsadasd", 
  "data": ""
}

字段说明

参数名 说明
code 响应代码,成功为200,失败为400,签名错误为401,异常错误500
status 成功为success,失败为error
message 错误时为错误提示消息
data 成功响应时为严禁词数组

php请求示例

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

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

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

$url = "http://api.polyv.net/live/v3/user/badword/list?".http_build_query($params);

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 0);
$res = curl_exec($curl);
curl_close($curl);

echo $res;
?>

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

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

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

删除账号严禁词

接口URL

https://api.polyv.net/live/v3/user/badword/delete

接口说明

(接口调用有频率限制,详细请查看)

1、接口用于删除账号通用设置的严禁词,支持批量
2、接口支持https

返回结果支持格式

JSON

请求方式

POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,为32位大写的MD5值
words string 要删除的严禁词,多个以英文逗号,分隔

响应成功JSON示例:

{
  "code": 200, 
  "status": "success", 
  "message": "", 
  "data": [
    "2222", 
    "5555", 
    "yyyy", 
    "7777"
  ]
}

响应失败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": "param should not be empty: words", 
  "data": ""
}

字段说明

参数名 说明
code 响应代码,成功为200,失败为400,签名错误为401,异常错误500
status 成功为success,失败为error
message 错误时为错误提示消息
data 成功响应时为删除后剩下的严禁词数组

php请求示例

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

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

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

$url = "http://api.polyv.net/live/v3/user/badword/delete?".http_build_query($params);

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 0);
$res = curl_exec($curl);
curl_close($curl);

echo $res;
?>

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

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

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

直播聊天室JS-SDK

概述

为方便开发者快速接入页面聊天室功能,保利威提供了带有默认样式的聊天室的JS-SDK。

快速开始

1、html代码

<div id="wrap"></div>

2、引入css

<link rel="stylesheet" href="https://player.polyv.net/jssdk/polyv-chatroom.min.css">

3、引入js

<script src="https://player.polyv.net/jssdk/polyv-chatroom.min.js"></script>

4、请求token

需要先请求以下接口获取token和mediaChannelKey,传给js-sdk

http://dev.polyv.net/2019/liveproduct/l-api/zbglgn/pdcz/get-chat-token/

5、新建对象

var chatroom = new PolyvChatRoom({
    roomId: '268682',
    userId: '153075602311',
    nick: '游客',
    pic: 'http://livestatic.videocc.net/assets/wimages/missing_face.png',
    token: token,
    mediaChannelKey: mediaChannelKey,
    version: '2.0',
    container: '#wrap',
    width: 300,
    height: 600,
    userType: '',
    roomMessage: function(data) {
        // TODO
        // data为聊天室socket消息,当有聊天室消息时会触发此方法
        console.log(data);
    }
});

相关参数说明

名称 类型 是否必须 说明
roomId String 频道号
userId String 用户唯一id
pic String 用户头像
nick String 用户昵称,默认为‘游客’
userType String 用户类型,普通学员:student,云课堂学员:slice,讲师:teacher,管理员:manager,助教:assistant,嘉宾:guest,默认为student,三分屏场景下学员需设置为slice
accountId String 直播账号userId,用于开启全局严禁词
token String 校验码
mediaChannelKey String 连麦相关参数
version String 版本号,默认为2.0
roomMessage Function 聊天室消息回调函数
container String DOM选择器,HTML元素,用于嵌入默认聊天室样式

注:以下参数只有在传了container参数时才生效

名称 类型 是否必须 说明
width Number container宽度,默认300px
height Number container高度,默认600px
showUserList Boolean 是否显示在线列表。PC端默认开启,移动端默认关闭。当关闭时,tabData若含有在线列表对象也不显示
enableSetNickname Boolean 是否开启设置昵称功能,默认为false
enableWelcome Boolean 是否开启欢迎语,默认为true
enableFlower Boolean 是否开启送花功能,默认为true
enableLike Boolean 是否开启点赞,默认为true
enableOnlyTeacher Boolean 是否开启只看讲师功能,默认为true
enableBulletin Boolean 是否开启公告,默认为true
enableAsk Boolean 是否开启提问,默认为true
tabData Array 自定义菜单栏
customChatColor Object 自定义消息颜色(新增)
apiPrefix Object 自定义域名(新增)

自定义菜单栏

tabData: 对象数组,每个对象包含两个属性name,type,默认包含聊天tab

name: 菜单栏名称

type: 菜单栏类型,若不是已有内置类型,会嵌入一个不包含任何内容的div元素到页面

已有内置类型

type 说明
chat 互动聊天
user-list 在线列表
ask 提问

自定义消息颜色

说明:修改消息字体/背景颜色,可针对自己/普通用户/管理员/讲师/助教/嘉宾修改

名称 类型 是否必须 说明
selfBgColor String 自己消息背景颜色,默认为 #8bc34a
selfColor String 自己消息颜色,默认为 #fff
otherBgColor String 普通用户消息背景颜色,默认为 #fff
otherColor String 普通用户消息颜色,默认为 #546e7a
specialBgColor String 特殊用户消息背景颜色,可以统一设置管理员/讲师/助教/嘉宾的背景颜色,默认为 #fff
specialColor String 特殊用户消息颜色,可以统一设置管理员/讲师/助教/嘉宾的消息颜色,默认为 #2196f3
managerBgColor String 管理员消息背景颜色
managerColor String 管理员消息颜色
teacherBgColor String 讲师消息背景颜色
teacherColor String 讲师消息颜色
assistantBgColor String 助教消息背景颜色
assistantColor String 助教消息颜色
guestBgColor String 嘉宾消息背景颜色
guestColor String 嘉宾消息颜色

自定义域名

名称 类型 是否必须 说明
socketHost String 聊天室域名,默认为chat.polyv.net
chatApi String 聊天室接口域名,默认为apichat.polyv.net

其他

获取chat对象

var chat = chatroom.chat;

获取socket对象

var socket = chat.socket;

发送聊天消息

chat.send('hello');

获取聊天历史记录

chat.getHistoryMessage(start, end)
.then(function (data) {
    // TODO
    console.log(data);
});

参数说明

名称 是否必须 说明
start 开始下标,默认为0
end 结束下标,默认为10

结果说明

data为一个对象数组,具体内容如下

名称 类型 说明
content String 发言消息文本内容
id String 该条记录ID
time 13位时间戳 发言时间戳
user Object 发言人

user说明

名称 类型 说明 是否一定存在该字段
nick String 昵称
pic String 头像
userId String 唯一标识
clientIp String IP地址
banned Boolean 是否被禁言
userType String 类型
userSource String 来源
actor String 头衔
roomId String 房间号
channelId String 频道号
uid String socket连接唯一id

注:
1. clientIp默认为空,暂不支持返回内容值;
2. userType包含值可能有:空/student/slice/teacher/manager/assistant/guest/viewer等;

获取在线列表

chat.getUserList(page, len)
.then(function (data) {
    // TODO
    console.log(data);
});

参数说明

名称 是否必须 说明
page 页码,默认为1
len 条数,默认为100

结果说明

data为一个对象,具体内容如下

名称 类型 说明
count Number 在线人数
userlist Array 在线学员对象数组

userlist说明
userlist对象数组元素具体说明请参考“获取聊天历史记录”方法user说明。

sendMessage

说明:自己发言会触发此消息,会在roomMessage返回,也可以通过chat对象监听
例如:

    chat.on(events.SEND_MESSAGE, (event, data) => {
        // TODO
    });

返回数据:

    EVENT: "sendMessage"
    content: "自己发言"
    currentUser: true
    custom: false
    formatTime: "2019-04-25 18:06"
    imgchat: false
    mySelfSend: true
    reward: false
    time: 1556186781080
    user: {
        nick: "polyv",
        pic: "http://livestatic.videocc.net/assets/wimages/missing_face.png",
        userId: "1530756023116",
        roomId: "",
        channelId: ""
    }

互动功能socket消息说明

登入消息

LOGIN:

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

监听回调返回的数据:

{
    "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 String 事件名
values Array 发言内容,提交的发言是数组的第一个元素
roomId String 对应的频道号

监听回调返回的数据:

{
    "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

说明:公告消息,当重新进入页面时,如有公告,服务器会广播这一消息。

监听回调返回的数据:

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

送花消息

FLOWERS:

说明:送花

监听回调返回的数

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

点赞消息

LIKES:

说明: 点赞

监听回调返回的数据:

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

禁言

SHIELD:

说明: 禁言

监听回调返回的数据:

注:userId或ip只会返回一个

{
    EVENT: 'ADD_SHIELD',
    value:  '', // 被禁言用户userId值或ip值
    data: {
        banType: 'userId/ip', // 禁言类型 userId/ip
        userId: '', // 被禁言用户userId值
        ip:'', // 被禁言用户ip值
    }
}

解除禁言

REMOVE_SHIELD:

说明: 解除禁言

监听回调返回的数据:

解除userId
{
    EVENT: 'REMOVE_SHIELD',
    value: '', // 被禁言用户userId值
    data: {
        banType: 'userId', // 禁言类型
        userId: '' // 被禁言用户userId值
    }
}
解除ip
{
    EVENT: 'REMOVE_SHIELD',
    value: '',// 被禁言用户ip值
    data: {
        banType 'ip', // 禁言类型
        ip: '' // 被禁言用户ip值
    }
}

踢人

KICK:

说明: 踢人

监听回调返回的数据:

{
    "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 被踢用户对象

解除踢人

UNKICK:

说明: 解除踢人

监听回调返回的数据:

解除userId
{
    "EVENT":"UNKICK",
    "kickType": "userId"
    "userId": "1500275476199" //踢出值
}
解除ip
{
    "EVENT":"UNKICK",
    "kickType": "ip"
    "ip": "127.0.0.1" //踢出值
}
名称 说明
kickType 踢出方式
ip 踢出IP
userId 踢出userId

删除某条聊天记录

REMOVE_CONTENT:

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

监听回调返回的数据:

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

清空聊天记录

REMOVE_HISTORY:

说明:清空聊天记录

监听回调返回的数据:

{
    "EVENT":"REMOVE_HISTORY" 
}

关闭聊天室

CLOSEROOM:

说明:关闭聊天室

监听回调返回的数据:

{
    "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 String 事件名
roomId String 房间号
nick String 昵称
userId String 学生ID
option String 选择的答案,多选时直接将多个答案拼接。如,选A和B,则option为AB
questionId String 问题ID

咨询提问

S_QUESTION

说明:学生提问内容

响应:

{
    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

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

响应:

{
    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'
        }
    ]
}));

字段说明:

名称 类型 说明 是否必填 默认值
EVENT String 事件名
roomId String 房间ID
nick String 学生昵称
userId String 学生对应的userId
questionId String 题目ID
answer 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开始计

自定义消息

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

请求

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

说明:发起签到

响应:

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

示例:

{
    "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 礼物打赏为礼物图片,现金打赏为空

DEMO下载

demo

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

管理员发送频道聊天信息

接口URL

http://api.polyv.net/live/v3/channel/chat/send

接口说明

(接口调用有频率限制,详细请查看)

1、接口用于发送聊天消息
2、接口支持https

返回结果支持格式

JSON

请求方式

POST

请求数限制

TRUE

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp string 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,32位大写MD5值
channelId int 频道ID
content String 聊天信息内容
role String 发送人角色(目前为只提供管理员角色,值为"ADMIN")

响应成功JSON示例:

{
  "code": 200,
  "status": "success",
  "message": "",
  "data": "The message send success!"
}

响应失败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": "param should not be empty: channelId",
    "data": ""
}
{
    "code": 400,
    "status": "error",
    "message": "param should not be empty: content",
    "data": ""
}
{
    "code": 400,
    "status": "error",
    "message": "param should not be empty: role",
    "data": ""
}

角色类型错误

{
    "code": 400,
    "status": "error",
    "message": "illegal chat role",
    "data": ""
}

请求出错了

{
    "code": 400,
    "status": "error",
    "message": "invalid signature.",
    "data": "The network is error, please try again!"
}

字段说明

参数名 说明
code 请求结果代码,成功为200 错误为400,签名错误为403,接口错误为500
status 请求结果,成功时为"success"错误时为"error"
message 错误信息,请求成功时为空串,错误时错误信息
data 请求成功为数据内容,错误为空串

php请求示例

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

$channelId="183950";
$content="test";
$role='ADMIN';

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

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

$url = "http://api.polyv.net/live/v3/channel/chat/send?appId=".$appId."&channelId=".$channelId."&content=".$content."&role=".$role."&timestamp=".$timestamp."&sign=".$sign;

$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...