获取答题卡单道题目的答题汇总

接口URL

http://api.polyv.net/live/v3/channel/question/detail

接口说明

1、接口用于获取答题卡单道题目的答题汇总
2、接口支持https

请求方式

GET

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,为32位大写的MD5值
channelId string 频道号
questionId string 题目ID,从题目列表中获取
times int 第几次的答题详情,用于同一道题发送了多次的情况,从题目列表中获取

响应成功JSON示例:

// 成功
{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "question": [
            {
                "count": 155,
                "tips": "",
                "option": "7"
            },
            {
                "count": 88,
                "tips": "",
                "option": "8"
            },
            {
                "count": 24,
                "tips": "",
                "option": "9"
            },
            {
                "count": 135,
                "tips": "",
                "option": "10"
            }
        ],
        "total": 402,
        "answer": "",
        "correctRecord": 0,
        "title": "请您为选手打分",
        "type": "S",
        "itemType": 0
    }
}

响应失败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 响应的状态码,例如:200
status 响应状态
message 异常错误信息
data 响应结果集
data.question 问题的各选项统计列表
data.question[0].option 问题的选项
data.question[0].count 问题选项的选择数量
data.question[0].count 问题选项的提示
data.total 回答问题的总数量
data.correctRecord 正确回答问题的总数量
data.answer 问题的答案
data.title 问题内容
data..type 题目类型("R":单选,"C":多选,"S": 评分, "Q": 问答, "V": 投票)
data.itemType 答题卡为0,问答为1

php请求示例

<?php
//引用config.php
include 'config.php';
$params = array(
    'appId' => $appId,
    'timestamp' => $timestamp,
    'channelId' => 108888,
    'questionId' => "zxcvbnm",
    'times' => 1
);

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

$url = "http://api.polyv.net/live/v3/channel/question/detail?".http_build_query($params);

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_URL, $url);
$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/channel/question/answer-record/list-by-page

接口说明

1、接口用于分页获取某次答题的答题观众列表
2、接口支持https

请求方式

GET

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,为32位大写的MD5值
channelId string 频道号
questionId string 题目ID,从题目列表中获取
times int 第几次的答题详情,用于同一道题发送了多次的情况,从题目列表中获取
page int 页号,默认为1
pageSize int 每页条数,默认为20

响应成功JSON示例:

// 成功
{
  "code": 200,
  "status": "success",
  "message": null,
  "data": {
    "endRow": 2,
    "contents": [
      {
        "questionId": "text",
        "costTime": 60,
        "viewerId": "",
        "submitTime": 6,
        "nickname": "",
        "submitTimeFormat": "text",
        "channelId": 3,
        "times": 1,
        "answer": "",
        "sessionId": "text",
        "costTimeFormat": "",
        "viewerAnswer": "",
        "type": "",
        "correct": "N",
        "name": ""
      }
    "firstPage": false,
    "lastPage": true,
    "limit": 0,
    "nextPageNumber": 0,
    "offset": 7,
    "pageNumber": 1,
    "pageSize": 0,
    "prePageNumber": 7,
    "startRow": 4,
    "totalItems": 0,
    "totalPages": 9,
    "nulla5af": 58983375
  }
}

响应失败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 响应的状态码,例如:200
status 响应状态
message 异常错误信息
data 响应结果集
data.pageNumber 页数
data.limit 每页记录数
data.totalItems 记录总数
data.firstPage 是否为第一页,值为:true/false
data.lastPage 是否为最后一页,值为:true/false
data.nextPageNumber 下一页编号
data.prePageNumber 上一页编号
data.totalPages 总页数
data.startRow 当前页第一条记录所在列表中的位置
data.endRow 当前页最后一条记录所在列表中的位置
data.contents[0].viewerId 观众Id
data.contents[0].nickname 观众昵称
data.contents[0].type 题目类型("R":单选,"C":多选,"S": 评分, "Q": 问答, "V": 投票)
data.contents[0].channelId 频道ID
data.contents[0].questionId 问题ID
data.contents[0].name 问题
data.contents[0].answer 问题答案
data.contents[0].correct 是否正确,Y 正常,N 不正确
data.contents[0].viewerAnswer 观众ID
data.contents[0].sessionId 直播场次Id
data.contents[0].times 同一道题发送多次,区分不同次数的
data.contents[0].submitTime 答题时间,时间戳
data.contents[0].submitTimeFormat 格式化的答题时间,格式为:yyyy/MM/dd HH:mm:ss
data.contents[0].costTime 答题耗时,单位秒
data.contents[0].costTimeFormat 格式化的答题耗时

php请求示例

<?php
//引用config.php
include 'config.php';
$params = array(
    'appId' => $appId,
    'timestamp' => $timestamp,
    'channelId' => 108888,
    'questionId' => "zxcvbnm",
    'times' => 1
);

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

$url = "https://api.polyv.net/live/v3/channel/question/answer-record/list-by-page?".http_build_query($params);

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_URL, $url);
$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/channel/question/list-interact-record

接口说明

1、接口用于获取每场直播的答题卡发送记录列表
2、接口支持https

请求方式

GET

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 当前13位毫秒级时间戳,3分钟内有效
sign string 签名,为32位大写的MD5值
channelId string 频道号
startTime long 查询开始时间时间戳,13位毫秒级, 不传默认查最近七天数据
endTime long 查询的结束时间时间戳,13位毫秒级, 和startTime一起不传默认查七天数据
sessionId string 查询的场次ID
page int 页号,默认为1
pageSize int 每页条数,默认为20

响应成功JSON示例:

// 成功
{
  "code": 200,
  "status": "success",
  "message": null,
  "data": {
    "endRow": 8,
    "contents": [
      {
        "status": 11,
        "questionId": "asdfg12311",
        "sessionId": "zxcvbasdfg",
        "name": "今天天气怎么样",
        "createdTime": 1589007127629,
        "type": "R",
        "channelId": 100000,
        "userId": "poiu12wsde,
        "times": 1
      }
    ],
    "firstPage": true,
    "lastPage": false,
    "limit": 10,
    "nextPageNumber": 8,
    "offset": 10,
    "pageNumber": 10,
    "pageSize": 9,
    "prePageNumber": 10,
    "startRow": 5,
    "totalItems": 8,
    "totalPages": 3,
    "occaecate": 62485716
  }
}

响应失败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 响应的状态码,例如:200
status 响应状态
message 异常错误信息
data 响应结果集
data.pageNumber 页数
data.limit 每页记录数
data.totalItems 记录总数
data.firstPage 是否为第一页,值为:true/false
data.lastPage 是否为最后一页,值为:true/false
data.nextPageNumber 下一页编号
data.prePageNumber 上一页编号
data.totalPages 总页数
data.startRow 当前页第一条记录所在列表中的位置
data.endRow 当前页最后一条记录所在列表中的位置
data.contents[0].questionId 题目ID
data.contents[0].name 题目名称
data.contents[0].type 题目类型("R":单选,"C":多选,"S": 评分, "Q": 问答, "V": 投票)
data.contents[0].channelId 频道ID
data.contents[0].userId 用户ID
data.contents[0].sessionId 直播场次ID
data.contents[0].times 第几次发题
data.contents[0].status 发题状态(11 : 答题中, 12:结束答题,13:将答题结果发送给学员)
data.contents[0].createdTime 创建时间

php请求示例

<?php
//引用config.php
include 'config.php';
$params = array(
    'appId' => $appId,
    'timestamp' => $timestamp,
    'channelId' => 108888
);

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

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

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_URL, $url);
$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/finance/bill/list

接口说明

分页获取帐号日账单列表
接口支持https

请求方式

GET

请求参数

参数名 必选 类型及范围 说明
sign true string 校验签名
appId true string 开发者账号下的appId
timestamp true string 13位当前时间的时间戳
type false string 账单类型,live:云直播,mic:连麦 , 默认:live
page false int 第几页
pageSize false int 每页大小
startDay false string 开始时间,格式:YYYY-MM-DD
endDay false string 结束时间,格式:YYYY-MM-DD

返回正确结果JSON示例

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "pageSize": 2,
        "pageNumber": 1,
        "totalItems": 78,
        "contents": [
            {
                "userId": "ee7fe7fbda",
                "inmonth": "2020-03",
                "currentDay": "2020-03-25",
                "total": 1,
                "billingType": "duration",
                "email": "moshunwei@polyv.net",
                "unit": "分钟",
                "consumerType": "后付费",
                "productType": "云直播"
            },
            {
                "userId": "ee7fe7fbda",
                "inmonth": "2020-03",
                "currentDay": "2020-03-24",
                "total": 40,
                "billingType": "duration",
                "email": "moshunwei@polyv.net",
                "unit": "分钟",
                "consumerType": "后付费",
                "productType": "云直播"
            }
        ],
        "startRow": 1,
        "firstPage": true,
        "lastPage": false,
        "nextPageNumber": 2,
        "prePageNumber": 1,
        "limit": 2,
        "totalPages": 39,
        "endRow": 2,
        "offset": 0
    }
}

响应失败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": "invalid bill type",
    "data": ""
}

字段说明

字段 类型及范围 说明
code int 接口请求状态码,200表示成功
status string 接口请求状态,"success"表示成功
message string 请求失败时返回的错误信息
data Paginator<BillDailyModel> 账单的分页结果

数据对象字段说明

Paginator<BillDailyModel>

说明:抽奖记录的分页结果

字段 类型及范围 说明
pageNumber int 当前的页数
totalItems int 总记录数
firstPage boolean 是否为第一页,值为:true/false
lastPage boolean 是否为最后一页,值为:true/false
nextPageNumber int 下一页编号
prePageNumber int 上一页编号
totalPages int 总页数
startRow int 当前页第一条记录在总记录中的位置
endRow int 当前页最后一个记录在总记录中的位置
limit int 当前页记录个数
contents List<BillDailyModel> 账单列表
BillDailyModel

说明:抽奖记录

字段 类型及范围 说明
userId string 用户userId
inmonth string 账期
currentDay string 消费日期
total int 使用分钟数,单位分钟
billingType string 账单类型,live:云直播,mic:连麦
email string 邮箱
unit string 单位
consumerType string 计费项
productType long 产品项

PHP请求示例

<?php

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

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

//生成sign
$sign = getSign($params); //详细查看config.php文件
$params['sign'] = $sign;
$url="http://api.polyv.net/live/v3/finance/bill/list?".http_build_query($params);
echo "<script>window.location.href='$url'</script>";
?>

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

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

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

获取账单详情列表

接口URL

http://api.polyv.net/live/v3/finance/bill/list-detail

接口说明

分页获取帐号日账单列表
接口支持https

请求方式

GET

请求参数

参数名 必选 类型及范围 说明
sign true string 校验签名
appId true string 开发者账号下的appId
timestamp true string 13位当前时间的时间戳
type false string 账单类型,live:云直播,mic:连麦 , 默认:live
page false int 第几页
pageSize false int 每页大小
startDay false string 开始时间,格式:YYYY-MM-DD
endDay false string 结束时间,格式:YYYY-MM-DD
channelId false int 频道号

返回正确结果JSON示例

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "pageSize": 2,
        "pageNumber": 1,
        "totalItems": 123,
        "contents": [
            {
                "id": "xx",
                "total": 1,
                "channelId": 431596,
                "joinTime": "09:46:35",
                "leaveTime": "09:46:38",
                "resumeDate": "2020-03-25",
                "uid": "1585100782973",
                "productType": "云直播",
                "desc": "回放",
                "nick": "肇庆观众/87907"
            },
            {
                "id": "xxx",
                "total": 2,
                "channelId": 902256,
                "joinTime": "15:09:06",
                "leaveTime": "15:10:39",
                "resumeDate": "2020-03-24",
                "uid": "60806543b2",
                "productType": "云直播",
                "desc": "直播",
                "nick": "huahua li"
            }
        ],
        "startRow": 1,
        "firstPage": true,
        "lastPage": false,
        "nextPageNumber": 2,
        "prePageNumber": 1,
        "limit": 2,
        "totalPages": 62,
        "endRow": 2,
        "offset": 0
    }
}

响应失败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": "invalid bill type",
    "data": ""
}

字段说明

字段 类型及范围 说明
code int 接口请求状态码,200表示成功
status string 接口请求状态,"success"表示成功
message string 请求失败时返回的错误信息
data Paginator<BillDetailModel> 账单的分页结果

数据对象字段说明

Paginator<BillDetailModel>

说明:抽奖记录的分页结果

字段 类型及范围 说明
pageNumber int 当前的页数
totalItems int 总记录数
firstPage boolean 是否为第一页,值为:true/false
lastPage boolean 是否为最后一页,值为:true/false
nextPageNumber int 下一页编号
prePageNumber int 上一页编号
totalPages int 总页数
startRow int 当前页第一条记录在总记录中的位置
endRow int 当前页最后一个记录在总记录中的位置
limit int 当前页记录个数
contents List<BillDetailModel> 账单列表
BillDetailModel

说明:抽奖记录

字段 类型及范围 说明
id string 字符串,连麦和云直播有不同,连麦自曾,云直播可能为空
total int 总消费时长,单位分钟
channelId string 频道号
joinTime int 加入时间
leaveTime string 离开时间
resumeDate string 消费时间
productType string 产品项
uid string 使用者Id
desc string 明细
nick long 昵称

PHP请求示例

<?php

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

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

//生成sign
$sign = getSign($params); //详细查看config.php文件
$params['sign'] = $sign;
$url="http://api.polyv.net/live/v3/finance/bill/list-detail?".http_build_query($params);
echo "<script>window.location.href='$url'</script>";
?>

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

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

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

获取频道抽奖的中奖记录

接口URL

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

接口说明

1.获取频道抽奖的中奖记录
2.接口支持https

请求方式

GET

请求参数

参数名 必选 类型及范围 说明
sign true string 校验签名
appId true string 开发者账号下的appId
timestamp true string 13位当前时间的时间戳
channelId true int 频道号
startTime true long 查询的开始日期的13位时间戳
endTime true long 查询的结束日期的13位时间戳 |
page false int 查询的页数,默认为1
limit false int 查询的每页大小,默认为10

返回错误结果JSON示例

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

返回正确结果JSON示例

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "pageSize": 10,
        "pageNumber": 1,
        "totalItems": 1,
        "contents": [
            {
                "recordId": "69aacfc0b7",
                "channelId": 108888,
                "lotteryId": "feb34vwxyd",
                "sessionId": "f6pxc1w8yb",
                "viewerId": "plk",
                "viewerName": "测试测试",
                "winnerCode": "789",
                "prize": "测试奖品",
                "name": null,
                "telephone": null,
                "createdTime": 1563763798000,
                "lastModified": 1563765266000,
                "address": null,
                "ext": "{\"receiveInfo\":[{\"field\":\"尊姓大名\",\"value\":\"测试测试\"},{\"field\":\"年龄\",\"value\":\"111\"},{\"field\":\"挖掘机技术哪家强\",\"value\":\"blueshit\"}]}"
            }
        ],
        "offset": 0,
        "limit": 1,
        "nextPageNumber": 1,
        "startRow": 1,
        "lastPage": true,
        "prePageNumber": 1,
        "firstPage": true,
        "totalPages": 1,
        "endRow": 1
    }
}
}

字段说明

字段 类型及范围 说明
code int 接口请求状态码,200表示成功
status string 接口请求状态,"success"表示成功
message string 请求失败时返回的错误信息
data Paginator<WinnerRecordModel> 中间记录的分页结果

数据对象字段说明

Paginator<WinnerRecordModel>

说明:抽奖记录的分页结果

字段 类型及范围 说明
pageNumber int 当前的页数
totalItems int 总记录数
firstPage boolean 是否为第一页,值为:true/false
lastPage boolean 是否为最后一页,值为:true/false
nextPageNumber int 下一页编号
prePageNumber int 上一页编号
totalPages int 总页数
startRow int 当前页第一条记录在总记录中的位置
endRow int 当前页最后一个记录在总记录中的位置
limit int 当前页记录个数
contents List<WinnerRecordModel> 中间记录列表
WinnerRecordModel

说明:抽奖记录

字段 类型及范围 说明
recordId string 中奖记录ID
channelId int 频道号
sessionId string 抽奖时的直播场次ID
lotteryId string 抽奖ID
viewerId string 中奖用户ID
viewerName string 中奖用户昵称
winnerCode string 中奖码
prize string 奖品名称
createdTime long 中奖时间
ext string json 格式的字符串,表示中奖记录的额外拓展信息,对应模型类:WinnerRecordModelExt
WinnerRecordModelExt

说明:中奖记录的拓展信息

字段 类型及范围 说明
receiveInfo List<ReceiveInfoFieldModel> 领奖人需要填写的兑奖信息
ReceiveInfoFieldModel

说明:中奖记录填写的领奖信息

字段 类型及范围 说明
field string 填写的字段名
value string 填写的字段值

PHP请求示例

<?php

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

$channelId = "322120";
$params = array(
        'appId'=>$appId,
        'lotteryId'=>"ff9yv31sud",
        'channelId'=>$channelId,
        'timestamp'=>$timestamp
    );

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

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

$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

http://api.polyv.net/live/v3/channel/donate/update-point-enabled

接口说明

1、作用:修改积分打赏开关,不传channelId 修改全局积分打赏开关
2、全局积分打赏开关关闭时,如果开启频道的积分打赏,将会返回失败
3、接口支持https协议

请求方式

POST

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appid
sign string 签名,32位大写MD5值
timestamp string 当前13位毫秒级时间戳,3分钟内有效
donatePointEnabled string 积分打赏开关,值为Y/N,必填
channelId int 频道ID,不传该参数表示修改全局积分打赏开关

响应成功JSON示例

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

响应异常JSON示例

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

响应参数

参数名 说明
status 响应状态
data 响应结果
code http响应状态码
message 异常错误信息

PHP请求示例

<?php

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

//接口需要的参数(非sign)赋值
$userId = "XXXXXXXX";
$channelId = "127075";
$donatePointEnabled = "N";
$params = array(
        'appId'=>$appId,
        'donatePointEnabled'=>$donatePointEnabled,
        'channelId'=>$channelId,
        'timestamp'=>$timestamp
    );
//生成sign
$sign = getSign($params); //详细查看config.php文件的getSign方法

$url="http://api.polyv.net/live/v3/channel/donate/update-point-enabled?appId=$appId&channelId=$channelId&donatePointEnabled=$donatePointEnabled&sign=$sign&timestamp=$timestamp";

$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/v3/channel/donate/get-point-enabled

接口说明

1、接口用于获取频道的积分打赏开关
2、接口支持https

返回结果支持格式

JSON

请求方式

GET

请求参数

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 13位当前时间戳
sign string 签名值
channelId int 频道号

响应成功JSON示例:

{
  "code": 200,
  "status": "success",
  "message": "",
  "data": {
  "donatePointEnabled" : "N",
  "globalPointDonateEnabled" : "Y"
  }
}

响应失败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,签名错误为403,异常错误500
status 成功为success,失败为error
message 错误时为错误提示消息
data 成功响应时返回开关数据
data.donatePointEnabled 频道的积分打赏开关
data.globalPointDonateEnabled 当前账号的积分打赏设置开关

php请求示例

<?php
//引用config.php
include '/srv/http/config.php';
$channelId = '要查询的频道号';
$params = array(
  'appId' => $appId,
  'channelId' => $channelId,
  'timestamp' => $timestamp
);

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

$url = "http://api.polyv.net/live/v3/channel/donate/get-point-enabled?".http_build_query($params);

$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_URL, $url);
$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/donate/update-point

接口说明

1、接口用于设置账号通用设置的积分打赏
2、通用参数通过普通url参数传递(timestamp, appId, sign),设置打赏参数的json通过请求体的方式传递
3、接口支持https

返回结果支持格式

JSON

请求方式

POST

请求参数

带在url后面

参数名 必选 类型 说明
appId string 从API设置中获取,在直播系统登记的appId
timestamp long 13位当前时间戳
sign string 签名值

请求体传参

参数名 必选 类型 说明
donatePointEnabled string 积分打赏开关,取值Y/N
queryPointUrl string 获取观众积分打赏接口
updatePointUrl string 修改观众积分打赏接口
requestFailTips string 请求失败提示
pointNotEnoughTips string 积分不足提示
pointUnit string 积分单位
goods object[] 积分打赏的道具列表
goodName string 道具名称,不能超过5个字符
goodImg string 道具图片,不能超过120个字符(图片地址可以使用默认地址,或者通过上传图片接口上传获取图片地址)
goodPrice double 道具打赏价格
goodEnabled string 道具开关,值为 Y/N , Y为开启

注:这里的channelId,appId,timestamp,sign必须通过url传参,json数据通过请求体传参,如:
http://api.polyv.net/live/v3/channel/donate/update-point?appId={{appId}}&timestamp={{timestamp}}&sign={{sign}}

请求体json拼接

{
    "donatePointEnabled": "Y",
    "queryPointUrl": "xxx",
    "updatePointUrl": "yyy",
    "requestFailTips": "请求失败了",
    "pointNotEnoughTips": "积分不足啊",
    "pointUnit": "Q币",
    "goods": [
        {
            "goodName": "鲜花123",
            "goodImg": "//livestatic.videocc.net/uploaded/images/webapp/channel/donate/01-flower.png",
            "goodPrice": 123,
            "goodEnabled": "N"
        },
        {
            "goodName": "大跑车",
            "goodImg": "//livestatic.videocc.net/uploaded/images/webapp/channel/donate/08-car.png",
            "goodPrice": 999,
            "goodEnabled": "Y"
        }
    ]
}

响应成功JSON示例:

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

响应失败JSON示例:

#参数错误

{
    "code": 400,
    "status": "error",
    "message": "param validate error",
    "data": 400
}

#未输入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": ""
}

#json为空或者json解析错误

{
    "code": 400,
    "status": "error",
    "message": "param validate error",
    "data": ""
}

#json中的goods数量限制

{
    "code": 400,
    "status": "error",
    "message": "goods over limit",
    "data": ""
}

#json中的goods的名称字符限制

{
    "code": 400,
    "status": "error",
    "message": "goods name over limit",
    "data": ""
}

#json中的goods的图片地址字符限制

{
    "code": 400,
    "status": "error",
    "message": "goods image length over limit",
    "data": ""
}

#json中的goods的价格数据类型错误

{
    "code": 400,
    "status": "error",
    "message": "number range error",
    "data": ""
}

字段说明

参数名 说明
code 状态码,成功为200,签名失败为403,参数错误为400,服务端错误为500
status 成功为success,错误时为error
message 成功为"",错误时为错误描述信息
data 暂无作用

java请求示例

import com.live.util.EncryptionUtils;
import org.apache.http.HttpEntity;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.io.IOException;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Demo {

    private static RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(15000).setConnectTimeout(15000)
            .setConnectionRequestTimeout(15000).build();

    public static void main(String[] args) {

        String url = "http://api.polyv.net/live/v3/channel/donate/update-point";
        String appId = "XXXXXX";
        String key = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        Map<String, String> map = new HashMap<>();
        long timestamp = System.currentTimeMillis();
        map.put("appId", appId);
        map.put("timestamp", String.valueOf(timestamp));

        String sign = getSign(map, key);
        map.put("sign", sign);
        String body = "{\"goods\":[{\"goodName\":\"鲜花333\",\"goodImg\":\"//livestatic.videocc.net/uploaded/images/webapp/channel/donate/01-flower.png\",\"goodPrice\":0,\"goodEnabled\":\"Y\"},{\"goodName\":\"咖啡\",\"goodImg\":\"//livestatic.videocc.net/uploaded/images/webapp/channel/donate/02-coffee.png\",\"goodPrice\":0.99,\"goodEnabled\":\"Y\"},{\"goodName\":\"点赞\",\"goodImg\":\"//livestatic.videocc.net/uploaded/images/webapp/channel/donate/03-good.png\",\"goodPrice\":1.99,\"goodEnabled\":\"Y\"},{\"goodName\":\"掌声\",\"goodImg\":\"//livestatic.videocc.net/uploaded/images/webapp/channel/donate/04-applaud.png\",\"goodPrice\":2.99,\"goodEnabled\":\"Y\"},{\"goodName\":\"666\",\"goodImg\":\"//livestatic.videocc.net/uploaded/images/webapp/channel/donate/05-666.png\",\"goodPrice\":6.66,\"goodEnabled\":\"Y\"},{\"goodName\":\"小星星\",\"goodImg\":\"//livestatic.videocc.net/uploaded/images/webapp/channel/donate/06-star.png\",\"goodPrice\":9.99,\"goodEnabled\":\"Y\"},{\"goodName\":\"钻石\",\"goodImg\":\"//livestatic.videocc.net/uploaded/images/webapp/channel/donate/07-diamond.png\",\"goodPrice\":19.99,\"goodEnabled\":\"Y\"},{\"goodName\":\"跑车\",\"goodImg\":\"//livestatic.videocc.net/uploaded/images/webapp/channel/donate/08-car.png\",\"goodPrice\":29.99,\"goodEnabled\":\"Y\"},{\"goodName\":\"火箭233\",\"goodImg\":\"//livestatic.videocc.net/uploaded/images/webapp/channel/donate/09-rocket.png\",\"goodPrice\":66.66,\"goodEnabled\":\"Y\"}]}";
        String content = sendHttpPost(url, map, body);
        System.out.println(content);

    }

    /**
     * 发送 post请求
     * @param httpUrl 地址
     * @param maps 参数
     */
    public static String sendHttpPost(String httpUrl, Map<String, String> maps, String body) {
        StringBuilder url = new StringBuilder();
        url.append(httpUrl).append("?");
        for (Map.Entry<String, String> map : maps.entrySet()) {
            url.append(map.getKey()).append("=").append(map.getValue()).append("&");
        }
        String urlStr = url.toString().substring(0, url.length() - 1);
        // 创建httpPost
        HttpPost httpPost = new HttpPost(urlStr);
        try {
            StringEntity entity = new StringEntity(body, Charset.forName("UTF-8"));
            httpPost.setEntity(entity);
        } catch (Exception e) {
            // ...
        }
        return sendHttpPost(httpPost);
    }

    /**
     * 发送Post请求
     * @param httpPost
     * @return
     */
    private static String sendHttpPost(HttpPost httpPost) {
        CloseableHttpClient httpClient = null;
        CloseableHttpResponse response = null;
        HttpEntity entity;
        String responseContent = null;
        try {
            // 创建默认的httpClient实例.
            httpClient = HttpClients.createDefault();
            httpPost.setConfig(requestConfig);
            // 执行请求
            response = httpClient.execute(httpPost);
            entity = response.getEntity();
            responseContent = EntityUtils.toString(entity, "UTF-8");
        } catch (Exception e) {
            // ...
        } finally {
            try {
                // 关闭连接,释放资源
                if (response != null) {
                    response.close();
                }
                if (null != httpPost) {
                    httpPost.releaseConnection();
                }
                if (httpClient != null) {
                    httpClient.close();
                }
            } catch (IOException e) {
                // ...
            }
        }
        return responseContent;
    }

    /**
     * 根据map里的参数构建加密串
     * @param map
     * @param secretKey
     * @return
     */
    protected static String getSign(Map<String, String> map, String secretKey) {
        Map<String, String> params = paraFilter(map);
        // 处理参数,计算MD5哈希值
        String concatedStr = concatParams(params);
        String plain = secretKey + concatedStr + secretKey;
        String encrypted = EncryptionUtils.md5Hex(plain);

        // 32位大写MD5值
        return encrypted.toUpperCase();
    }

    /**
     * 对params根据key来排序并且以key1=value1&key2=value2的形式拼接起来
     * @param params
     * @return
     */
    private static String concatParams(Map<String, String> params) {
        List<String> keys = new ArrayList<>(params.keySet());
        Collections.sort(keys);

        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < keys.size(); i++) {
            String key = keys.get(i);
            String value = params.get(key);

            sb.append(key).append(value);
        }

        return sb.toString();
    }

    /**
     * 除去数组中的空值和签名参数
     * @param sArray 签名参数组
     * @return 去掉空值与签名参数后的新签名参数组
     */
    private static Map<String, String> paraFilter(Map<String, String> sArray) {

        Map<String, String> result = new HashMap<>();

        if (sArray == null || sArray.size() <= 0) {
            return result;
        }

        for (String key : sArray.keySet()) {
            String value = sArray.get(key);
            if (value == null || value.equals("") || key.equalsIgnoreCase("sign")
                    || key.equalsIgnoreCase("sign_type")) {
                continue;
            }
            result.put(key, value);
        }

        return result;
    }

}

php请求示例

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

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

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

$json = '{"queryPointUrl": "xxx","updatePointUrl": "yyy","requestFailTips": "请求失败了","pointNotEnoughTips": "积分不足啊","pointUnit": "Q币","goods": [{"goodName": "鲜花123","goodImg": "//livestatic.videocc.net/uploaded/images/webapp/channel/donate/01-flower.png","goodPrice": 123,"goodEnabled": "N"},{"goodName": "大跑车","goodImg": "//livestatic.videocc.net/uploaded/images/webapp/channel/donate/08-car.png","goodPrice": 999,"goodEnabled": "Y"}]}';

$params["sign"] = $sign;
$url="http://api.polyv.net/live/v3/channel/donate/update-point?".http_build_query($params);

function post($url, $post_data = '', $timeout = 5){
   $ch = curl_init();
   curl_setopt ($ch, CURLOPT_URL, $url);
   curl_setopt ($ch, CURLOPT_POST, 1);
   if($post_data != ''){
      curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
   }

   curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
   curl_setopt($ch, CURLOPT_HEADER, false);
   curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', 'Content-Length: ' . strlen($post_data)));
   $file_contents = curl_exec($ch);
   curl_close($ch);
   return $file_contents;
}

echo post($url,$json);
?>

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

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

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

获取账号积分打赏设置

接口URL

http://api.polyv.net/live/v3/channel/donate/get-point-setting

接口说明

1、获取账号通用设置的积分打赏设置,如果提交channelId,接口同时返回频道的积分打赏开关设置
2、频道的积分打赏开关生效的前提为通用设置的积分打赏也同时为开
3、支持https

返回结果支持格式

JSON

请求方式

GET

请求参数

参数名 必选 类型 说明
appId string 账号应用下的appId
timestamp string 当前时间的毫秒级时间戳(13位)
sign string 签名,为32位大写的MD5值
channelId int 是否需要查询频道的设置

操作成功响应示例

{
    "code": 200,
    "status": "success",
    "message": "",
    "data": {
        "userId": "edvf2fpec9",
        "donatePointEnabled": "N",
        "channelDonatePointEnabled": null,
        "queryPointUrl": null,
        "updatePointUrl": null,
        "requestFailTips": "积分异常,请稍后重试",
        "pointNotEnoughTips": "积分不足,无法打赏",
        "pointUnit": "点",
        "goods": [
            {
                "goodName": "鲜花",
                "goodImg": "//livestatic.videocc.net/uploaded/images/webapp/channel/donate/01-flower.png",
                "goodPrice": 0.00,
                "goodEnabled": "Y"
            },
            {
                "goodName": "咖啡",
                "goodImg": "//livestatic.videocc.net/uploaded/images/webapp/channel/donate/02-coffee.png",
                "goodPrice": 5.00,
                "goodEnabled": "Y"
            },
            {
                "goodName": "点赞",
                "goodImg": "//livestatic.videocc.net/uploaded/images/webapp/channel/donate/03-good.png",
                "goodPrice": 10.00,
                "goodEnabled": "Y"
            },
            {
                "goodName": "掌声",
                "goodImg": "//livestatic.videocc.net/uploaded/images/webapp/channel/donate/04-applaud.png",
                "goodPrice": 15.00,
                "goodEnabled": "Y"
            },
            {
                "goodName": "666",
                "goodImg": "//livestatic.videocc.net/uploaded/images/webapp/channel/donate/05-666.png",
                "goodPrice": 20.00,
                "goodEnabled": "Y"
            },
            {
                "goodName": "小星星",
                "goodImg": "//livestatic.videocc.net/uploaded/images/webapp/channel/donate/06-star.png",
                "goodPrice": 25.00,
                "goodEnabled": "Y"
            },
            {
                "goodName": "钻石",
                "goodImg": "//livestatic.videocc.net/uploaded/images/webapp/channel/donate/07-diamond.png",
                "goodPrice": 30.00,
                "goodEnabled": "Y"
            },
            {
                "goodName": "跑车",
                "goodImg": "//livestatic.videocc.net/uploaded/images/webapp/channel/donate/08-car.png",
                "goodPrice": 50.00,
                "goodEnabled": "Y"
            },
            {
                "goodName": "火箭",
                "goodImg": "//livestatic.videocc.net/uploaded/images/webapp/channel/donate/09-rocket.png",
                "goodPrice": 100.00,
                "goodEnabled": "Y"
            }
        ]
    }
}

操作失败响应示例

签名错误

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

响应字段说明

名称 类型 说明
code string 响应代码,成功为200,失败为400,签名错误为403,异常错误500
status string 成功为success,失败为error
message string 错误时为错误提示消息
data object 成功响应数据
donatePointEnabled string 积分打赏设置开关,取值Y/N
channelDonatePointEnabled string 频道的积分打赏设置开关,取值Y/N/null, 仅当donatePointEnabled=Y 和channelDonatePointEnabled = Y 时表示频道启用积分打赏设置
queryPointUrl string 获取观众积分接口
updatePointUrl string 更新观众积分接口
requestFailTips string 接口请求失败错误提示
pointNotEnoughTips string 打赏积分不足提示
pointUnit string 积分的单位
goods object[] 积分打赏道具列表
goods[].goodName string 道具名称
goods[].goodImg string 道具图片
goods[].goodPrice float 道具价格
goods[].goodEnabled string 道具的开关,取值Y/N

php请求示例

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

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

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

//接口请求url
$url = "`https://api.polyv.net/live/v3/channel/donate/get-point-setting?appId=".$appId."&sign=".$sign."&timestamp=".$timestamp;
//输出接口请求结果
echo file_get_contents($url);
?>

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

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

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