批量创建答题卡

接口URL

https://api.polyv.net/live/v3/channel/question/batch-save

接口说明

批量创建答题卡,创建一套直播频道答题卡模板与相对应的模板题目。

支持格式

JSON

请求方式

POST

请求参数

参数名必选类型及范围说明

appId

string

从API设置中获取,在直播系统登记的appId

timestamp

long

当前13位毫秒级时间戳,3分钟内有效

sign

String

签名,为32位大写的MD5值,生成签名的appSecret密钥作为通信数据安全的关键信息,严禁保存在客户端直接使用,所有API都必须通过客户自己服务器中转调用POLYV服务器获取响应数据【详见签名生成规则

channelId

string

频道号

name

string

模板名称,不传不会生成答题卡模板数据

status

string

模板状态unused:上传成功,used:使用中

questions[].identifyId

string

记录题目ID,接口成功后会返回这个id对应系统的questionId

questions[].name

string

题目名称

questions[].type

string

题目类型R:单选,C:多选,S:评分

questions[].option1

string

选项1,option不能同时为空,有数据必须连续

questions[].option2

string

选项2,option不能同时为空,有数据必须连续

questions[].option3

string

选项3,option不能同时为空,有数据必须连续

questions[].option4

string

选项4,option不能同时为空,有数据必须连续

questions[].option5

string

选项5,option不能同时为空,有数据必须连续

questions[].answer

string

当questions[].type 是评分时,非必填,单选,多选答案,比如多选ABC,单选A(单选不能有两个)

questions[].tips1

string

当questions[].type是评分,传入option1相应的值 ,也就是分值提示

questions[].tips2

string

当questions[].type是评分,传入option2相应的值 ,也就是分值提示

questions[].tips3

string

当questions[].type是评分,传入option3相应的值 ,也就是分值提示

questions[].tips4

string

当questions[].type是评分,传入option4相应的值 ,也就是分值提示

questions[].tips5

string

当questions[].type是评分,传入option5相应的值 ,也就是分值提示

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

body入参示例

{
	"name":"nana",
	"questions": [
		{
			"identifyId": "123",
			"name":"第一题",
			"type":"R",
			"option1": "哈哈",
			"option2": "测试",
			"answer":"A"
		}
	]
}

返回结果

// 成功结果
{
    "code": 200,
    "status": "success",
    "message": "success",
    "data": {
        "templateId": "xxxxxx",
		"questionKey": {
			"123": "xxxxx",
			"identifyId2": "questionId2"
		}
    }
}

失败返回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

响应码

int32

status

响应状态:success/error/fail

string

message

错误信息说明

string

data

响应数据

object

data.templateId

模板templateId

string

data.questionKey

模板题目,参数中的identifyId对应系统中的提问主键questionId,是一个对象,key-value形式,如果不需要对应题目与系统题目questionId,可以忽略该参数

Object

响应错误说明

错误代码message说明

400

appId is required.

未输入appId

400

application not found.

appId不正确

400

invalid timestamp.

时间戳错误

400

invalid signature.

签名错误

400

param is not digit: dsadasd

频道号格式错误

400

type illegal. type T.

题目类型错误

400

xxxx name is blank

identifyId的题目标题为空

400

xxxx answer is blank

identifyId的题目答案为空

400

xxxx options are all blank

identifyId的所有选项为空

400

xxxx options are discontinuous

identifyId选项不连续

400

xxxx answer's option is empty

identifyId题目对应答案为空

400

xxxx illegal answer

identifyId非法答案

PHP请求示例

<?php

$appId="xxxxxxxxxxx";
$timestamp=time()*1000;
$url = 'https://api.polyv.net/live/v3/channel/question/batch-save?';
$header = array('application/json');
$data = array(
    'appId' => $appId,
    'timestamp' => $timestamp,
    'channelId' => 206204
);
$data["sign"]=$hash;
$json = '{
	"name":"nana",
	"questions": [
		{
			"identifyId": "123",
			"name":"第一题",
			"type":"R",
			"option1": "哈哈",
			"option2": "测试",
			"answer":"A"
		}
	]
}'
// 请求接口
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url.http_build_query($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
$sResult = curl_exec($ch);
if($sError=curl_error($ch)){
    die($sError);
}
curl_close($ch);
//打印获得的数据
print_r($sResult);
?>

Last updated