创建问答题目
接口描述
1、通过视频id创建视频的问答题目
2、接口支持https协议
接口URL
http://api.polyv.net/v2/video/save-video-exam
请求方式
POST
接口约束
1、接口同时支持HTTP 、HTTPS ,建议使用HTTPS 确保接口安全,接口调用有频率限制,详细请查看
请求参数描述
ptime
true
Long
当前时间的毫秒级时间戳,3分钟内有效
sign
true
String
签名,为40位大写的SHA1值,生成签名的secretkey密钥作为通信数据安全的关键信息,严禁保存在客户端直接使用,所有API都必须通过客户自己服务器中转调用POLYV服务器获取响应数据
【详见签名生成规则】
vid
true
String
视频id
examId
false
String
问答ID,为空时会新增一个题目。不为空时会修改已有的问答题目
showTime
true
Integer
问答出现的时间,单位:秒
question
true
String
问题描述
choices
true
String
问答选项,格式为json数组对象,每个题目最多5个选项;例如:[{"index":0,"content":"a","isRight":true},{"index":2,"content":"b","isRight":false},{"index":3,"content":"c","isRight":false}]
canSkip
false
Boolean
设置是否可以跳过问答,默认不能跳过问答 true:表示可以跳过 false:表示不能跳过
explanationIfRight
false
String
回答正确后的解答详情
showExplanationIfWrong
false
Boolean
回答答错误后是否显示解答详情,默认为true true:显示 false:不显示
explanationIfWrong
false
String
回答错误后的解答详情
backTime
false
Integer
答错后回退到第几秒,-1代表不回退,默认为-1
示例
http://api.polyv.net/v2/video/save-video-exam
表单参数:
vid=1b448be3231ebf0005ec631a7e4247ee_1&question=%E6%B5%8B%E8%AF%95%E5%88%9B%E5%BB%BA%E9%97%AE%E7%AD%94%E9%A2%98%E7%9B%AE%EF%BC%9F&showTime=2&sign=27D7F36E628DE0E616DBE3C48A1AECEA090C2FCF&explanationIfRight=%E7%AD%94%E5%AF%B9%E5%95%A6&canSkip=false&choices=%5B%7B%22index%22%3A0%2C%22content%22%3A%22a%22%2C%22isRight%22%3Atrue%7D%2C%7B%22index%22%3A2%2C%22content%22%3A%22b%22%2C%22isRight%22%3Afalse%7D%2C%7B%22index%22%3A3%2C%22content%22%3A%22c%22%2C%22isRight%22%3Afalse%7D%5D&userid=1b448be323&ptime=1620286349810&explanationIfWrong=%E7%AD%94%E9%94%99%E4%BA%86&backTime=1
响应参数描述
data字段描述
examId
String
问答ID
Java请求示例
快速接入基础代码请下载相关依赖源码, 点击下载源代码 ,下载后加入到自己的源码工程中即可。测试用例中的HttpUtil.java 和 VodSignUtil.java 都包含在下载文件中。
强烈建议您使用点播Java SDK完成API的功能对接,点播Java SDK 对API调用逻辑、异常处理、数据签名、HTTP请求线程池进行了统一封装和优化。
private static final Logger log = LoggerFactory.getLogger(VodVideoManageManagementTest.class);
/**
* 创建问答题目
*/
@Test
public void testAddQuiz() throws Exception, NoSuchAlgorithmException {
//公共参数,填写自己的实际参数
String secretKey = super.secretKey;
String userId = super.userId;
String ptime = String.valueOf(System.currentTimeMillis());
//业务参数
String url = "http://api.polyv.net/v2/video/save-video-exam";
String vid = "1b448be3231ebf0005ec631a7e4247ee_1";
String showTime = "2";
String question = "测试创建问答题目?";
String choices = "[{\"index\":0,\"content\":\"a\",\"isRight\":true},{\"index\":2,\"content\":\"b\",\"isRight\":false},{\"index\":3,\"content\":\"c\",\"isRight\":false}]";
String explanationIfRight = "答对啦";
String explanationIfWrong = "答错了";
String canSkip = "false";
String backTime = "1";
//调用参数
Map<String, String> requestMap = new HashMap<>();
requestMap.put("userid", userId);
requestMap.put("ptime", ptime);
requestMap.put("showTime", showTime);
requestMap.put("vid", vid);
requestMap.put("explanationIfRight", explanationIfRight);
requestMap.put("question", question);
requestMap.put("explanationIfWrong", explanationIfWrong);
requestMap.put("canSkip", canSkip);
requestMap.put("backTime", backTime);
requestMap.put("choices", choices);
requestMap.put("sign", VodSignUtil.getSign(requestMap, secretKey));
String response = HttpUtil.postFormBody(url,requestMap);
log.debug("测试创建问答题目,{}", response);
//do somethings
}
响应示例
系统全局错误说明详见全局错误说明
成功示例
{
"code":200,
"status":"success",
"message":"success",
"data":{
"examId":"1794097a449"
}
}
异常示例
签名不正确
{
"code":400,
"status":"error",
"message":"the sign is not right",
"data":""
}
时间戳过期
{
"code":400,
"status":"error",
"message":"ptime is too old.",
"data":""
}
视频不存在
{
"code": 400,
"status": "error",
"message": "video could not find by vid",
"data": ""
}
Last updated
Was this helpful?